xqsr3 0.38.0 → 0.38.1
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.
- checksums.yaml +4 -4
- data/lib/xqsr3/containers/frequency_map.rb +10 -15
- data/lib/xqsr3/version.rb +2 -2
- data/test/unit/containers/tc_frequency_map.rb +86 -18
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 893916b4985f2cf4aacd3880f28d9199b3137f49
|
|
4
|
+
data.tar.gz: d611a888f54fc3d6bee966a040530637bdfe2423
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 222348a3e0621835acbb5df342e2625eb6f6c7d355b59e9aded4e105e3acdbfe27a13cff0af939964ecde0eab65f16a5bebd8560afb71781a653c98ba981cc0b
|
|
7
|
+
data.tar.gz: efd82ceb69653fcc88954b3fb03267d3719e00642de1c7a2de564fe008751e0476be9625da6037af8bdcc1aecbf242ceced924f29403858a9d5a3b8eff861391
|
|
@@ -285,9 +285,13 @@ class FrequencyMap
|
|
|
285
285
|
# keys must be created and sorted from which enumeration is directed
|
|
286
286
|
def each_by_key
|
|
287
287
|
|
|
288
|
-
@elements.
|
|
288
|
+
sorted_elements = @elements.sort { |a, b| a[0] <=> b[0] }
|
|
289
289
|
|
|
290
|
-
|
|
290
|
+
return sorted_elements.each unless block_given?
|
|
291
|
+
|
|
292
|
+
sorted_elements.each do |k, v|
|
|
293
|
+
|
|
294
|
+
yield k, v
|
|
291
295
|
end
|
|
292
296
|
end
|
|
293
297
|
|
|
@@ -298,22 +302,13 @@ class FrequencyMap
|
|
|
298
302
|
# and map all entries into it in order to achieve the ordering
|
|
299
303
|
def each_by_frequency
|
|
300
304
|
|
|
301
|
-
|
|
302
|
-
@elements.each do |element, frequency|
|
|
303
|
-
|
|
304
|
-
tm[frequency] = [] unless tm.has_key?(frequency)
|
|
305
|
+
ar = @elements.to_a.sort { |a, b| b[1] <=> a[1] }
|
|
305
306
|
|
|
306
|
-
|
|
307
|
-
end
|
|
308
|
-
|
|
309
|
-
keys = tm.keys.sort.reverse
|
|
310
|
-
keys.each do |frequency|
|
|
307
|
+
return ar.each unless block_given?
|
|
311
308
|
|
|
312
|
-
|
|
313
|
-
elements.each do |element|
|
|
309
|
+
ar.each do |k, v|
|
|
314
310
|
|
|
315
|
-
|
|
316
|
-
end
|
|
311
|
+
yield k, v
|
|
317
312
|
end
|
|
318
313
|
end
|
|
319
314
|
|
data/lib/xqsr3/version.rb
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# Purpose: Version for Xqsr3 library
|
|
6
6
|
#
|
|
7
7
|
# Created: 3rd April 2016
|
|
8
|
-
# Updated:
|
|
8
|
+
# Updated: 26th July 2022
|
|
9
9
|
#
|
|
10
10
|
# Home: http://github.com/synesissoftware/xqsr3
|
|
11
11
|
#
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
module Xqsr3
|
|
52
52
|
|
|
53
53
|
# Current version of the Xqsr3 library
|
|
54
|
-
VERSION = '0.38.
|
|
54
|
+
VERSION = '0.38.1'
|
|
55
55
|
|
|
56
56
|
private
|
|
57
57
|
VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
|
|
@@ -335,7 +335,7 @@ class Test_Xqsr3_Containers_FrequencyMap < Test::Unit::TestCase
|
|
|
335
335
|
assert_eql fm1, fm3
|
|
336
336
|
end
|
|
337
337
|
|
|
338
|
-
def
|
|
338
|
+
def test_each_WITH_BLOCK
|
|
339
339
|
|
|
340
340
|
fm = FrequencyMap.new
|
|
341
341
|
|
|
@@ -358,7 +358,25 @@ class Test_Xqsr3_Containers_FrequencyMap < Test::Unit::TestCase
|
|
|
358
358
|
assert_equal [:ghi, 2], r[2]
|
|
359
359
|
end
|
|
360
360
|
|
|
361
|
-
def
|
|
361
|
+
def test_each_WITHOUT_BLOCK
|
|
362
|
+
|
|
363
|
+
fm = FrequencyMap.new
|
|
364
|
+
|
|
365
|
+
fm << :def
|
|
366
|
+
fm << :abc << :abc << :abc << :abc
|
|
367
|
+
fm << :ghi << :ghi
|
|
368
|
+
|
|
369
|
+
r = fm.each.to_a
|
|
370
|
+
|
|
371
|
+
r.sort! { |a, b| a[0] <=> b[0] }
|
|
372
|
+
|
|
373
|
+
assert_equal 3, r.size
|
|
374
|
+
assert_equal [:abc, 4], r[0]
|
|
375
|
+
assert_equal [:def, 1], r[1]
|
|
376
|
+
assert_equal [:ghi, 2], r[2]
|
|
377
|
+
end
|
|
378
|
+
|
|
379
|
+
def test_each_by_key_WITH_BLOCK
|
|
362
380
|
|
|
363
381
|
fm = FrequencyMap.new
|
|
364
382
|
|
|
@@ -379,7 +397,23 @@ class Test_Xqsr3_Containers_FrequencyMap < Test::Unit::TestCase
|
|
|
379
397
|
assert_equal [:ghi, 2], r[2]
|
|
380
398
|
end
|
|
381
399
|
|
|
382
|
-
def
|
|
400
|
+
def test_each_by_key_WITHOUT_BLOCK
|
|
401
|
+
|
|
402
|
+
fm = FrequencyMap.new
|
|
403
|
+
|
|
404
|
+
fm << :def
|
|
405
|
+
fm << :abc << :abc << :abc << :abc
|
|
406
|
+
fm << :ghi << :ghi
|
|
407
|
+
|
|
408
|
+
r = fm.each_by_key.to_a
|
|
409
|
+
|
|
410
|
+
assert_equal 3, r.size
|
|
411
|
+
assert_equal [:abc, 4], r[0]
|
|
412
|
+
assert_equal [:def, 1], r[1]
|
|
413
|
+
assert_equal [:ghi, 2], r[2]
|
|
414
|
+
end
|
|
415
|
+
|
|
416
|
+
def test_each_by_frequency_WITH_BLOCK
|
|
383
417
|
|
|
384
418
|
fm = FrequencyMap.new
|
|
385
419
|
|
|
@@ -400,7 +434,23 @@ class Test_Xqsr3_Containers_FrequencyMap < Test::Unit::TestCase
|
|
|
400
434
|
assert_equal [:def, 1], r[2]
|
|
401
435
|
end
|
|
402
436
|
|
|
403
|
-
def
|
|
437
|
+
def test_each_by_frequency_WITHOUT_BLOCK
|
|
438
|
+
|
|
439
|
+
fm = FrequencyMap.new
|
|
440
|
+
|
|
441
|
+
fm << :def
|
|
442
|
+
fm << :abc << :abc << :abc << :abc
|
|
443
|
+
fm << :ghi << :ghi
|
|
444
|
+
|
|
445
|
+
r = fm.each_by_frequency.to_a
|
|
446
|
+
|
|
447
|
+
assert_equal 3, r.size
|
|
448
|
+
assert_equal [:abc, 4], r[0]
|
|
449
|
+
assert_equal [:ghi, 2], r[1]
|
|
450
|
+
assert_equal [:def, 1], r[2]
|
|
451
|
+
end
|
|
452
|
+
|
|
453
|
+
def test_each_value_WITH_BLOCK
|
|
404
454
|
|
|
405
455
|
fm = FrequencyMap.new
|
|
406
456
|
|
|
@@ -412,7 +462,7 @@ class Test_Xqsr3_Containers_FrequencyMap < Test::Unit::TestCase
|
|
|
412
462
|
|
|
413
463
|
fm.each_value do |v|
|
|
414
464
|
|
|
415
|
-
r <<
|
|
465
|
+
r << v
|
|
416
466
|
end
|
|
417
467
|
|
|
418
468
|
r.sort!
|
|
@@ -421,7 +471,7 @@ class Test_Xqsr3_Containers_FrequencyMap < Test::Unit::TestCase
|
|
|
421
471
|
assert_equal [1, 2, 4], r
|
|
422
472
|
end
|
|
423
473
|
|
|
424
|
-
def
|
|
474
|
+
def test_each_value_WITHOUT_BLOCK
|
|
425
475
|
|
|
426
476
|
fm = FrequencyMap.new
|
|
427
477
|
|
|
@@ -429,19 +479,37 @@ class Test_Xqsr3_Containers_FrequencyMap < Test::Unit::TestCase
|
|
|
429
479
|
fm << :abc << :abc << :abc << :abc
|
|
430
480
|
fm << :ghi << :ghi
|
|
431
481
|
|
|
432
|
-
fm.
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
482
|
+
r = fm.each_value.to_a
|
|
483
|
+
|
|
484
|
+
r.sort!
|
|
485
|
+
|
|
486
|
+
assert_equal 3, r.size
|
|
487
|
+
assert_equal [1, 2, 4], r
|
|
488
|
+
end
|
|
489
|
+
|
|
490
|
+
def test_each_with_index_WITH_BLOCK
|
|
491
|
+
|
|
492
|
+
fm = FrequencyMap.new
|
|
493
|
+
|
|
494
|
+
fm << :def
|
|
495
|
+
fm << :abc << :abc << :abc << :abc
|
|
496
|
+
fm << :ghi << :ghi
|
|
497
|
+
|
|
498
|
+
indexes = []
|
|
499
|
+
kvs = {}
|
|
500
|
+
|
|
501
|
+
fm.each_with_index do |kv, index|
|
|
502
|
+
|
|
503
|
+
k = kv[0]
|
|
504
|
+
v = kv[1]
|
|
505
|
+
|
|
506
|
+
indexes << index
|
|
507
|
+
|
|
508
|
+
kvs[k] = v
|
|
444
509
|
end
|
|
510
|
+
|
|
511
|
+
assert_equal [ 0, 1, 2 ], indexes
|
|
512
|
+
assert_equal Hash[ :abc, 4, :def, 1, :ghi, 2 ], kvs
|
|
445
513
|
end
|
|
446
514
|
|
|
447
515
|
def test_empty
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: xqsr3
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.38.
|
|
4
|
+
version: 0.38.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matt Wilson
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-07-
|
|
11
|
+
date: 2022-07-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: |
|
|
14
14
|
eXtensions by fine Quantum for Standard Ruby and 3rd-party libraries is a
|