@@ -525,6 +525,7 @@ def test_inspect((expected, input, freeze))
525
525
data "single number" , {
526
526
input : "123456" ,
527
527
elements : [ 123_456 ] ,
528
+ entries : [ 123_456 ] ,
528
529
ranges : [ 123_456 ..123_456 ] ,
529
530
numbers : [ 123_456 ] ,
530
531
to_s : "123456" ,
@@ -536,6 +537,7 @@ def test_inspect((expected, input, freeze))
536
537
data "single range" , {
537
538
input : "1:3" ,
538
539
elements : [ 1 ..3 ] ,
540
+ entries : [ 1 ..3 ] ,
539
541
ranges : [ 1 ..3 ] ,
540
542
numbers : [ 1 , 2 , 3 ] ,
541
543
to_s : "1:3" ,
@@ -547,6 +549,7 @@ def test_inspect((expected, input, freeze))
547
549
data "simple numbers list" , {
548
550
input : "1,3,5" ,
549
551
elements : [ 1 , 3 , 5 ] ,
552
+ entries : [ 1 , 3 , 5 ] ,
550
553
ranges : [ 1 ..1 , 3 ..3 , 5 ..5 ] ,
551
554
numbers : [ 1 , 3 , 5 ] ,
552
555
to_s : "1,3,5" ,
@@ -558,6 +561,7 @@ def test_inspect((expected, input, freeze))
558
561
data "numbers and ranges list" , {
559
562
input : "1:3,5,7:9,46" ,
560
563
elements : [ 1 ..3 , 5 , 7 ..9 , 46 ] ,
564
+ entries : [ 1 ..3 , 5 , 7 ..9 , 46 ] ,
561
565
ranges : [ 1 ..3 , 5 ..5 , 7 ..9 , 46 ..46 ] ,
562
566
numbers : [ 1 , 2 , 3 , 5 , 7 , 8 , 9 , 46 ] ,
563
567
to_s : "1:3,5,7:9,46" ,
@@ -569,6 +573,7 @@ def test_inspect((expected, input, freeze))
569
573
data "just *" , {
570
574
input : "*" ,
571
575
elements : [ :* ] ,
576
+ entries : [ :* ] ,
572
577
ranges : [ :* ..] ,
573
578
numbers : RangeError ,
574
579
to_s : "*" ,
@@ -580,6 +585,7 @@ def test_inspect((expected, input, freeze))
580
585
data "range with *" , {
581
586
input : "4294967000:*" ,
582
587
elements : [ 4_294_967_000 ..] ,
588
+ entries : [ 4_294_967_000 ..] ,
583
589
ranges : [ 4_294_967_000 ..] ,
584
590
numbers : RangeError ,
585
591
to_s : "4294967000:*" ,
@@ -591,6 +597,7 @@ def test_inspect((expected, input, freeze))
591
597
data "* sorts last" , {
592
598
input : "5,*,7" ,
593
599
elements : [ 5 , 7 , :* ] ,
600
+ entries : [ 5 , :* , 7 ] ,
594
601
ranges : [ 5 ..5 , 7 ..7 , :* ..] ,
595
602
numbers : RangeError ,
596
603
to_s : "5,*,7" ,
@@ -602,6 +609,7 @@ def test_inspect((expected, input, freeze))
602
609
data "out of order" , {
603
610
input : "46,7:6,15,3:1" ,
604
611
elements : [ 1 ..3 , 6 ..7 , 15 , 46 ] ,
612
+ entries : [ 46 , 6 ..7 , 15 , 1 ..3 ] ,
605
613
ranges : [ 1 ..3 , 6 ..7 , 15 ..15 , 46 ..46 ] ,
606
614
numbers : [ 1 , 2 , 3 , 6 , 7 , 15 , 46 ] ,
607
615
to_s : "46,7:6,15,3:1" ,
@@ -613,6 +621,7 @@ def test_inspect((expected, input, freeze))
613
621
data "adjacent" , {
614
622
input : "1,2,3,5,7:9,10:11" ,
615
623
elements : [ 1 ..3 , 5 , 7 ..11 ] ,
624
+ entries : [ 1 , 2 , 3 , 5 , 7 ..9 , 10 ..11 ] ,
616
625
ranges : [ 1 ..3 , 5 ..5 , 7 ..11 ] ,
617
626
numbers : [ 1 , 2 , 3 , 5 , 7 , 8 , 9 , 10 , 11 ] ,
618
627
to_s : "1,2,3,5,7:9,10:11" ,
@@ -624,6 +633,7 @@ def test_inspect((expected, input, freeze))
624
633
data "overlapping" , {
625
634
input : "1:5,3:7,10:9,10:11" ,
626
635
elements : [ 1 ..7 , 9 ..11 ] ,
636
+ entries : [ 1 ..5 , 3 ..7 , 9 ..10 , 10 ..11 ] ,
627
637
ranges : [ 1 ..7 , 9 ..11 ] ,
628
638
numbers : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 9 , 10 , 11 ] ,
629
639
to_s : "1:5,3:7,10:9,10:11" ,
@@ -635,6 +645,7 @@ def test_inspect((expected, input, freeze))
635
645
data "contained" , {
636
646
input : "1:5,3:4,9:11,10" ,
637
647
elements : [ 1 ..5 , 9 ..11 ] ,
648
+ entries : [ 1 ..5 , 3 ..4 , 9 ..11 , 10 ] ,
638
649
ranges : [ 1 ..5 , 9 ..11 ] ,
639
650
numbers : [ 1 , 2 , 3 , 4 , 5 , 9 , 10 , 11 ] ,
640
651
to_s : "1:5,3:4,9:11,10" ,
@@ -646,6 +657,7 @@ def test_inspect((expected, input, freeze))
646
657
data "array" , {
647
658
input : [ "1:5,3:4" , 9 ..11 , "10" , 99 , :* ] ,
648
659
elements : [ 1 ..5 , 9 ..11 , 99 , :* ] ,
660
+ entries : [ 1 ..5 , 9 ..11 , 99 , :* ] ,
649
661
ranges : [ 1 ..5 , 9 ..11 , 99 ..99 , :* ..] ,
650
662
numbers : RangeError ,
651
663
to_s : "1:5,9:11,99,*" ,
@@ -657,6 +669,7 @@ def test_inspect((expected, input, freeze))
657
669
data "nested array" , {
658
670
input : [ [ "1:5" , [ 3 ..4 ] , [ [ [ 9 ..11 , "10" ] , 99 ] , :* ] ] ] ,
659
671
elements : [ 1 ..5 , 9 ..11 , 99 , :* ] ,
672
+ entries : [ 1 ..5 , 9 ..11 , 99 , :* ] ,
660
673
ranges : [ 1 ..5 , 9 ..11 , 99 ..99 , :* ..] ,
661
674
numbers : RangeError ,
662
675
to_s : "1:5,9:11,99,*" ,
@@ -668,6 +681,7 @@ def test_inspect((expected, input, freeze))
668
681
data "empty" , {
669
682
input : nil ,
670
683
elements : [ ] ,
684
+ entries : [ ] ,
671
685
ranges : [ ] ,
672
686
numbers : [ ] ,
673
687
to_s : "" ,
@@ -680,6 +694,26 @@ def test_inspect((expected, input, freeze))
680
694
assert_equal data [ :elements ] , SequenceSet . new ( data [ :input ] ) . elements
681
695
end
682
696
697
+ test "#each_element" do |data |
698
+ seqset = SequenceSet . new ( data [ :input ] )
699
+ array = [ ]
700
+ assert_equal seqset , seqset . each_element { array << _1 }
701
+ assert_equal data [ :elements ] , array
702
+ assert_equal data [ :elements ] , seqset . each_element . to_a
703
+ end
704
+
705
+ test "#entries" do |data |
706
+ assert_equal data [ :entries ] , SequenceSet . new ( data [ :input ] ) . entries
707
+ end
708
+
709
+ test "#each_entry" do |data |
710
+ seqset = SequenceSet . new ( data [ :input ] )
711
+ array = [ ]
712
+ assert_equal seqset , seqset . each_entry { array << _1 }
713
+ assert_equal data [ :entries ] , array
714
+ assert_equal data [ :entries ] , seqset . each_entry . to_a
715
+ end
716
+
683
717
test "#ranges" do |data |
684
718
assert_equal data [ :ranges ] , SequenceSet . new ( data [ :input ] ) . ranges
685
719
end
0 commit comments