sixarm_ruby_ramp 2.1.3 → 3.0.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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +1 -0
- data.tar.gz.sig +1 -1
- data/CONTRIBUTING.md +28 -0
- data/{README.rdoc → README.md} +112 -42
- data/VERSION +1 -1
- data/lib/sixarm_ruby_ramp.rb +1 -1
- data/lib/sixarm_ruby_ramp/array.rb +39 -16
- data/lib/sixarm_ruby_ramp/hash.rb +1 -1
- data/lib/sixarm_ruby_ramp/kernel.rb +11 -5
- data/lib/sixarm_ruby_ramp/numeric.rb +49 -35
- data/lib/sixarm_ruby_ramp/process.rb +5 -20
- data/lib/sixarm_ruby_ramp/string.rb +3 -4
- data/lib/sixarm_ruby_ramp/xml.rb +0 -204
- data/test/sixarm_ruby_ramp_test.rb +2 -2
- data/test/sixarm_ruby_ramp_test/array_test.rb +330 -0
- data/test/sixarm_ruby_ramp_test/class_test.rb +87 -0
- data/test/sixarm_ruby_ramp_test/csv_test.rb +47 -0
- data/test/sixarm_ruby_ramp_test/date_test.rb +60 -0
- data/test/sixarm_ruby_ramp_test/enumerable_test.rb +303 -0
- data/test/sixarm_ruby_ramp_test/file_test.rb +17 -0
- data/test/sixarm_ruby_ramp_test/fixnum_test.rb +25 -0
- data/test/sixarm_ruby_ramp_test/hash_test.rb +209 -0
- data/test/sixarm_ruby_ramp_test/integer_test.rb +21 -0
- data/test/sixarm_ruby_ramp_test/io_test.rb +30 -0
- data/test/{sixarm_ruby_ramp → sixarm_ruby_ramp_test}/io_test.txt +0 -0
- data/test/sixarm_ruby_ramp_test/kernel_test.rb +55 -0
- data/test/sixarm_ruby_ramp_test/math_test.rb +19 -0
- data/test/sixarm_ruby_ramp_test/nil_test.rb +16 -0
- data/test/sixarm_ruby_ramp_test/numeric_test.rb +57 -0
- data/test/sixarm_ruby_ramp_test/object_test.rb +13 -0
- data/test/sixarm_ruby_ramp_test/process_test.rb +67 -0
- data/test/sixarm_ruby_ramp_test/string_test.rb +131 -0
- data/test/sixarm_ruby_ramp_test/symbol_test.rb +27 -0
- data/test/sixarm_ruby_ramp_test/time_test.rb +29 -0
- data/test/sixarm_ruby_ramp_test/xml_test.rb +10 -0
- data/test/sixarm_ruby_ramp_test/yaml_test.rb +8 -0
- metadata +100 -48
- metadata.gz.sig +0 -0
- data/CHANGELOG.txt +0 -53
- data/INSTALL.txt +0 -32
- data/LICENSE.txt +0 -25
- data/test/sixarm_ruby_ramp/xml_test_1.xml +0 -5
- data/test/sixarm_ruby_ramp/xml_test_2.xml +0 -5
- data/test/sixarm_ruby_ramp/xml_test_msword_clean.html +0 -1
- data/test/sixarm_ruby_ramp/xml_test_msword_dirty.html +0 -148
@@ -0,0 +1,17 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'sixarm_ruby_ramp'
|
4
|
+
|
5
|
+
|
6
|
+
class FileTestCase < Minitest::Test
|
7
|
+
|
8
|
+
def test_load_dir_files
|
9
|
+
filename='/a/b/c.d'
|
10
|
+
dirname=File.dirname(filename)
|
11
|
+
expect=File.join(dirname,'x','y','z')
|
12
|
+
actual=File.joindir(filename,'x','y','z')
|
13
|
+
assert_equal(expect,actual,"filename:#{filename} dirname:#{dirname}")
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'sixarm_ruby_ramp'
|
4
|
+
|
5
|
+
|
6
|
+
class FixnumTest < Minitest::Test
|
7
|
+
|
8
|
+
def test_even_with_true
|
9
|
+
assert(2.even?)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_even_with_false
|
13
|
+
assert(!3.even?)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_odd_with_true
|
17
|
+
assert(3.odd?)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_odd_with_false
|
21
|
+
assert(!2.odd?)
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
@@ -0,0 +1,209 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'sixarm_ruby_ramp'
|
4
|
+
|
5
|
+
class HashTest < Minitest::Test
|
6
|
+
|
7
|
+
|
8
|
+
def test_size_true
|
9
|
+
h = {'a'=>'b'}
|
10
|
+
assert(h.size?)
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
def test_size_false
|
15
|
+
h = {}
|
16
|
+
assert(!h.size?)
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
def test_sort_by_keys
|
21
|
+
h = {'c' => 'z', 'b' => 'y', 'a' => 'x'}
|
22
|
+
assert_equal({'a' => 'x', 'b' => 'y', 'c' => 'z'}, h.sort_by_keys)
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
def test_each_sort
|
27
|
+
out = []
|
28
|
+
h = {'c' => 'z', 'b' => 'y', 'a' => 'x'}
|
29
|
+
h.each_sort{|key,val| out << key.upcase; out << val.upcase}
|
30
|
+
assert_equal(['A','X','B','Y','C','Z'], out)
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
def test_each_sort_with_empty
|
35
|
+
out = []
|
36
|
+
h = {}
|
37
|
+
h.each_sort{|key,val| out << key.upcase; out << val.upcase}
|
38
|
+
assert_equal([], out)
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
def test_each_key_bang
|
43
|
+
actual = { "a" => "b", "c" => "d" }
|
44
|
+
expect = { "A" => "b", "C" => "d" }
|
45
|
+
actual.each_key! {|key| key.upcase }
|
46
|
+
assert_equal(expect,actual)
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
def test_each_key_bang_with_empty
|
51
|
+
actual = {}
|
52
|
+
expect = {}
|
53
|
+
actual.each_key! {|key| key.upcase }
|
54
|
+
assert_equal(expect,actual)
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
def test_each_pair_bang
|
59
|
+
actual = { "a" => "b", "c" => "d" }
|
60
|
+
expect = { "A" => "B", "C" => "D" }
|
61
|
+
actual.each_pair! {|key,value| [key.upcase, value.upcase] }
|
62
|
+
assert_equal(expect,actual)
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
def test_each_pair_bang_with_empty
|
67
|
+
actual = {}
|
68
|
+
expect = {}
|
69
|
+
actual.each_pair! {|key,value| [key.upcase, value.upcase] }
|
70
|
+
assert_equal(expect,actual)
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
def test_each_pair_bang_with_same_key_different_value
|
75
|
+
actual = { "a" => "b", "c" => "d" }
|
76
|
+
expect = { "a" => "B", "c" => "D" }
|
77
|
+
actual.each_pair! {|key,value| [key, value.upcase] }
|
78
|
+
assert_equal(expect,actual)
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
def test_each_pair_bang_with_same_key_same_value
|
83
|
+
actual = { "a" => "b", "c" => "d" }
|
84
|
+
expect = { "a" => "b", "c" => "d" }
|
85
|
+
actual.each_pair! {|key,value| [key, value] }
|
86
|
+
assert_equal(expect,actual)
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
def test_each_value_bang
|
91
|
+
actual = { "a" => "b", "c" => "d" }
|
92
|
+
expect = { "a" => "B", "c" => "D" }
|
93
|
+
actual.each_value! {|value| value.upcase }
|
94
|
+
assert_equal(expect,actual)
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
def test_each_value_bang_with_empty
|
99
|
+
actual = {}
|
100
|
+
expect = {}
|
101
|
+
actual.each_value! {|value| value.upcase }
|
102
|
+
assert_equal(expect,actual)
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
def test_map_pair
|
107
|
+
h = {"a"=>"b", "c"=>"d", "e"=>"f" }
|
108
|
+
expect=["ab","cd","ef"]
|
109
|
+
actual=h.map_pair{|key,value| key+value }.sort
|
110
|
+
assert_equal(expect,actual,h.inspect)
|
111
|
+
end
|
112
|
+
|
113
|
+
|
114
|
+
def test_map_pair_with_empty
|
115
|
+
h = {}
|
116
|
+
expect=[]
|
117
|
+
actual=h.map_pair{|key,value| key+value }.sort
|
118
|
+
assert_equal(expect,actual,h.inspect)
|
119
|
+
end
|
120
|
+
|
121
|
+
|
122
|
+
def pivotable
|
123
|
+
h=Hash.new
|
124
|
+
h['a']=Hash.new
|
125
|
+
h['b']=Hash.new
|
126
|
+
h['c']=Hash.new
|
127
|
+
h['a']['x']='m'
|
128
|
+
h['a']['y']='n'
|
129
|
+
h['a']['z']='o'
|
130
|
+
h['b']['x']='p'
|
131
|
+
h['b']['y']='q'
|
132
|
+
h['b']['z']='r'
|
133
|
+
h['c']['x']='s'
|
134
|
+
h['c']['y']='t'
|
135
|
+
h['c']['z']='u'
|
136
|
+
return h
|
137
|
+
end
|
138
|
+
|
139
|
+
|
140
|
+
def test_pivot_vals
|
141
|
+
p=pivotable.pivot(:vals)
|
142
|
+
assert_equal(['x','y','z'], p.keys.sort)
|
143
|
+
assert_equal(['m','p','s'], p['x'].sort)
|
144
|
+
assert_equal(['n','q','t'], p['y'].sort)
|
145
|
+
assert_equal(['o','r','u'], p['z'].sort)
|
146
|
+
end
|
147
|
+
|
148
|
+
|
149
|
+
def test_pivot_vals_with_block
|
150
|
+
p=pivotable.pivot(:vals){|items| items.sort.join }
|
151
|
+
assert_equal(['x','y','z'], p.keys.sort)
|
152
|
+
assert_equal('mps', p['x'])
|
153
|
+
assert_equal('nqt', p['y'])
|
154
|
+
assert_equal('oru', p['z'])
|
155
|
+
end
|
156
|
+
|
157
|
+
|
158
|
+
def test_pivot_keys
|
159
|
+
p=pivotable.pivot(:keys)
|
160
|
+
assert_equal(['a','b','c'], p.keys.sort)
|
161
|
+
assert_equal(['m','n','o'], p['a'].sort)
|
162
|
+
assert_equal(['p','q','r'], p['b'].sort)
|
163
|
+
assert_equal(['s','t','u'], p['c'].sort)
|
164
|
+
end
|
165
|
+
|
166
|
+
|
167
|
+
def test_pivot_keys_with_block
|
168
|
+
p=pivotable.pivot(:keys){|items| items.sort.join }
|
169
|
+
assert_equal(['a','b','c'], p.keys.sort)
|
170
|
+
assert_equal('mno', p['a'])
|
171
|
+
assert_equal('pqr', p['b'])
|
172
|
+
assert_equal('stu', p['c'])
|
173
|
+
end
|
174
|
+
|
175
|
+
|
176
|
+
def test_pivot_direction_up_with_true
|
177
|
+
Hash.publicize_methods do
|
178
|
+
assert({}.pivot_direction_up?('key'))
|
179
|
+
assert({}.pivot_direction_up?('keys'))
|
180
|
+
assert({}.pivot_direction_up?('up'))
|
181
|
+
assert({}.pivot_direction_up?('left'))
|
182
|
+
assert({}.pivot_direction_up?('out'))
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
|
187
|
+
def test_pivot_direction_up_with_false
|
188
|
+
Hash.publicize_methods do
|
189
|
+
assert(!{}.pivot_direction_up?('val'))
|
190
|
+
assert(!{}.pivot_direction_up?('vals'))
|
191
|
+
assert(!{}.pivot_direction_up?('down'))
|
192
|
+
assert(!{}.pivot_direction_up?('right'))
|
193
|
+
assert(!{}.pivot_direction_up?('in'))
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
|
198
|
+
def test_pivot_direction_up_with_invalid
|
199
|
+
Hash.publicize_methods do
|
200
|
+
assert_raises(ArgumentError){ {}.pivot_direction_up?('nonsense') }
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
|
205
|
+
end
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'sixarm_ruby_ramp'
|
4
|
+
|
5
|
+
|
6
|
+
class IntegerTest < Minitest::Test
|
7
|
+
|
8
|
+
def test_maps
|
9
|
+
expect=['a','a','a']
|
10
|
+
actual=3.maps{'a'}
|
11
|
+
assert_equal(expect,actual)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_maps_with_index
|
15
|
+
expect=[0,1,2]
|
16
|
+
actual=3.maps{|i| i}
|
17
|
+
assert_equal(expect,actual)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'sixarm_ruby_ramp'
|
4
|
+
|
5
|
+
class IOTest < Minitest::Test
|
6
|
+
|
7
|
+
def test_load_dir_files
|
8
|
+
dirpath=File.join(__dir__,'io_test*')
|
9
|
+
expect=[File.join(__dir__,'io_test.rb'),File.join(__dir__,'io_test.txt')]
|
10
|
+
actual=Dir[dirpath].sort
|
11
|
+
assert_equal(expect,actual,"Dir[#{dirpath}] expects test data files")
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_readrow
|
15
|
+
filename=Dir[File.join(__dir__,'io_test.txt')].first
|
16
|
+
f=File.open(filename)
|
17
|
+
assert_equal(["A1","B1","C1"],f.readrow(:row=>"=",:col=>"-"))
|
18
|
+
assert_equal(["A2","B2","C2"],f.readrow(:row=>"=",:col=>"-"))
|
19
|
+
assert_equal(["A3","B3","C3"],f.readrow(:row=>"=",:col=>"-"))
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_readrows
|
23
|
+
filename=Dir[File.join(__dir__,'io_test.txt')].first
|
24
|
+
expect=[["A1","B1","C1"],["A2","B2","C2"],["A3","B3","C3"]]
|
25
|
+
actual=IO.readrows(filename,:row=>"=",:col=>"-")
|
26
|
+
assert_equal(expect,actual)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
File without changes
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'sixarm_ruby_ramp'
|
4
|
+
|
5
|
+
class KernelTest < Minitest::Test
|
6
|
+
|
7
|
+
class TestMyMethodName
|
8
|
+
def a
|
9
|
+
my_method_name
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class TestCallerMethodNameWithNoOps
|
14
|
+
def a
|
15
|
+
caller_method_name()
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class TestCallerMethodNameWithIndex0
|
20
|
+
def a
|
21
|
+
caller_method_name(0)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class TestCallerMethodNameWithIndex1
|
26
|
+
def a
|
27
|
+
b
|
28
|
+
end
|
29
|
+
def b
|
30
|
+
caller_method_name(1)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_my_method_name
|
35
|
+
assert_equal('a', TestMyMethodName.new.a)
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_caller_method_name_with_no_ops
|
39
|
+
assert_equal('a', TestCallerMethodNameWithNoOps.new.a)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_caller_method_name_with_index_0
|
43
|
+
assert_equal('a', TestCallerMethodNameWithIndex0.new.a)
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_caller_method_name_with_index_1
|
47
|
+
assert_equal('a', TestCallerMethodNameWithIndex1.new.a)
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_pp_s
|
51
|
+
assert_equal(":foo\n",pp_s(:foo))
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'sixarm_ruby_ramp'
|
4
|
+
|
5
|
+
class MathTest < Minitest::Test
|
6
|
+
|
7
|
+
def test_ln
|
8
|
+
assert_equal(0.0,Math.ln(1.0))
|
9
|
+
assert_equal(1.0,Math.ln(Math.exp(1.0)))
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_logn
|
13
|
+
assert_equal(1.0,Math.logn(3,3),'log of 3 base 3')
|
14
|
+
assert_equal(2.0,Math.logn(9,3),'log of 9 base 3')
|
15
|
+
assert_equal(3.0,Math.logn(27,3),'log of 27 base 3')
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'sixarm_ruby_ramp'
|
4
|
+
|
5
|
+
class NumericTest < Minitest::Test
|
6
|
+
|
7
|
+
|
8
|
+
def test_if_with_true
|
9
|
+
assert_equal(5,5.if(true))
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
def test_if_with_false
|
14
|
+
assert_equal(0,5.if(false))
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
def test_unless_with_true
|
19
|
+
assert_equal(0,5.unless(true))
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
def test_unless_with_false
|
24
|
+
assert_equal(5,5.unless(false))
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
def test_percent_with_ndigits_default
|
29
|
+
assert_equal(12, (0.1234).percent)
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
def test_percent_with_ndigits_zero
|
34
|
+
assert_equal(12, (0.1234).percent(0))
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
def test_percent_with_ndigits_positive
|
39
|
+
assert_equal(12.3, (0.1234).percent(1))
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
def test_percent_with_ndigits_negative
|
44
|
+
assert_equal(10, (0.1234).percent(-1))
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
def test_floor_precision
|
49
|
+
x = 0.12345
|
50
|
+
assert_equal(0.0, x.floor_precision(0))
|
51
|
+
assert_equal(0.1, x.floor_precision(1))
|
52
|
+
assert_equal(0.12, x.floor_precision(2))
|
53
|
+
assert_equal(0.123, x.floor_precision(3))
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
end
|