random-accessible 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/random-writable.rb +7 -0
- data/test/test-random-accessible.rb +1 -28
- data/test/test-random-writable.rb +36 -42
- metadata +3 -3
data/lib/random-writable.rb
CHANGED
@@ -171,6 +171,7 @@ module RandomWritable
|
|
171
171
|
# if the class provides no size-provider.
|
172
172
|
def clear
|
173
173
|
shrink(size)
|
174
|
+
return self
|
174
175
|
end
|
175
176
|
|
176
177
|
# Same as Array's.
|
@@ -184,6 +185,7 @@ module RandomWritable
|
|
184
185
|
replace_at(i, el)
|
185
186
|
i += 1
|
186
187
|
end
|
188
|
+
return self
|
187
189
|
end
|
188
190
|
|
189
191
|
# Same as Array's.
|
@@ -228,6 +230,8 @@ module RandomWritable
|
|
228
230
|
end
|
229
231
|
end
|
230
232
|
end
|
233
|
+
|
234
|
+
return self
|
231
235
|
end
|
232
236
|
|
233
237
|
# Same as Array's.
|
@@ -241,6 +245,7 @@ module RandomWritable
|
|
241
245
|
insert_at(nth, el)
|
242
246
|
end
|
243
247
|
end
|
248
|
+
return self
|
244
249
|
end
|
245
250
|
|
246
251
|
# Remove specified number of elements from the last of this object.
|
@@ -266,6 +271,7 @@ module RandomWritable
|
|
266
271
|
obj.each do |el|
|
267
272
|
replace_at(size, el)
|
268
273
|
end
|
274
|
+
return self
|
269
275
|
end
|
270
276
|
|
271
277
|
# Same as Array's.
|
@@ -284,6 +290,7 @@ module RandomWritable
|
|
284
290
|
# Same as Array's.
|
285
291
|
# This method raises NotImplementedError
|
286
292
|
# if the class provides no delete-accessor.
|
293
|
+
# This method ALWAYS RETURNS NULL.
|
287
294
|
def shift(*args)
|
288
295
|
if args.size > 1
|
289
296
|
raise ArgumentError, "wrong number of arguments(#{args.size})"
|
@@ -91,9 +91,7 @@ class TestRandomAccesible < Test::Unit::TestCase
|
|
91
91
|
def test_collect!
|
92
92
|
FULL_IMPLS.each do |klass|
|
93
93
|
impl = klass.new([1, 2, 3])
|
94
|
-
impl.collect!
|
95
|
-
el * 3
|
96
|
-
end
|
94
|
+
assert_same(impl, impl.collect! { |el| el * 3 })
|
97
95
|
assert_equal([3, 6, 9], impl)
|
98
96
|
assert_equal(3, impl.size)
|
99
97
|
|
@@ -205,31 +203,6 @@ class TestRandomAccesible < Test::Unit::TestCase
|
|
205
203
|
end
|
206
204
|
end
|
207
205
|
|
208
|
-
# TODO: Delete me.
|
209
|
-
def test_fill_start_length
|
210
|
-
FULL_IMPLS.each do |klass|
|
211
|
-
impl = klass.new([0, 1, 2, 3 ,4])
|
212
|
-
impl.fill(-1, 0, 3)
|
213
|
-
assert_equal([-1, -1, -1, 3, 4], impl)
|
214
|
-
assert_equal(5, impl.size)
|
215
|
-
|
216
|
-
impl = klass.new([0, 1, 2, 3 ,4])
|
217
|
-
impl.fill(-1, 2, 3)
|
218
|
-
assert_equal([0, 1, -1, -1, -1], impl)
|
219
|
-
assert_equal(5, impl.size)
|
220
|
-
|
221
|
-
impl = klass.new([0, 1, 2, 3 ,4])
|
222
|
-
impl.fill(-1, 2, 5)
|
223
|
-
assert_equal([0, 1, -1, -1, -1, -1, -1], impl)
|
224
|
-
assert_equal(7, impl.size)
|
225
|
-
|
226
|
-
impl = klass.new([0, 1, 2, 3 ,4])
|
227
|
-
impl.fill(-1, 7, 3)
|
228
|
-
assert_equal([0, 1, 2, 3, 4, nil, nil, -1, -1, -1], impl)
|
229
|
-
assert_equal(10, impl.size)
|
230
|
-
end
|
231
|
-
end
|
232
|
-
|
233
206
|
def test_flatten!
|
234
207
|
FULL_IMPLS.each do |klass|
|
235
208
|
impl = klass.new([1, [2, 3, [4], 5]])
|
@@ -211,15 +211,9 @@ class TestRandomWritable < Test::Unit::TestCase
|
|
211
211
|
end
|
212
212
|
|
213
213
|
def test_clear
|
214
|
-
FULL_IMPLS.each do |klass|
|
215
|
-
impl = klass.new((1..100).to_a)
|
216
|
-
impl.clear
|
217
|
-
assert_equal([], impl.to_ary)
|
218
|
-
assert_equal(0, impl.size)
|
219
|
-
end
|
220
|
-
NODELETE_IMPLS.each do |klass|
|
214
|
+
(FULL_IMPLS + NODELETE_IMPLS).each do |klass|
|
221
215
|
impl = klass.new((1..100).to_a)
|
222
|
-
impl.clear
|
216
|
+
assert_same(impl, impl.clear)
|
223
217
|
assert_equal([], impl.to_ary)
|
224
218
|
assert_equal(0, impl.size)
|
225
219
|
end
|
@@ -232,7 +226,7 @@ class TestRandomWritable < Test::Unit::TestCase
|
|
232
226
|
def test_concat
|
233
227
|
(FULL_IMPLS + NODELETE_IMPLS).each do |klass|
|
234
228
|
impl = klass.new([1, 2, 3])
|
235
|
-
impl.concat([4, 5])
|
229
|
+
assert_same(impl, impl.concat([4, 5]))
|
236
230
|
assert_equal([1, 2, 3, 4, 5], impl.to_ary)
|
237
231
|
assert_equal(5, impl.size)
|
238
232
|
end
|
@@ -314,11 +308,11 @@ class TestRandomWritable < Test::Unit::TestCase
|
|
314
308
|
def test_fill_val
|
315
309
|
(FULL_IMPLS + NODELETE_IMPLS).each do |klass|
|
316
310
|
impl = klass.new([1, 2, 3, 4])
|
317
|
-
impl.fill(10)
|
311
|
+
assert_same(impl, impl.fill(10))
|
318
312
|
assert_equal([10, 10, 10, 10], impl.to_ary)
|
319
313
|
|
320
314
|
impl = klass.new([1, 2, 3])
|
321
|
-
impl.fill { |i| -i }
|
315
|
+
assert_same(impl, impl.fill { |i| -i })
|
322
316
|
assert_equal([0, -1, -2], impl.to_ary)
|
323
317
|
end
|
324
318
|
NOSIZE_IMPLS.each do |klass|
|
@@ -334,92 +328,92 @@ class TestRandomWritable < Test::Unit::TestCase
|
|
334
328
|
def test_fill_start_length
|
335
329
|
(FULL_IMPLS + NODELETE_IMPLS).each do |klass|
|
336
330
|
impl = klass.new([1, 2, 3, 4])
|
337
|
-
impl.fill(10, 0, 2)
|
331
|
+
assert_same(impl, impl.fill(10, 0, 2))
|
338
332
|
assert_equal([10, 10, 3, 4], impl.to_ary)
|
339
333
|
assert_equal(4, impl.size)
|
340
334
|
|
341
|
-
impl.fill(-1, 1, 2)
|
335
|
+
assert_same(impl, impl.fill(-1, 1, 2))
|
342
336
|
assert_equal([10, -1, -1, 4], impl.to_ary)
|
343
337
|
assert_equal(4, impl.size)
|
344
338
|
|
345
|
-
impl.fill(0, 2, 2)
|
339
|
+
assert_same(impl, impl.fill(0, 2, 2))
|
346
340
|
assert_equal([10, -1, 0, 0], impl.to_ary)
|
347
341
|
assert_equal(4, impl.size)
|
348
342
|
|
349
|
-
impl.fill(1, 3, 3)
|
343
|
+
assert_equal(impl, impl.fill(1, 3, 3))
|
350
344
|
assert_equal([10, -1, 0, 1, 1, 1], impl.to_ary)
|
351
345
|
assert_equal(6, impl.size)
|
352
346
|
|
353
|
-
impl.fill(2, 6, 1)
|
347
|
+
assert_same(impl, impl.fill(2, 6, 1))
|
354
348
|
assert_equal([10, -1, 0, 1, 1, 1, 2], impl.to_ary)
|
355
349
|
assert_equal(7, impl.size)
|
356
350
|
|
357
|
-
impl.fill(3, 8, 3)
|
351
|
+
assert_same(impl, impl.fill(3, 8, 3))
|
358
352
|
assert_equal([10, -1, 0, 1, 1, 1, 2, nil, 3, 3, 3], impl.to_ary)
|
359
353
|
assert_equal(11, impl.size)
|
360
354
|
|
361
355
|
impl = klass.new([1, 2, 3, 4])
|
362
|
-
impl.fill(0, 2) { |i| 10 }
|
356
|
+
assert_same(impl, impl.fill(0, 2) { |i| 10 })
|
363
357
|
assert_equal([10, 10, 3, 4], impl.to_ary)
|
364
358
|
assert_equal(4, impl.size)
|
365
359
|
|
366
|
-
impl.fill(1, 2) { |i| -1 }
|
360
|
+
assert_same(impl, impl.fill(1, 2) { |i| -1 })
|
367
361
|
assert_equal([10, -1, -1, 4], impl.to_ary)
|
368
362
|
assert_equal(4, impl.size)
|
369
363
|
|
370
|
-
impl.fill(2, 2) { |i| i * 0 }
|
364
|
+
assert_same(impl, impl.fill(2, 2) { |i| i * 0 })
|
371
365
|
assert_equal([10, -1, 0, 0], impl.to_ary)
|
372
366
|
assert_equal(4, impl.size)
|
373
367
|
|
374
|
-
impl.fill(3, 3) { |i| 1 }
|
368
|
+
assert_same(impl, impl.fill(3, 3) { |i| 1 })
|
375
369
|
assert_equal([10, -1, 0, 1, 1, 1], impl.to_ary)
|
376
370
|
assert_equal(6, impl.size)
|
377
371
|
|
378
|
-
impl.fill(6, 1) { |i| i - 4 }
|
372
|
+
assert_same(impl, impl.fill(6, 1) { |i| i - 4 })
|
379
373
|
assert_equal([10, -1, 0, 1, 1, 1, 2], impl.to_ary)
|
380
374
|
assert_equal(7, impl.size)
|
381
375
|
|
382
|
-
impl.fill(8, 3) { |i| i }
|
376
|
+
assert_same(impl, impl.fill(8, 3) { |i| i })
|
383
377
|
assert_equal([10, -1, 0, 1, 1, 1, 2, nil, 8, 9, 10], impl.to_ary)
|
384
378
|
assert_equal(11, impl.size)
|
385
379
|
end
|
386
380
|
NOSIZE_IMPLS.each do |klass|
|
387
381
|
impl = klass.new([1, 2, 3, 4])
|
388
|
-
impl.fill(10, 0, 2)
|
382
|
+
assert_same(impl, impl.fill(10, 0, 2))
|
389
383
|
assert_equal([10, 10, 3, 4], impl.to_ary)
|
390
384
|
|
391
|
-
impl.fill(-1, 1, 2)
|
385
|
+
assert_same(impl, impl.fill(-1, 1, 2))
|
392
386
|
assert_equal([10, -1, -1, 4], impl.to_ary)
|
393
387
|
|
394
|
-
impl.fill(0, 2, 2)
|
388
|
+
assert_same(impl, impl.fill(0, 2, 2))
|
395
389
|
assert_equal([10, -1, 0, 0], impl.to_ary)
|
396
390
|
|
397
|
-
impl.fill(1, 3, 3)
|
391
|
+
assert_same(impl, impl.fill(1, 3, 3))
|
398
392
|
assert_equal([10, -1, 0, 1, 1, 1], impl.to_ary)
|
399
393
|
|
400
|
-
impl.fill(2, 6, 1)
|
394
|
+
assert_same(impl, impl.fill(2, 6, 1))
|
401
395
|
assert_equal([10, -1, 0, 1, 1, 1, 2], impl.to_ary)
|
402
396
|
|
403
|
-
impl.fill(3, 8, 3)
|
397
|
+
assert_same(impl, impl.fill(3, 8, 3))
|
404
398
|
assert_equal([10, -1, 0, 1, 1, 1, 2, nil, 3, 3, 3], impl.to_ary)
|
405
399
|
|
406
400
|
impl = klass.new([1, 2, 3, 4])
|
407
|
-
impl.fill(0, 2) { |i| 10 }
|
401
|
+
assert_same(impl, impl.fill(0, 2) { |i| 10 })
|
408
402
|
assert_equal([10, 10, 3, 4], impl.to_ary)
|
409
403
|
|
410
|
-
impl.fill(1, 2) { |i| -1 }
|
404
|
+
assert_same(impl, impl.fill(1, 2) { |i| -1 })
|
411
405
|
assert_equal([10, -1, -1, 4], impl.to_ary)
|
412
406
|
|
413
|
-
impl.fill(2, 2) { |i| i * 0 }
|
407
|
+
assert_same(impl, impl.fill(2, 2) { |i| i * 0 })
|
414
408
|
assert_equal([10, -1, 0, 0], impl.to_ary)
|
415
409
|
|
416
|
-
impl.fill(3, 3) { |i| 1 }
|
410
|
+
assert_same(impl, impl.fill(3, 3) { |i| 1 })
|
417
411
|
assert_equal([10, -1, 0, 1, 1, 1], impl.to_ary)
|
418
412
|
|
419
|
-
impl.fill(6, 1) { |i| i - 4 }
|
413
|
+
assert_same(impl, impl.fill(6, 1) { |i| i - 4 })
|
420
414
|
assert_equal([10, -1, 0, 1, 1, 1, 2], impl.to_ary)
|
421
415
|
|
422
|
-
impl.fill(8, 3) { |i| i }
|
416
|
+
assert_same(impl, impl.fill(8, 3) { |i| i })
|
423
417
|
assert_equal([10, -1, 0, 1, 1, 1, 2, nil, 8, 9, 10], impl.to_ary)
|
424
418
|
end
|
425
419
|
end
|
@@ -428,12 +422,12 @@ class TestRandomWritable < Test::Unit::TestCase
|
|
428
422
|
FULL_IMPLS.each do |klass|
|
429
423
|
msg = "Error in #{klass.name}"
|
430
424
|
impl = klass.new([1, 2, 3])
|
431
|
-
impl.insert(2, -1, -2)
|
425
|
+
assert_same(impl, impl.insert(2, -1, -2))
|
432
426
|
assert_equal([1, 2, -1, -2, 3], impl.to_ary, msg)
|
433
427
|
assert_equal(5, impl.size, msg)
|
434
428
|
|
435
429
|
impl = klass.new([1, 2, 3])
|
436
|
-
impl.insert(-2, -1, -2, -3)
|
430
|
+
assert_same(impl, impl.insert(-2, -1, -2, -3))
|
437
431
|
assert_equal([1, 2, -1, -2, -3, 3], impl.to_ary, msg)
|
438
432
|
assert_equal(6, impl.size, msg)
|
439
433
|
end
|
@@ -446,7 +440,7 @@ class TestRandomWritable < Test::Unit::TestCase
|
|
446
440
|
NOSIZE_IMPLS.each do |klass|
|
447
441
|
msg = "Error in #{klass.name}"
|
448
442
|
impl = klass.new([1, 2, 3])
|
449
|
-
impl.insert(2, -1, -2)
|
443
|
+
assert_same(impl, impl.insert(2, -1, -2))
|
450
444
|
assert_equal([1, 2, -1, -2, 3], impl.to_ary, msg)
|
451
445
|
|
452
446
|
impl = klass.new([1, 2, 3])
|
@@ -490,7 +484,7 @@ class TestRandomWritable < Test::Unit::TestCase
|
|
490
484
|
def test_push
|
491
485
|
(FULL_IMPLS + NODELETE_IMPLS).each do |klass|
|
492
486
|
impl = klass.new([1])
|
493
|
-
impl.push(2, 3)
|
487
|
+
assert_same(impl, impl.push(2, 3))
|
494
488
|
assert_equal([1, 2, 3], impl.to_ary)
|
495
489
|
assert_equal(3, impl.size)
|
496
490
|
end
|
@@ -503,17 +497,17 @@ class TestRandomWritable < Test::Unit::TestCase
|
|
503
497
|
def test_replace
|
504
498
|
(FULL_IMPLS + NODELETE_IMPLS).each do |klass|
|
505
499
|
impl = klass.new([1, 2, 3])
|
506
|
-
impl.replace([4, 5, 6])
|
500
|
+
assert_same(impl, impl.replace([4, 5, 6]))
|
507
501
|
assert_equal([4, 5, 6], impl.to_ary)
|
508
502
|
assert_equal(3, impl.size)
|
509
503
|
|
510
504
|
impl = klass.new([1, 2, 3])
|
511
|
-
impl.replace([4, 5])
|
505
|
+
assert_same(impl, impl.replace([4, 5]))
|
512
506
|
assert_equal([4, 5], impl.to_ary)
|
513
507
|
assert_equal(2, impl.size)
|
514
508
|
|
515
509
|
impl = klass.new([1, 2, 3])
|
516
|
-
impl.replace([4, 5, 6, 7])
|
510
|
+
assert_same(impl, impl.replace([4, 5, 6, 7]))
|
517
511
|
assert_equal([4, 5, 6, 7], impl.to_ary)
|
518
512
|
assert_equal(4, impl.size)
|
519
513
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: random-accessible
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,13 +9,13 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-21 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! 'RandomAccessible mixin provides all methods of Array (regard as high-functioning
|
15
15
|
edition of Enumerable).
|
16
16
|
|
17
17
|
As a class includes Enumerable must provide "each" method, a class includes RandomAccessible
|
18
|
-
must have some methods.
|
18
|
+
must have some methods. Please see the document for detail.
|
19
19
|
|
20
20
|
|
21
21
|
'
|