mug 0.5.3 → 0.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mug/and-or.rb +26 -26
- data/lib/mug/any-and-all.rb +16 -16
- data/lib/mug/apply.rb +37 -37
- data/lib/mug/array/extend.rb +43 -43
- data/lib/mug/array/minus.rb +32 -32
- data/lib/mug/bool.rb +71 -71
- data/lib/mug/clamp.rb +35 -35
- data/lib/mug/counts.rb +27 -27
- data/lib/mug/fragile-method-chain.rb +42 -42
- data/lib/mug/hash/map.rb +75 -75
- data/lib/mug/hash/operations.rb +47 -47
- data/lib/mug/iterator/for.rb +7 -7
- data/lib/mug/iterator/method.rb +7 -7
- data/lib/mug/iterator_c.rb +14 -14
- data/lib/mug/loop-with.rb +30 -29
- data/lib/mug/matchdata/each.rb +40 -40
- data/lib/mug/matchdata/hash.rb +29 -29
- data/lib/mug/maybe.rb +33 -33
- data/lib/mug/negativity.rb +20 -20
- data/lib/mug/not.rb +6 -6
- data/lib/mug/rexproc.rb +6 -6
- data/lib/mug/self.rb +31 -31
- data/lib/mug/to_h.rb +2 -2
- data/lib/mug/top.rb +100 -100
- data/test/test-and-or.rb +32 -32
- data/test/test-any-and-all.rb +19 -19
- data/test/test-apply.rb +47 -47
- data/test/test-array-extend.rb +54 -54
- data/test/test-array-minus.rb +11 -11
- data/test/test-bool.rb +48 -48
- data/test/test-clamp.rb +42 -42
- data/test/test-counts.rb +21 -21
- data/test/test-fragile-method-chain.rb +56 -56
- data/test/test-hashmap.rb +14 -14
- data/test/test-hashop.rb +47 -47
- data/test/test-iterator-for.rb +12 -12
- data/test/test-loop-with.rb +117 -66
- data/test/test-matchdata_each.rb +50 -50
- data/test/test-matchdata_hash.rb +40 -40
- data/test/test-maybe.rb +76 -76
- data/test/test-negativity.rb +40 -40
- data/test/test-not.rb +53 -53
- data/test/test-rexproc.rb +6 -6
- data/test/test-self.rb +21 -21
- data/test/test-tau.rb +12 -12
- data/test/test-top.rb +100 -100
- metadata +4 -4
data/test/test-rexproc.rb
CHANGED
@@ -3,10 +3,10 @@ $VERBOSE = true
|
|
3
3
|
|
4
4
|
require_relative '../lib/mug/rexproc'
|
5
5
|
class Test_rexproc < Test::Unit::TestCase
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
def test_rexproc
|
7
|
+
a = %w[foo bar baz]
|
8
|
+
assert_equal( %w[bar baz], a.select(&/\Ab/) )
|
9
|
+
assert_equal( %w[foo], a.reject(&/\Ab/) )
|
10
|
+
assert_equal( %[bar], a.find( &/\Ab/) )
|
11
|
+
end
|
12
12
|
end
|
data/test/test-self.rb
CHANGED
@@ -3,26 +3,26 @@ $VERBOSE = true
|
|
3
3
|
|
4
4
|
require_relative '../lib/mug/self'
|
5
5
|
class Test_self < Test::Unit::TestCase
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
def test_self
|
7
|
+
obj = Object.new
|
8
|
+
assert_equal( 1, 1.self )
|
9
|
+
assert_equal( obj, obj.self )
|
10
|
+
assert_equal( 6, 2.self{|i| i*3 } )
|
11
|
+
assert_equal( {1=>[1,1], 2=>[2,2], 3=>[3]}, [1,1,2,2,3].group_by(&:self) )
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
13
|
+
assert_equal( 1, 1.itself )
|
14
|
+
assert_equal( obj, obj.itself )
|
15
|
+
assert_equal( 6, 2.itself{|i| i*3 } )
|
16
|
+
assert_equal( {1=>[1,1], 2=>[2,2], 3=>[3]}, [1,1,2,2,3].group_by(&:itself) )
|
17
|
+
end
|
18
|
+
def test_revapply
|
19
|
+
p = proc {|*args| args }
|
20
|
+
assert_equal( [1], 1.revapply(&p) )
|
21
|
+
assert_equal( [1,2,3], 1.revapply(2,3,&p) )
|
22
|
+
if RUBY_VERSION.to_i >= 2
|
23
|
+
assert_equal( 3, 1.revapply(2,3).size )
|
24
|
+
else
|
25
|
+
assert_equal( [1,2,3], 1.revapply(2,3).first )
|
26
|
+
end
|
27
|
+
end
|
28
28
|
end
|
data/test/test-tau.rb
CHANGED
@@ -5,18 +5,18 @@ require 'bigdecimal/math'
|
|
5
5
|
$VERBOSE = true
|
6
6
|
require_relative '../lib/mug/tau'
|
7
7
|
class Test_tau < Test::Unit::TestCase
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
def test_math_tau
|
9
|
+
# 6.283185307179586..
|
10
|
+
assert_equal(Math::TAU, Math::PI*2.0)
|
11
|
+
end
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
include BigMath
|
14
|
+
def test_TAU
|
15
|
+
assert_equal(TAU(1).round(1).to_s('F'), '6.3')
|
16
|
+
assert_equal(TAU(100).truncate(100).to_s('F'), '6.2831853071795864769252867665590057683943387987502116419498891846156328125724179972560696506842341359')
|
17
|
+
assert_raise(ArgumentError) { TAU(0) }
|
18
|
+
assert_raise(ArgumentError) { TAU(-3) }
|
19
|
+
assert_raise(ArgumentError) { TAU('barf') }
|
20
|
+
end
|
21
21
|
end
|
22
22
|
|
data/test/test-top.rb
CHANGED
@@ -4,113 +4,113 @@ $VERBOSE = true
|
|
4
4
|
require_relative '../lib/mug/top'
|
5
5
|
class Test_and_or < Test::Unit::TestCase
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
7
|
+
def test_top
|
8
|
+
a = [1,3,5,2,4,3]
|
9
|
+
assert_equal( [5], a.top )
|
10
|
+
assert_equal( [5,4,3], a.top(3) )
|
11
|
+
assert_equal( [5,4,3,3,2,1], a.top(100) )
|
12
|
+
end
|
13
|
+
def test_bottom
|
14
|
+
a = [3,1,4,3,2,5]
|
15
|
+
assert_equal( [1], a.bottom )
|
16
|
+
assert_equal( [1,2,3], a.bottom(3) )
|
17
|
+
assert_equal( [1,2,3,3,4,5], a.bottom(100) )
|
18
|
+
end
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
20
|
+
def test_top__block
|
21
|
+
a = [1,3,5,2,4,3]
|
22
|
+
b = proc{|x,y| y<=>x }
|
23
|
+
assert_equal( [1], a.top(&b) )
|
24
|
+
assert_equal( [1,2,3], a.top(3,&b) )
|
25
|
+
assert_equal( [1,2,3,3,4,5], a.top(100,&b) )
|
26
|
+
end
|
27
|
+
def test_bottom__block
|
28
|
+
a = [3,1,4,3,2,5]
|
29
|
+
b = proc{|x,y| y<=>x }
|
30
|
+
assert_equal( [5], a.bottom(&b) )
|
31
|
+
assert_equal( [5,4,3], a.bottom(3,&b) )
|
32
|
+
assert_equal( [5,4,3,3,2,1], a.bottom(100,&b) )
|
33
|
+
end
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
35
|
+
def test_top_by
|
36
|
+
a = [1,3,5,2,4,3]
|
37
|
+
b = proc{|x| x % 3 }
|
38
|
+
assert_equal( [5], a.top_by(&b) )
|
39
|
+
assert_equal( [5,2,1], a.top_by(3, &b) )
|
40
|
+
assert_equal( [5,2,1,4,3,3], a.top_by(100, &b) )
|
41
|
+
end
|
42
|
+
def test_bottom_by
|
43
|
+
a = [3,1,4,3,2,5]
|
44
|
+
b = proc{|x| x % 3 }
|
45
|
+
assert_equal( [3], a.bottom_by(&b) )
|
46
|
+
assert_equal( [3,3,1], a.bottom_by(3, &b) )
|
47
|
+
assert_equal( [3,3,1,4,2,5], a.bottom_by(100, &b) )
|
48
|
+
end
|
49
49
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
50
|
+
def test_top_by__noblock
|
51
|
+
a = [1,3,5,2,4,3]
|
52
|
+
b = proc{|x| x % 3 }
|
53
|
+
assert_equal( [5], a.top_by.each(&b) )
|
54
|
+
assert_equal( [5,2,1], a.top_by(3).each(&b) )
|
55
|
+
assert_equal( [5,2,1,4,3,3], a.top_by(100).each(&b) )
|
56
|
+
end
|
57
|
+
def test_bottom_by__noblock
|
58
|
+
a = [3,1,4,3,2,5]
|
59
|
+
b = proc{|x| x % 3 }
|
60
|
+
assert_equal( [3], a.bottom_by.each(&b) )
|
61
|
+
assert_equal( [3,3,1], a.bottom_by(3).each(&b) )
|
62
|
+
assert_equal( [3,3,1,4,2,5], a.bottom_by(100).each(&b) )
|
63
|
+
end
|
64
64
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
65
|
+
def test_topBANG
|
66
|
+
a = [1,3,5,2,4,3]
|
67
|
+
a.top!(3)
|
68
|
+
assert_equal( [5,4,3], a )
|
69
|
+
end
|
70
|
+
def test_bottomBANG
|
71
|
+
a = [3,1,4,3,2,5]
|
72
|
+
a.bottom!(3)
|
73
|
+
assert_equal( [1,2,3], a )
|
74
|
+
end
|
75
75
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
76
|
+
def test_topBANG__block
|
77
|
+
a = [1,3,5,2,4,3]
|
78
|
+
b = proc{|x,y| y<=>x }
|
79
|
+
a.top!(3, &b)
|
80
|
+
assert_equal( [1,2,3], a )
|
81
|
+
end
|
82
|
+
def test_bottomBANG__block
|
83
|
+
a = [3,1,4,3,2,5]
|
84
|
+
b = proc{|x,y| y<=>x }
|
85
|
+
a.bottom!(3, &b)
|
86
|
+
assert_equal( [5,4,3], a )
|
87
|
+
end
|
88
88
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
89
|
+
def test_top_byBANG
|
90
|
+
a = [1,3,5,2,4,3]
|
91
|
+
b = proc{|x| x % 3 }
|
92
|
+
a.top_by!(3, &b)
|
93
|
+
assert_equal( [5,2,1], a )
|
94
|
+
end
|
95
|
+
def test_bottom_byBANG
|
96
|
+
a = [3,1,4,3,2,5]
|
97
|
+
b = proc{|x| x % 3 }
|
98
|
+
a.bottom_by!(3, &b)
|
99
|
+
assert_equal( [3,3,1], a )
|
100
|
+
end
|
101
101
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
102
|
+
def test_top_byBANG__noblock
|
103
|
+
a = [1,3,5,2,4,3]
|
104
|
+
b = proc{|x| x % 3 }
|
105
|
+
a.top_by!(3).each(&b)
|
106
|
+
assert_equal( [5,2,1], a )
|
107
|
+
end
|
108
|
+
def test_bottom_byBANG__noblock
|
109
|
+
a = [3,1,4,3,2,5]
|
110
|
+
b = proc{|x| x % 3 }
|
111
|
+
a.bottom_by!(3).each(&b)
|
112
|
+
assert_equal( [3,3,1], a )
|
113
|
+
end
|
114
114
|
|
115
115
|
end
|
116
116
|
|
metadata
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Kerwin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |
|
14
14
|
== MUG: Matty's Ultimate Gem
|
15
15
|
|
16
16
|
A collection of wonders to astound the mind!!
|
17
17
|
|
18
|
-
See the documentation at
|
18
|
+
See the documentation at http://phluid61.github.io/mug/
|
19
19
|
email:
|
20
20
|
- matthew@kerwin.net.au
|
21
21
|
executables: []
|
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
103
|
version: '0'
|
104
104
|
requirements: []
|
105
105
|
rubyforge_project:
|
106
|
-
rubygems_version: 2.6.
|
106
|
+
rubygems_version: 2.6.7
|
107
107
|
signing_key:
|
108
108
|
specification_version: 4
|
109
109
|
summary: 'MUG: Matty''s Ultimate Gem'
|