@@ -225,6 +225,38 @@ def obj.to_sequence_set; 192_168.001_255 end
225
225
assert_nil SequenceSet [ "101:110,201:210,301:310" ] [ -44 ]
226
226
end
227
227
228
+ test "#ordered_at(non-negative index)" do
229
+ assert_nil SequenceSet . empty . ordered_at ( 0 )
230
+ assert_equal 1 , SequenceSet . full . ordered_at ( 0 )
231
+ assert_equal 111 , SequenceSet . full . ordered_at ( 110 )
232
+ assert_equal 1 , SequenceSet [ "1:*" ] . ordered_at ( 0 )
233
+ assert_equal :* , SequenceSet [ "*,1" ] . ordered_at ( 0 )
234
+ assert_equal 4 , SequenceSet [ "6,4,8,2" ] . ordered_at ( 1 )
235
+ assert_equal 2 , SequenceSet [ "6,4,8,2" ] . ordered_at ( 3 )
236
+ assert_equal 6 , SequenceSet [ "9:11,4:6,1:3" ] . ordered_at ( 5 )
237
+ assert_nil SequenceSet [ "9:11,4:6,1:3" ] . ordered_at ( 9 )
238
+ assert_equal 105 , SequenceSet [ "201:210,101:110,301:310" ] . ordered_at ( 14 )
239
+ assert_equal 310 , SequenceSet [ "201:210,101:110,301:310" ] . ordered_at ( 29 )
240
+ assert_nil SequenceSet [ "201:210,101:110,301:310" ] . ordered_at ( 30 )
241
+ assert_equal :* , SequenceSet [ "1:10,*" ] . ordered_at ( 10 )
242
+ end
243
+
244
+ test "#ordered_at(negative index)" do
245
+ assert_nil SequenceSet . empty . ordered_at ( -1 )
246
+ assert_equal :* , SequenceSet [ "1:*" ] . ordered_at ( -1 )
247
+ assert_equal 1 , SequenceSet . full . ordered_at ( -( 2 **32 ) )
248
+ assert_equal :* , SequenceSet [ "*,1" ] . ordered_at ( 0 )
249
+ assert_equal 8 , SequenceSet [ "6,4,8,2" ] . ordered_at ( -2 )
250
+ assert_equal 6 , SequenceSet [ "6,4,8,2" ] . ordered_at ( -4 )
251
+ assert_equal 4 , SequenceSet [ "9:11,4:6,1:3" ] . ordered_at ( -6 )
252
+ assert_equal 10 , SequenceSet [ "9:11,4:6,1:3" ] . ordered_at ( -8 )
253
+ assert_nil SequenceSet [ "9:11,4:6,1:3" ] . ordered_at ( -12 )
254
+ assert_equal 107 , SequenceSet [ "201:210,101:110,301:310" ] . ordered_at ( -14 )
255
+ assert_equal 201 , SequenceSet [ "201:210,101:110,301:310" ] . ordered_at ( -30 )
256
+ assert_nil SequenceSet [ "201:210,101:110,301:310" ] . ordered_at ( -31 )
257
+ assert_equal :* , SequenceSet [ "1:10,*" ] . ordered_at ( 10 )
258
+ end
259
+
228
260
test "#[start, length]" do
229
261
assert_equal SequenceSet [ 10 ..99 ] , SequenceSet . full [ 9 , 90 ]
230
262
assert_equal 90 , SequenceSet . full [ 9 , 90 ] . count
0 commit comments