xqsr3 0.38.1 → 0.38.2
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 +5 -5
- data/examples/count_word_frequencies.md +1 -1
- data/examples/count_word_frequencies.rb +1 -1
- data/lib/xqsr3/array_utilities/join_with_or.rb +9 -10
- data/lib/xqsr3/command_line_utilities/map_option_string.rb +9 -10
- data/lib/xqsr3/containers/frequency_map.rb +8 -7
- data/lib/xqsr3/containers/multi_map.rb +8 -7
- data/lib/xqsr3/conversion/bool_parser.rb +8 -9
- data/lib/xqsr3/conversion/integer_parser.rb +8 -9
- data/lib/xqsr3/diagnostics/exception_utilities.rb +9 -8
- data/lib/xqsr3/diagnostics/exceptions/with_cause.rb +11 -7
- data/lib/xqsr3/diagnostics/inspect_builder.rb +8 -8
- data/lib/xqsr3/doc_.rb +8 -8
- data/lib/xqsr3/extensions/enumerable/collect_with_index.rb +8 -7
- data/lib/xqsr3/extensions/enumerable/detect_map.rb +8 -8
- data/lib/xqsr3/extensions/enumerable/unique.rb +3 -3
- data/lib/xqsr3/extensions/io/writelines.rb +8 -8
- data/lib/xqsr3/extensions/kernel/integer.rb +8 -8
- data/lib/xqsr3/extensions/kernel/raise_with_options.rb +9 -8
- data/lib/xqsr3/extensions/string/map_option_string.rb +0 -1
- data/lib/xqsr3/extensions/string/quote_if.rb +0 -1
- data/lib/xqsr3/extensions/string/to_bool.rb +0 -1
- data/lib/xqsr3/extensions/string/truncate.rb +0 -1
- data/lib/xqsr3/extensions/test/unit/assert_eql.rb +2 -2
- data/lib/xqsr3/extensions/test/unit/assert_false.rb +1 -2
- data/lib/xqsr3/extensions/test/unit/assert_not.rb +0 -1
- data/lib/xqsr3/extensions/test/unit/assert_not_eql.rb +2 -2
- data/lib/xqsr3/extensions/test/unit/assert_raise_with_message.rb +0 -1
- data/lib/xqsr3/extensions/test/unit/assert_subclass_of.rb +0 -1
- data/lib/xqsr3/extensions/test/unit/assert_superclass_of.rb +0 -1
- data/lib/xqsr3/extensions/test/unit/assert_true.rb +1 -2
- data/lib/xqsr3/extensions/test/unit/assert_type_has_instance_methods.rb +0 -2
- data/lib/xqsr3/hash_utilities/deep_transform.rb +11 -11
- data/lib/xqsr3/hash_utilities/key_matching.rb +8 -8
- data/lib/xqsr3/internal_/test_unit_version_.rb +45 -3
- data/lib/xqsr3/io/writelines.rb +8 -8
- data/lib/xqsr3/quality/parameter_checking.rb +105 -105
- data/lib/xqsr3/string_utilities/ends_with.rb +8 -8
- data/lib/xqsr3/string_utilities/nil_if_empty.rb +8 -9
- data/lib/xqsr3/string_utilities/nil_if_whitespace.rb +9 -9
- data/lib/xqsr3/string_utilities/quote_if.rb +8 -9
- data/lib/xqsr3/string_utilities/starts_with.rb +8 -8
- data/lib/xqsr3/string_utilities/to_symbol.rb +8 -8
- data/lib/xqsr3/string_utilities/truncate.rb +8 -9
- data/lib/xqsr3/version.rb +9 -10
- data/test/performance/frequency_map.rb +1 -15
- data/test/scratch/test_assert_raise_with_message.rb +1 -2
- data/test/unit/array_utilities/tc_join_with_or.rb +0 -2
- data/test/unit/containers/tc_frequency_map.rb +56 -3
- data/test/unit/containers/tc_multi_map.rb +56 -5
- data/test/unit/conversion/tc_integer_parser.rb +1 -1
- data/test/unit/conversion/tc_to_bool.rb +1 -1
- data/test/unit/extensions/hash/tc_hash.rb +1 -1
- data/test/unit/extensions/hash/tc_slice.rb +1 -1
- data/test/unit/extensions/object/tc_inspect.rb +1 -1
- data/test/unit/io/tc_writelines.rb +0 -2
- data/test/unit/quality/tc_parameter_checking.rb +1 -1
- data/test/unit/string_utilities/tc_truncate.rb +1 -1
- metadata +6 -7
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
|
|
2
2
|
# ######################################################################## #
|
|
3
|
-
# File:
|
|
3
|
+
# File: lib/xqsr3/string_utilities/starts_with.rb
|
|
4
4
|
#
|
|
5
|
-
# Purpose:
|
|
6
|
-
# module
|
|
5
|
+
# Purpose: Definition of the Xqsr3::StringUtilities::StartsWith module
|
|
7
6
|
#
|
|
8
|
-
# Created:
|
|
9
|
-
# Updated:
|
|
7
|
+
# Created: 13th April 2016
|
|
8
|
+
# Updated: 11th December 2023
|
|
10
9
|
#
|
|
11
|
-
# Home:
|
|
10
|
+
# Home: http://github.com/synesissoftware/xqsr3
|
|
12
11
|
#
|
|
13
|
-
# Author:
|
|
12
|
+
# Author: Matthew Wilson
|
|
14
13
|
#
|
|
14
|
+
# Copyright (c) 2019-2023, Matthew Wilson and Synesis Information Systems
|
|
15
15
|
# Copyright (c) 2016-2019, Matthew Wilson and Synesis Software
|
|
16
16
|
# All rights reserved.
|
|
17
17
|
#
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
# notice, this list of conditions and the following disclaimer in the
|
|
27
27
|
# documentation and/or other materials provided with the distribution.
|
|
28
28
|
#
|
|
29
|
-
# * Neither the names of the copyright
|
|
29
|
+
# * Neither the names of the copyright holders nor the names of its
|
|
30
30
|
# contributors may be used to endorse or promote products derived from
|
|
31
31
|
# this software without specific prior written permission.
|
|
32
32
|
#
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
|
|
2
2
|
# ######################################################################## #
|
|
3
|
-
# File:
|
|
3
|
+
# File: lib/xqsr3/string_utilities/to_symbol.rb
|
|
4
4
|
#
|
|
5
|
-
# Purpose:
|
|
6
|
-
# module
|
|
5
|
+
# Purpose: Definition of the Xqsr3::StringUtilities::ToSymbol module
|
|
7
6
|
#
|
|
8
|
-
# Created:
|
|
9
|
-
# Updated:
|
|
7
|
+
# Created: 14th April 2016
|
|
8
|
+
# Updated: 11th December 2023
|
|
10
9
|
#
|
|
11
|
-
# Home:
|
|
10
|
+
# Home: http://github.com/synesissoftware/xqsr3
|
|
12
11
|
#
|
|
13
|
-
# Author:
|
|
12
|
+
# Author: Matthew Wilson
|
|
14
13
|
#
|
|
14
|
+
# Copyright (c) 2019-2023, Matthew Wilson and Synesis Information Systems
|
|
15
15
|
# Copyright (c) 2016-2019, Matthew Wilson and Synesis Software
|
|
16
16
|
# All rights reserved.
|
|
17
17
|
#
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
# notice, this list of conditions and the following disclaimer in the
|
|
27
27
|
# documentation and/or other materials provided with the distribution.
|
|
28
28
|
#
|
|
29
|
-
# * Neither the names of the copyright
|
|
29
|
+
# * Neither the names of the copyright holders nor the names of its
|
|
30
30
|
# contributors may be used to endorse or promote products derived from
|
|
31
31
|
# this software without specific prior written permission.
|
|
32
32
|
#
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
|
|
2
2
|
# ######################################################################## #
|
|
3
|
-
# File:
|
|
3
|
+
# File: lib/xqsr3/string_utilities/truncate.rb
|
|
4
4
|
#
|
|
5
|
-
# Purpose:
|
|
6
|
-
# module
|
|
5
|
+
# Purpose: Definition of the Xqsr3::StringUtilities::Truncate module
|
|
7
6
|
#
|
|
8
|
-
# Created:
|
|
9
|
-
# Updated:
|
|
7
|
+
# Created: 12th April 2018
|
|
8
|
+
# Updated: 11th December 2023
|
|
10
9
|
#
|
|
11
|
-
# Home:
|
|
10
|
+
# Home: http://github.com/synesissoftware/xqsr3
|
|
12
11
|
#
|
|
13
|
-
# Author:
|
|
12
|
+
# Author: Matthew Wilson
|
|
14
13
|
#
|
|
14
|
+
# Copyright (c) 2019-2023, Matthew Wilson and Synesis Information Systems
|
|
15
15
|
# Copyright (c) 2018-2019, Matthew Wilson and Synesis Software
|
|
16
16
|
# All rights reserved.
|
|
17
17
|
#
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
# notice, this list of conditions and the following disclaimer in the
|
|
27
27
|
# documentation and/or other materials provided with the distribution.
|
|
28
28
|
#
|
|
29
|
-
# * Neither the names of the copyright
|
|
29
|
+
# * Neither the names of the copyright holders nor the names of its
|
|
30
30
|
# contributors may be used to endorse or promote products derived from
|
|
31
31
|
# this software without specific prior written permission.
|
|
32
32
|
#
|
|
@@ -134,4 +134,3 @@ end # module Xqsr3
|
|
|
134
134
|
|
|
135
135
|
# ############################## end of file ############################# #
|
|
136
136
|
|
|
137
|
-
|
data/lib/xqsr3/version.rb
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
|
|
2
2
|
# ######################################################################## #
|
|
3
|
-
# File:
|
|
3
|
+
# File: lib/xqsr3/version.rb
|
|
4
4
|
#
|
|
5
|
-
# Purpose:
|
|
5
|
+
# Purpose: Version for Xqsr3 library
|
|
6
6
|
#
|
|
7
|
-
# Created:
|
|
8
|
-
# Updated:
|
|
7
|
+
# Created: 3rd April 2016
|
|
8
|
+
# Updated: 1st January 2024
|
|
9
9
|
#
|
|
10
|
-
# Home:
|
|
10
|
+
# Home: http://github.com/synesissoftware/xqsr3
|
|
11
11
|
#
|
|
12
|
-
# Author:
|
|
12
|
+
# Author: Matthew Wilson
|
|
13
13
|
#
|
|
14
|
-
# Copyright (c) 2019-
|
|
14
|
+
# Copyright (c) 2019-2024, Matthew Wilson and Synesis Information Systems
|
|
15
15
|
# Copyright (c) 2016-2019, Matthew Wilson and Synesis Software
|
|
16
16
|
# All rights reserved.
|
|
17
17
|
#
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
# notice, this list of conditions and the following disclaimer in the
|
|
27
27
|
# documentation and/or other materials provided with the distribution.
|
|
28
28
|
#
|
|
29
|
-
# * Neither the names of the copyright
|
|
29
|
+
# * Neither the names of the copyright holders nor the names of its
|
|
30
30
|
# contributors may be used to endorse or promote products derived from
|
|
31
31
|
# this software without specific prior written permission.
|
|
32
32
|
#
|
|
@@ -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.2'
|
|
55
55
|
|
|
56
56
|
private
|
|
57
57
|
VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
|
|
@@ -67,4 +67,3 @@ end # module Xqsr3
|
|
|
67
67
|
|
|
68
68
|
# ############################## end of file ############################# #
|
|
69
69
|
|
|
70
|
-
|
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
#############################################################################
|
|
4
|
-
# File: test/performance/frequency_map.rb
|
|
5
|
-
#
|
|
6
|
-
# Purpose: COMPLETE_ME
|
|
7
|
-
#
|
|
8
|
-
# Created: 13th October 2018
|
|
9
|
-
# Updated: 13th October 2018
|
|
10
|
-
#
|
|
11
|
-
# Author: Matthew Wilson
|
|
12
|
-
#
|
|
13
|
-
# Copyright: <<TBD>>
|
|
14
|
-
#
|
|
15
|
-
#############################################################################
|
|
1
|
+
#! /usr/bin/env ruby
|
|
16
2
|
|
|
17
3
|
$:.unshift File.join(File.dirname($0), *(['..'] * 2), 'lib')
|
|
18
4
|
|
|
@@ -532,7 +532,34 @@ class Test_Xqsr3_Containers_FrequencyMap < Test::Unit::TestCase
|
|
|
532
532
|
assert_equal 0, fm.count
|
|
533
533
|
end
|
|
534
534
|
|
|
535
|
-
def
|
|
535
|
+
def test_op_equal
|
|
536
|
+
# `==` evaluates logical equality (except for `Object`)
|
|
537
|
+
|
|
538
|
+
fm1 = FrequencyMap.new
|
|
539
|
+
fm2 = FrequencyMap.new
|
|
540
|
+
|
|
541
|
+
assert fm1 == fm1
|
|
542
|
+
assert fm2 == fm2
|
|
543
|
+
assert fm1 == fm2
|
|
544
|
+
|
|
545
|
+
fm1 << :abc << :def
|
|
546
|
+
|
|
547
|
+
assert fm1 == fm1
|
|
548
|
+
assert fm2 == fm2
|
|
549
|
+
assert_not fm1 == fm2
|
|
550
|
+
|
|
551
|
+
fm2 << :def << :abc
|
|
552
|
+
|
|
553
|
+
assert fm1 == fm1
|
|
554
|
+
assert fm2 == fm2
|
|
555
|
+
assert fm1 == fm2
|
|
556
|
+
|
|
557
|
+
assert_equal 2, fm1.size
|
|
558
|
+
assert_equal 2, fm1.count
|
|
559
|
+
end
|
|
560
|
+
|
|
561
|
+
def test_eql
|
|
562
|
+
# `eql?` evaluates equality based on #hash
|
|
536
563
|
|
|
537
564
|
fm1 = FrequencyMap.new
|
|
538
565
|
fm2 = FrequencyMap.new
|
|
@@ -557,6 +584,32 @@ class Test_Xqsr3_Containers_FrequencyMap < Test::Unit::TestCase
|
|
|
557
584
|
assert_equal 2, fm1.count
|
|
558
585
|
end
|
|
559
586
|
|
|
587
|
+
def test_equal
|
|
588
|
+
# `eql?` evaluates identity
|
|
589
|
+
|
|
590
|
+
fm1 = FrequencyMap.new
|
|
591
|
+
fm2 = FrequencyMap.new
|
|
592
|
+
|
|
593
|
+
assert fm1.equal? fm1
|
|
594
|
+
assert fm2.equal? fm2
|
|
595
|
+
assert_not fm1.equal? fm2
|
|
596
|
+
|
|
597
|
+
fm1 << :abc << :def
|
|
598
|
+
|
|
599
|
+
assert fm1.equal? fm1
|
|
600
|
+
assert fm2.equal? fm2
|
|
601
|
+
assert_not fm1.equal? fm2
|
|
602
|
+
|
|
603
|
+
fm2 << :def << :abc
|
|
604
|
+
|
|
605
|
+
assert fm1.equal? fm1
|
|
606
|
+
assert fm2.equal? fm2
|
|
607
|
+
assert_not fm1.equal? fm2
|
|
608
|
+
|
|
609
|
+
assert_equal 2, fm1.size
|
|
610
|
+
assert_equal 2, fm1.count
|
|
611
|
+
end
|
|
612
|
+
|
|
560
613
|
def test_fetch
|
|
561
614
|
|
|
562
615
|
fm = FrequencyMap.new
|
|
@@ -596,7 +649,7 @@ class Test_Xqsr3_Containers_FrequencyMap < Test::Unit::TestCase
|
|
|
596
649
|
assert_equal [:def, 2, :abc, 1], fm.flatten
|
|
597
650
|
end
|
|
598
651
|
|
|
599
|
-
def test_has_key
|
|
652
|
+
def test_has_key
|
|
600
653
|
|
|
601
654
|
fm = FrequencyMap.new
|
|
602
655
|
|
|
@@ -617,7 +670,7 @@ class Test_Xqsr3_Containers_FrequencyMap < Test::Unit::TestCase
|
|
|
617
670
|
assert fm.has_key? 'abc'
|
|
618
671
|
end
|
|
619
672
|
|
|
620
|
-
def test_has_value
|
|
673
|
+
def test_has_value
|
|
621
674
|
|
|
622
675
|
fm = FrequencyMap.new
|
|
623
676
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
#! /usr/bin/env ruby
|
|
2
2
|
|
|
3
3
|
$:.unshift File.join(File.dirname(__FILE__), '../../../lib')
|
|
4
4
|
|
|
@@ -410,7 +410,33 @@ class Test_Xqsr3_Containers_MultiMap < Test::Unit::TestCase
|
|
|
410
410
|
assert_not mm.empty?
|
|
411
411
|
end
|
|
412
412
|
|
|
413
|
-
def
|
|
413
|
+
def test_op_equal
|
|
414
|
+
# `==` evaluates logical equality (except for `Object`)
|
|
415
|
+
|
|
416
|
+
mm1 = MultiMap.new
|
|
417
|
+
mm2 = MultiMap.new
|
|
418
|
+
|
|
419
|
+
assert mm1 == mm1
|
|
420
|
+
assert mm2 == mm2
|
|
421
|
+
assert mm1 == mm2
|
|
422
|
+
|
|
423
|
+
mm1.push :abc
|
|
424
|
+
mm1.push :def
|
|
425
|
+
|
|
426
|
+
assert mm1 == mm1
|
|
427
|
+
assert mm2 == mm2
|
|
428
|
+
assert_not mm1 == mm2
|
|
429
|
+
|
|
430
|
+
mm2.push :def
|
|
431
|
+
mm2.push :abc
|
|
432
|
+
|
|
433
|
+
assert mm1 == mm1
|
|
434
|
+
assert mm2 == mm2
|
|
435
|
+
assert mm1 == mm2
|
|
436
|
+
end
|
|
437
|
+
|
|
438
|
+
def test_eql
|
|
439
|
+
# `eql?` evaluates equality based on #hash
|
|
414
440
|
|
|
415
441
|
mm1 = MultiMap.new
|
|
416
442
|
mm2 = MultiMap.new
|
|
@@ -434,6 +460,31 @@ class Test_Xqsr3_Containers_MultiMap < Test::Unit::TestCase
|
|
|
434
460
|
assert mm1.eql? mm2
|
|
435
461
|
end
|
|
436
462
|
|
|
463
|
+
def test_equal
|
|
464
|
+
# `eql?` evaluates identity
|
|
465
|
+
|
|
466
|
+
mm1 = MultiMap.new
|
|
467
|
+
mm2 = MultiMap.new
|
|
468
|
+
|
|
469
|
+
assert mm1.equal? mm1
|
|
470
|
+
assert mm2.equal? mm2
|
|
471
|
+
assert_not mm1.equal? mm2
|
|
472
|
+
|
|
473
|
+
mm1.push :abc
|
|
474
|
+
mm1.push :def
|
|
475
|
+
|
|
476
|
+
assert mm1.equal? mm1
|
|
477
|
+
assert mm2.equal? mm2
|
|
478
|
+
assert_not mm1.equal? mm2
|
|
479
|
+
|
|
480
|
+
mm2.push :def
|
|
481
|
+
mm2.push :abc
|
|
482
|
+
|
|
483
|
+
assert mm1.equal? mm1
|
|
484
|
+
assert mm2.equal? mm2
|
|
485
|
+
assert_not mm1.equal? mm2
|
|
486
|
+
end
|
|
487
|
+
|
|
437
488
|
def test_fetch
|
|
438
489
|
|
|
439
490
|
mm = MultiMap.new
|
|
@@ -475,7 +526,7 @@ class Test_Xqsr3_Containers_MultiMap < Test::Unit::TestCase
|
|
|
475
526
|
assert_equal [ :abc, 1, :abc, 2, :abc, 3, :abc, 4, :abc, 5, :def, [] ], mm.flatten
|
|
476
527
|
end
|
|
477
528
|
|
|
478
|
-
def test_has_key
|
|
529
|
+
def test_has_key
|
|
479
530
|
|
|
480
531
|
mm = MultiMap.new
|
|
481
532
|
|
|
@@ -490,7 +541,7 @@ class Test_Xqsr3_Containers_MultiMap < Test::Unit::TestCase
|
|
|
490
541
|
assert_not mm.has_key? :abc
|
|
491
542
|
end
|
|
492
543
|
|
|
493
|
-
def test_has_value
|
|
544
|
+
def test_has_value
|
|
494
545
|
|
|
495
546
|
mm = MultiMap.new
|
|
496
547
|
|
|
@@ -507,7 +558,7 @@ class Test_Xqsr3_Containers_MultiMap < Test::Unit::TestCase
|
|
|
507
558
|
assert_not mm.has_value? :abc
|
|
508
559
|
end
|
|
509
560
|
|
|
510
|
-
def test_has_values
|
|
561
|
+
def test_has_values
|
|
511
562
|
|
|
512
563
|
mm = MultiMap.new
|
|
513
564
|
|
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.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matt Wilson
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-01-01 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
|
|
@@ -156,7 +156,7 @@ homepage: http://github.com/synesissoftware/xqsr3
|
|
|
156
156
|
licenses:
|
|
157
157
|
- BSD-3-Clause
|
|
158
158
|
metadata: {}
|
|
159
|
-
post_install_message:
|
|
159
|
+
post_install_message:
|
|
160
160
|
rdoc_options: []
|
|
161
161
|
require_paths:
|
|
162
162
|
- lib
|
|
@@ -174,9 +174,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
174
174
|
- !ruby/object:Gem::Version
|
|
175
175
|
version: '0'
|
|
176
176
|
requirements: []
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
signing_key:
|
|
177
|
+
rubygems_version: 3.1.6
|
|
178
|
+
signing_key:
|
|
180
179
|
specification_version: 4
|
|
181
180
|
summary: xqsr3
|
|
182
181
|
test_files: []
|