aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/string_immutable.zig18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/string_immutable.zig b/src/string_immutable.zig
index 84b72343e..52b7e05ce 100644
--- a/src/string_immutable.zig
+++ b/src/string_immutable.zig
@@ -124,7 +124,7 @@ pub fn copyLowercase(in: string, out: []u8) string {
switch (c) {
'A'...'Z' => {
@setRuntimeSafety(false);
- @memcpy(out.ptr, in_slice.ptr, i);
+ @memcpy(out_slice.ptr, in_slice.ptr, i);
out_slice[i] = std.ascii.toLower(c);
const end = i + 1;
if (end >= out_slice.len) break :begin;
@@ -143,6 +143,22 @@ pub fn copyLowercase(in: string, out: []u8) string {
return out[0..in.len];
}
+test "copyLowercase" {
+ {
+ var in = "Hello, World!";
+ var out = std.mem.zeroes([in.len]u8);
+ var out_ = copyLowercase(in, &out);
+ try std.testing.expectEqualStrings(out_, "hello, world!");
+ }
+
+ {
+ var in = "_ListCache";
+ var out = std.mem.zeroes([in.len]u8);
+ var out_ = copyLowercase(in, &out);
+ try std.testing.expectEqualStrings(out_, "_listcache");
+ }
+}
+
test "StringOrTinyString" {
const correct: string = "helloooooooo";
const big = "wawaweewaverylargeihaveachairwawaweewaverylargeihaveachairwawaweewaverylargeihaveachairwawaweewaverylargeihaveachair";