diff --git a/src/matchesAll.zig b/src/matchesAll.zig index fefa2186f9fb3e4d2015ec7ac8ef12874ddfbc6d..673cd1b2f01defb711906e8f6f42a86881efe3aa 100644 --- a/src/matchesAll.zig +++ b/src/matchesAll.zig @@ -10,3 +10,21 @@ pub fn matchesAll(comptime T: type, haystack: []const T, comptime needle: fn (T) } return true; } + +const S = struct { + fn needle(item: u8) bool { + return item == 4; + } +}; +test { + try std.testing.expect(matchesAll(u8, &.{ 4, 4, 4, 4, 4, 4 }, S.needle)); +} +test { + try std.testing.expect(!matchesAll(u8, &.{ 4, 4, 4, 3, 4, 4 }, S.needle)); +} +test { + try std.testing.expect(!matchesAll(u8, &.{ 0, 1, 2, 3, 4, 5 }, S.needle)); +} +test { + try std.testing.expect(!matchesAll(u8, &.{ 5, 6, 7, 8, 9, 0 }, S.needle)); +} diff --git a/src/matchesAny.zig b/src/matchesAny.zig index 7935a4ca3be6778059245cd331cd1e7db68aec64..03bd4b2e7a40b295659f8ab591fffca6dbfb5176 100644 --- a/src/matchesAny.zig +++ b/src/matchesAny.zig @@ -10,3 +10,21 @@ pub fn matchesAny(comptime T: type, haystack: []const T, comptime needle: fn (T) } return false; } + +test { + const S = struct { + fn needle(item: u8) bool { + return item == 4; + } + }; + try std.testing.expect(matchesAny(u8, &.{ 0, 1, 2, 3, 4, 5 }, S.needle)); +} + +test { + const S = struct { + fn needle(item: u8) bool { + return item == 7; + } + }; + try std.testing.expect(!matchesAny(u8, &.{ 0, 1, 2, 3, 4, 5 }, S.needle)); +} diff --git a/src/nullifyS.zig b/src/nullifyS.zig index dac000a9cb3baeb66f053669e84cdea0f6c407f1..dba9f6ad04ce7bdab301eacebca1484cf7340ad8 100644 --- a/src/nullifyS.zig +++ b/src/nullifyS.zig @@ -7,3 +7,15 @@ pub fn nullifyS(s: ?string) ?string { if (s.?.len == 0) return null; return s.?; } + +test { + try std.testing.expect(nullifyS(null) == null); +} +test { + try std.testing.expect(nullifyS("") == null); +} +test { + try std.testing.expect(nullifyS("a") != null); + try std.testing.expect(nullifyS("a").?.len == 1); + try std.testing.expect(nullifyS("a").?[0] == 'a'); +} diff --git a/src/opslice.zig b/src/opslice.zig index 7580099aadb878d8b19269f69667cb81697d347f..8f46d11e2d6545e74c3fcccbe204dc688664532d 100644 --- a/src/opslice.zig +++ b/src/opslice.zig @@ -6,3 +6,16 @@ pub fn opslice(slice: anytype, index: usize) ?std.meta.Child(@TypeOf(slice)) { if (slice.len <= index) return null; return slice[index]; } + +test { + const array = [_]u8{ 0, 1, 2, 3, 4, 5 }; + const slice: []const u8 = &array; + + try std.testing.expect(opslice(slice, 0) == 0); + try std.testing.expect(opslice(slice, 1) == 1); + try std.testing.expect(opslice(slice, 2) == 2); + try std.testing.expect(opslice(slice, 3) == 3); + try std.testing.expect(opslice(slice, 4) == 4); + try std.testing.expect(opslice(slice, 5) == 5); + try std.testing.expect(opslice(slice, 6) == null); +} diff --git a/src/sliceTo.zig b/src/sliceTo.zig index eeaec8e7879745cfbadd0e66fa570a609b029f07..eae6203c9dcd5793fdbe4b3bed9cc77d2f8bef45 100644 --- a/src/sliceTo.zig +++ b/src/sliceTo.zig @@ -8,3 +8,13 @@ pub fn sliceTo(comptime T: type, haystack: []const T, needle: T) []const T { } return haystack; } + +test { + try std.testing.expect(std.mem.eql(u8, sliceTo(u8, "abcdefgh", 'd'), "abc")); +} +test { + try std.testing.expect(std.mem.eql(u8, sliceTo(u8, "abcdefgh", 'r'), "abcdefgh")); +} +test { + try std.testing.expect(std.mem.eql(u8, sliceTo(u8, "abcdefgh", 'a'), "")); +}