diff options
Diffstat (limited to 'src/Graphemes.zig')
| -rw-r--r-- | src/Graphemes.zig | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/Graphemes.zig b/src/Graphemes.zig index 1ce1ea6..1f67fc6 100644 --- a/src/Graphemes.zig +++ b/src/Graphemes.zig | |||
| @@ -364,3 +364,25 @@ test "Segmentation ZWJ and ZWSP emoji sequences" { | |||
| 364 | try std.testing.expectEqual(@as(usize, 2), i); | 364 | try std.testing.expectEqual(@as(usize, 2), i); |
| 365 | } | 365 | } |
| 366 | } | 366 | } |
| 367 | |||
| 368 | test "Iterator.peek" { | ||
| 369 | const peek_seq = "aΔ👨🏻🌾→"; | ||
| 370 | const data = try Graphemes.init(std.testing.allocator); | ||
| 371 | defer data.deinit(std.testing.allocator); | ||
| 372 | |||
| 373 | var iter = data.iterator(peek_seq); | ||
| 374 | const peek_a = iter.peek().?; | ||
| 375 | const next_a = iter.next().?; | ||
| 376 | try std.testing.expectEqual(peek_a, next_a); | ||
| 377 | try std.testing.expectEqualStrings("a", peek_a.bytes(peek_seq)); | ||
| 378 | const peek_d1 = iter.peek().?; | ||
| 379 | const peek_d2 = iter.peek().?; | ||
| 380 | try std.testing.expectEqual(peek_d1, peek_d2); | ||
| 381 | const next_d = iter.next().?; | ||
| 382 | try std.testing.expectEqual(peek_d2, next_d); | ||
| 383 | try std.testing.expectEqual(iter.peek(), iter.next()); | ||
| 384 | try std.testing.expectEqual(iter.peek(), iter.next()); | ||
| 385 | try std.testing.expectEqual(null, iter.peek()); | ||
| 386 | try std.testing.expectEqual(null, iter.peek()); | ||
| 387 | try std.testing.expectEqual(iter.peek(), iter.next()); | ||
| 388 | } | ||