summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Sam Atman2025-05-14 10:46:25 -0400
committerGravatar Sam Atman2025-05-15 15:32:43 -0400
commitb1d67fab5c3dd3ed1d47ee63ab45a600b19f7a3c (patch)
treefad51cb389f4dc012aa2e9c487f01a7f6da8c27c
parentReverseWordIterator passes conformance test (diff)
downloadzg-b1d67fab5c3dd3ed1d47ee63ab45a600b19f7a3c.tar.gz
zg-b1d67fab5c3dd3ed1d47ee63ab45a600b19f7a3c.tar.xz
zg-b1d67fab5c3dd3ed1d47ee63ab45a600b19f7a3c.zip
Peek tests for word iterators
-rw-r--r--src/unicode_tests.zig19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/unicode_tests.zig b/src/unicode_tests.zig
index 8661bfd..ef459bf 100644
--- a/src/unicode_tests.zig
+++ b/src/unicode_tests.zig
@@ -224,6 +224,7 @@ test "Segmentation Word Iterator" {
224 } 224 }
225 { 225 {
226 var iter = wb.iterator(all_bytes.items); 226 var iter = wb.iterator(all_bytes.items);
227 var peeked: ?Word = iter.peek();
227 228
228 // Check. 229 // Check.
229 for (want.items, 1..) |want_word, i| { 230 for (want.items, 1..) |want_word, i| {
@@ -235,11 +236,21 @@ test "Segmentation Word Iterator" {
235 debug.print("Error on line {d}, #{d}\n", .{ line_iter.line, i }); 236 debug.print("Error on line {d}, #{d}\n", .{ line_iter.line, i });
236 return err; 237 return err;
237 }; 238 };
239 std.testing.expectEqualStrings(
240 peeked.?.bytes(all_bytes.items),
241 got_word.bytes(all_bytes.items),
242 ) catch |err| {
243 debug.print("Peek != word on line {d} #{d}\n", .{ line_iter.line, i });
244 return err;
245 };
246 peeked = iter.peek();
238 } 247 }
239 } 248 }
240 { 249 {
241 var r_iter = wb.reverseIterator(all_bytes.items); 250 var r_iter = wb.reverseIterator(all_bytes.items);
251 var peeked: ?Word = r_iter.peek();
242 var idx = want.items.len - 1; 252 var idx = want.items.len - 1;
253
243 while (true) : (idx -= 1) { 254 while (true) : (idx -= 1) {
244 const want_word = want.items[idx]; 255 const want_word = want.items[idx];
245 const got_word = r_iter.prev().?; 256 const got_word = r_iter.prev().?;
@@ -251,6 +262,14 @@ test "Segmentation Word Iterator" {
251 debug.print("Error on line {d}, #{d}\n", .{ line_iter.line, idx + 1 }); 262 debug.print("Error on line {d}, #{d}\n", .{ line_iter.line, idx + 1 });
252 return err; 263 return err;
253 }; 264 };
265 std.testing.expectEqualStrings(
266 peeked.?.bytes(all_bytes.items),
267 got_word.bytes(all_bytes.items),
268 ) catch |err| {
269 debug.print("Peek != word on line {d} #{d}\n", .{ line_iter.line, idx + 1 });
270 return err;
271 };
272 peeked = r_iter.peek();
254 if (idx == 0) break; 273 if (idx == 0) break;
255 } 274 }
256 } 275 }