@@ -167,6 +167,21 @@ def obj.to_sequence_set; 192_168.001_255 end
167
167
assert_raise DataFormatError do SequenceSet . try_convert ( obj ) end
168
168
end
169
169
170
+ test "#at(non-negative index)" do
171
+ assert_nil SequenceSet . empty . at ( 0 )
172
+ assert_equal 1 , SequenceSet [ 1 ..] . at ( 0 )
173
+ assert_equal 1 , SequenceSet . full . at ( 0 )
174
+ assert_equal 111 , SequenceSet . full . at ( 110 )
175
+ assert_equal 4 , SequenceSet [ 2 , 4 , 6 , 8 ] . at ( 1 )
176
+ assert_equal 8 , SequenceSet [ 2 , 4 , 6 , 8 ] . at ( 3 )
177
+ assert_equal 6 , SequenceSet [ 4 ..6 ] . at ( 2 )
178
+ assert_nil SequenceSet [ 4 ..6 ] . at ( 3 )
179
+ assert_equal 205 , SequenceSet [ "101:110,201:210,301:310" ] . at ( 14 )
180
+ assert_equal 310 , SequenceSet [ "101:110,201:210,301:310" ] . at ( 29 )
181
+ assert_nil SequenceSet [ "101:110,201:210,301:310" ] . at ( 44 )
182
+ assert_equal :* , SequenceSet [ "1:10,*" ] . at ( 10 )
183
+ end
184
+
170
185
test "#[non-negative index]" do
171
186
assert_nil SequenceSet . empty [ 0 ]
172
187
assert_equal 1 , SequenceSet [ 1 ..] [ 0 ]
@@ -182,18 +197,32 @@ def obj.to_sequence_set; 192_168.001_255 end
182
197
assert_equal :* , SequenceSet [ "1:10,*" ] [ 10 ]
183
198
end
184
199
200
+ test "#at(negative index)" do
201
+ assert_nil SequenceSet . empty . at ( -1 )
202
+ assert_equal :* , SequenceSet [ 1 ..] . at ( -1 )
203
+ assert_equal 1 , SequenceSet . full . at ( -( 2 **32 ) )
204
+ assert_equal 111 , SequenceSet [ 1 ..111 ] . at ( -1 )
205
+ assert_equal 6 , SequenceSet [ 2 , 4 , 6 , 8 ] . at ( -2 )
206
+ assert_equal 2 , SequenceSet [ 2 , 4 , 6 , 8 ] . at ( -4 )
207
+ assert_equal 4 , SequenceSet [ 4 ..6 ] . at ( -3 )
208
+ assert_nil SequenceSet [ 4 ..6 ] . at ( -4 )
209
+ assert_equal 207 , SequenceSet [ "101:110,201:210,301:310" ] . at ( -14 )
210
+ assert_equal 102 , SequenceSet [ "101:110,201:210,301:310" ] . at ( -29 )
211
+ assert_nil SequenceSet [ "101:110,201:210,301:310" ] . at ( -44 )
212
+ end
213
+
185
214
test "#[negative index]" do
186
- assert_nil SequenceSet . empty [ 0 ]
215
+ assert_nil SequenceSet . empty [ - 1 ]
187
216
assert_equal :* , SequenceSet [ 1 ..] [ -1 ]
188
217
assert_equal 1 , SequenceSet . full [ -( 2 **32 ) ]
189
218
assert_equal 111 , SequenceSet [ 1 ..111 ] [ -1 ]
190
- assert_equal 4 , SequenceSet [ 2 , 4 , 6 , 8 ] [ 1 ]
191
- assert_equal 8 , SequenceSet [ 2 , 4 , 6 , 8 ] [ 3 ]
192
- assert_equal 6 , SequenceSet [ 4 ..6 ] [ 2 ]
193
- assert_nil SequenceSet [ 4 ..6 ] [ 3 ]
194
- assert_equal 205 , SequenceSet [ "101:110,201:210,301:310" ] [ 14 ]
195
- assert_equal 310 , SequenceSet [ "101:110,201:210,301:310" ] [ 29 ]
196
- assert_nil SequenceSet [ "101:110,201:210,301:310" ] [ 44 ]
219
+ assert_equal 6 , SequenceSet [ 2 , 4 , 6 , 8 ] [ - 2 ]
220
+ assert_equal 2 , SequenceSet [ 2 , 4 , 6 , 8 ] [ - 4 ]
221
+ assert_equal 4 , SequenceSet [ 4 ..6 ] [ - 3 ]
222
+ assert_nil SequenceSet [ 4 ..6 ] [ - 4 ]
223
+ assert_equal 207 , SequenceSet [ "101:110,201:210,301:310" ] [ - 14 ]
224
+ assert_equal 102 , SequenceSet [ "101:110,201:210,301:310" ] [ - 29 ]
225
+ assert_nil SequenceSet [ "101:110,201:210,301:310" ] [ - 44 ]
197
226
end
198
227
199
228
test "#[start, length]" do
0 commit comments