zig fmt + add U32Iterator tests

This commit is contained in:
Karl Seguin
2025-02-09 10:53:47 +08:00
parent 6e58b98b3d
commit 3af0531111
2 changed files with 28 additions and 9 deletions

View File

@@ -15,19 +15,39 @@ pub const U32Iterator = struct {
done: bool,
};
pub fn _next(self: *U32Iterator) !Return {
pub fn _next(self: *U32Iterator) Return {
const i = self.index;
if (i >= self.length) {
return Return{
return .{
.value = 0,
.done = true,
};
}
self.index += 1;
return Return{
return .{
.value = i,
.done = false,
};
}
};
const testing = std.testing;
test "U32Iterator" {
const Return = U32Iterator.Return;
{
var it = U32Iterator{ .length = 0 };
try testing.expectEqual(Return{ .value = 0, .done = true }, it._next());
try testing.expectEqual(Return{ .value = 0, .done = true }, it._next());
}
{
var it = U32Iterator{ .length = 3 };
try testing.expectEqual(Return{ .value = 0, .done = false }, it._next());
try testing.expectEqual(Return{ .value = 1, .done = false }, it._next());
try testing.expectEqual(Return{ .value = 2, .done = false }, it._next());
try testing.expectEqual(Return{ .value = 0, .done = true }, it._next());
try testing.expectEqual(Return{ .value = 0, .done = true }, it._next());
}
}