diff options
Diffstat (limited to 'src/unicode_tests.zig')
| -rw-r--r-- | src/unicode_tests.zig | 19 |
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 | } |