summaryrefslogtreecommitdiff
path: root/src/Graphemes.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Graphemes.zig')
-rw-r--r--src/Graphemes.zig22
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
368test "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}