flex_array 0.2.0 → 0.3.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 +8 -8
- data/lib/flex_array.rb +19 -13
- data/lib/flex_array/array.rb +19 -19
- data/lib/flex_array/flex_array_append.rb +11 -11
- data/lib/flex_array/flex_array_each.rb +390 -53
- data/lib/flex_array/flex_array_forever.rb +18 -0
- data/lib/flex_array/flex_array_index.rb +13 -11
- data/lib/flex_array/flex_array_new.rb +30 -34
- data/lib/flex_array/flex_array_process.rb +42 -37
- data/lib/flex_array/flex_array_reshape.rb +13 -21
- data/lib/flex_array/flex_array_transpose.rb +15 -2
- data/lib/flex_array/flex_array_validate.rb +11 -11
- data/lib/flex_array/integer.rb +2 -4
- data/lib/flex_array/object.rb +2 -4
- data/lib/flex_array/range.rb +10 -14
- data/lib/flex_array/spec_array.rb +47 -0
- data/lib/flex_array/spec_component.rb +11 -11
- data/rakefile.rb +22 -2
- data/reek.txt +2 -29
- data/tests/array_test.rb +19 -24
- data/tests/flex_array_append_test.rb +10 -10
- data/tests/flex_array_each_test.rb +466 -93
- data/tests/flex_array_index_test.rb +55 -57
- data/tests/flex_array_new_test.rb +21 -21
- data/tests/flex_array_reshape_test.rb +10 -17
- data/tests/flex_array_test.rb +20 -12
- data/tests/flex_array_transpose_test.rb +33 -6
- data/tests/integer_test.rb +1 -1
- data/tests/object_test.rb +7 -7
- data/tests/range_test.rb +9 -8
- data/tests/spec_array_test.rb +26 -0
- data/tests/spec_component_test.rb +19 -16
- metadata +6 -2
@@ -3,30 +3,57 @@ require 'minitest/autorun'
|
|
3
3
|
|
4
4
|
class FlexArrayTransposeTester < MiniTest::Unit::TestCase
|
5
5
|
$do_this_only_one_time = "" unless defined? $do_this_only_one_time
|
6
|
-
|
6
|
+
|
7
7
|
def initialize(*all)
|
8
8
|
if $do_this_only_one_time != __FILE__
|
9
9
|
puts
|
10
|
-
puts "Running test file: #{File.split(__FILE__)[1]}"
|
10
|
+
puts "Running test file: #{File.split(__FILE__)[1]}"
|
11
11
|
$do_this_only_one_time = __FILE__
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
super(*all)
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
17
|
+
def test_the_transpose_em_method
|
18
18
|
f = FlexArray.new([3,3]) { |i| i[0]*3 + i[1] }
|
19
19
|
a = [0,1,2,
|
20
20
|
3,4,5,
|
21
21
|
6,7,8]
|
22
22
|
assert_equal(a, f[:all, :all])
|
23
23
|
assert_equal(a, f[:all])
|
24
|
-
|
25
|
-
f.transpose(0,1)
|
24
|
+
|
25
|
+
f.transpose!(0,1)
|
26
26
|
a = [0,3,6,
|
27
27
|
1,4,7,
|
28
28
|
2,5,8]
|
29
29
|
assert_equal(a, f[:all, :all])
|
30
30
|
assert_equal(a, f[:all])
|
31
31
|
end
|
32
|
+
|
33
|
+
def test_that_transpose_em_rejects_bad_args
|
34
|
+
f = FlexArray.new([3,3]) { |i| i[0]*3 + i[1] }
|
35
|
+
|
36
|
+
assert_raises(ArgumentError) { f.transpose!(0,2) }
|
37
|
+
assert_raises(ArgumentError) { f.transpose!(-1,0) }
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_the_transpose_method
|
41
|
+
f = FlexArray.new([3,3]) { |i| i[0]*3 + i[1] }
|
42
|
+
a = [0,1,2,
|
43
|
+
3,4,5,
|
44
|
+
6,7,8]
|
45
|
+
assert_equal(a, f[:all, :all])
|
46
|
+
assert_equal(a, f[:all])
|
47
|
+
|
48
|
+
g = f.transpose(0,1)
|
49
|
+
b = [0,3,6,
|
50
|
+
1,4,7,
|
51
|
+
2,5,8]
|
52
|
+
|
53
|
+
assert_equal(a, f[:all, :all])
|
54
|
+
assert_equal(a, f[:all])
|
55
|
+
|
56
|
+
assert_equal(b, g[:all, :all])
|
57
|
+
assert_equal(b, g[:all])
|
58
|
+
end
|
32
59
|
end
|
data/tests/integer_test.rb
CHANGED
data/tests/object_test.rb
CHANGED
@@ -1,23 +1,23 @@
|
|
1
|
-
require_relative '../lib/flex_array
|
1
|
+
require_relative '../lib/flex_array'
|
2
2
|
require 'minitest/autorun'
|
3
3
|
|
4
4
|
class ObjectTester < MiniTest::Unit::TestCase
|
5
5
|
$do_this_only_one_time = "" unless defined? $do_this_only_one_time
|
6
|
-
|
6
|
+
|
7
7
|
def initialize(*all)
|
8
8
|
if $do_this_only_one_time != __FILE__
|
9
9
|
puts
|
10
|
-
puts "Running test file: #{File.split(__FILE__)[1]}"
|
10
|
+
puts "Running test file: #{File.split(__FILE__)[1]}"
|
11
11
|
$do_this_only_one_time = __FILE__
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
super(*all)
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def test_that_to_spec_component_fails
|
18
18
|
obj = Object.new
|
19
19
|
assert_raises(ArgumentError) { obj.to_spec_component(42) }
|
20
|
-
|
20
|
+
|
21
21
|
#Test other invalid objects as well...
|
22
22
|
assert_raises(ArgumentError) { (89.0).to_spec_component(42) }
|
23
23
|
assert_raises(ArgumentError) { 'Hello'.to_spec_component(42) }
|
@@ -34,5 +34,5 @@ class ObjectTester < MiniTest::Unit::TestCase
|
|
34
34
|
assert_raises(IndexError) { ('all').to_index_range(lc) }
|
35
35
|
assert_raises(IndexError) { (98.9).to_index_range(lc) }
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
end
|
data/tests/range_test.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
require_relative '../lib/flex_array
|
1
|
+
require_relative '../lib/flex_array'
|
2
2
|
require 'minitest/autorun'
|
3
3
|
|
4
4
|
class RangeTester < MiniTest::Unit::TestCase
|
5
5
|
$do_this_only_one_time = "" unless defined? $do_this_only_one_time
|
6
|
-
|
6
|
+
|
7
7
|
def initialize(*all)
|
8
8
|
if $do_this_only_one_time != __FILE__
|
9
9
|
puts
|
10
|
-
puts "Running test file: #{File.split(__FILE__)[1]}"
|
10
|
+
puts "Running test file: #{File.split(__FILE__)[1]}"
|
11
11
|
$do_this_only_one_time = __FILE__
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
super(*all)
|
15
15
|
end
|
16
16
|
|
@@ -18,7 +18,7 @@ class RangeTester < MiniTest::Unit::TestCase
|
|
18
18
|
lc = (0...10).to_spec_component(3)
|
19
19
|
assert_equal(0...10, lc.range)
|
20
20
|
assert_equal(3, lc.stride)
|
21
|
-
|
21
|
+
|
22
22
|
lc = (0...0).to_spec_component(3)
|
23
23
|
assert_equal(0...0, lc.range)
|
24
24
|
assert_equal(3, lc.stride)
|
@@ -28,12 +28,13 @@ class RangeTester < MiniTest::Unit::TestCase
|
|
28
28
|
assert_raises(ArgumentError) { (8...0).to_spec_component(3) }
|
29
29
|
assert_raises(ArgumentError) { ('a'..'b').to_spec_component(3) }
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
def test_the_to_index_range_method
|
33
33
|
lc = SpecComponent.new(0...10, 1)
|
34
|
-
assert_equal(1
|
34
|
+
assert_equal(1..2, (1...3).to_index_range(lc))
|
35
35
|
assert_equal(8..9, (-2..-1).to_index_range(lc))
|
36
|
-
|
36
|
+
assert_equal(2..8, (2..-2).to_index_range(lc))
|
37
|
+
|
37
38
|
assert_raises(IndexError) { (1...11).to_index_range(lc) }
|
38
39
|
assert_raises(IndexError) { (1..10).to_index_range(lc) }
|
39
40
|
assert_raises(IndexError) { (-2..2).to_index_range(lc) }
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../lib/flex_array'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
|
4
|
+
class SpecArrayTester < MiniTest::Unit::TestCase
|
5
|
+
$do_this_only_one_time = "" unless defined? $do_this_only_one_time
|
6
|
+
|
7
|
+
def initialize(*all)
|
8
|
+
if $do_this_only_one_time != __FILE__
|
9
|
+
puts
|
10
|
+
puts "Running test file: #{File.split(__FILE__)[1]}"
|
11
|
+
$do_this_only_one_time = __FILE__
|
12
|
+
end
|
13
|
+
|
14
|
+
super(*all)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_that_it_builds_specs
|
18
|
+
spec = SpecArray.new([0...10, 0...8])
|
19
|
+
assert(2, spec.spec_dimensions)
|
20
|
+
assert(0...10, spec[0].range)
|
21
|
+
assert(8, spec[0].stride)
|
22
|
+
assert(0...8, spec[1].range)
|
23
|
+
assert(1, spec[1].stride)
|
24
|
+
assert(80, spec.spec_count)
|
25
|
+
end
|
26
|
+
end
|
@@ -1,19 +1,19 @@
|
|
1
|
-
require_relative '../lib/flex_array
|
1
|
+
require_relative '../lib/flex_array'
|
2
2
|
require 'minitest/autorun'
|
3
3
|
|
4
4
|
class SpecComponentTester < MiniTest::Unit::TestCase
|
5
5
|
$do_this_only_one_time = "" unless defined? $do_this_only_one_time
|
6
|
-
|
6
|
+
|
7
7
|
def initialize(*all)
|
8
8
|
if $do_this_only_one_time != __FILE__
|
9
9
|
puts
|
10
|
-
puts "Running test file: #{File.split(__FILE__)[1]}"
|
10
|
+
puts "Running test file: #{File.split(__FILE__)[1]}"
|
11
11
|
$do_this_only_one_time = __FILE__
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
super(*all)
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def setup
|
18
18
|
@lc = SpecComponent.new(1..5, 10)
|
19
19
|
end
|
@@ -21,7 +21,7 @@ class SpecComponentTester < MiniTest::Unit::TestCase
|
|
21
21
|
def test_the_range
|
22
22
|
assert_equal(1..5, @lc.range)
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
def test_the_stride
|
26
26
|
assert_equal(10, @lc.stride)
|
27
27
|
end
|
@@ -29,24 +29,24 @@ class SpecComponentTester < MiniTest::Unit::TestCase
|
|
29
29
|
def test_the_equality_operator
|
30
30
|
a = SpecComponent.new(1..5, 1)
|
31
31
|
b = SpecComponent.new(1..6, 10)
|
32
|
-
|
32
|
+
|
33
33
|
assert(@lc == a)
|
34
34
|
refute(@lc == b)
|
35
35
|
refute(a == b)
|
36
|
-
|
36
|
+
|
37
37
|
#Make sure our == operator plays well with arrays.
|
38
38
|
assert([@lc] == [a])
|
39
39
|
refute([@lc] == [b])
|
40
40
|
refute([a] == [b])
|
41
41
|
end
|
42
|
-
|
42
|
+
|
43
43
|
def test_the_threequal_operator
|
44
44
|
refute(@lc === 0)
|
45
45
|
assert(@lc === 1)
|
46
46
|
assert(@lc === 5)
|
47
47
|
refute(@lc === 6)
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
def test_out_min
|
51
51
|
assert_equal(1, @lc.min)
|
52
52
|
end
|
@@ -57,7 +57,7 @@ class SpecComponentTester < MiniTest::Unit::TestCase
|
|
57
57
|
|
58
58
|
def test_out_span
|
59
59
|
assert_equal(5, @lc.span)
|
60
|
-
|
60
|
+
|
61
61
|
@lc = SpecComponent.new(0...0, 10)
|
62
62
|
assert_equal(0, @lc.span)
|
63
63
|
end
|
@@ -66,23 +66,26 @@ class SpecComponentTester < MiniTest::Unit::TestCase
|
|
66
66
|
i = (1..5).each
|
67
67
|
@lc.each {|v| assert_equal(i.next, v)}
|
68
68
|
end
|
69
|
-
|
69
|
+
|
70
70
|
def test_out_index_step
|
71
71
|
assert_equal(0, @lc.index_step(1))
|
72
72
|
assert_equal(40, @lc.index_step(5))
|
73
|
-
|
73
|
+
|
74
74
|
@lc = SpecComponent.new(0...0, 10)
|
75
75
|
assert_raises(TypeError) { @lc.index_step(1) }
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
def test_the_enlarge_method
|
79
79
|
assert_equal(5, @lc.span)
|
80
80
|
@lc.enlarge(5)
|
81
81
|
assert_equal(10, @lc.span)
|
82
|
-
|
82
|
+
|
83
83
|
@lc = SpecComponent.new(0...0, 10)
|
84
84
|
assert_equal(0, @lc.span)
|
85
|
+
assert(@lc.range.none?)
|
85
86
|
@lc.enlarge(5)
|
87
|
+
assert_equal(0...5, @lc.range)
|
86
88
|
assert_equal(5, @lc.span)
|
89
|
+
refute(@lc.range.none?)
|
87
90
|
end
|
88
|
-
end
|
91
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flex_array
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Camilleri
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -77,6 +77,7 @@ files:
|
|
77
77
|
- lib/flex_array/array.rb
|
78
78
|
- lib/flex_array/flex_array_append.rb
|
79
79
|
- lib/flex_array/flex_array_each.rb
|
80
|
+
- lib/flex_array/flex_array_forever.rb
|
80
81
|
- lib/flex_array/flex_array_index.rb
|
81
82
|
- lib/flex_array/flex_array_new.rb
|
82
83
|
- lib/flex_array/flex_array_process.rb
|
@@ -86,6 +87,7 @@ files:
|
|
86
87
|
- lib/flex_array/integer.rb
|
87
88
|
- lib/flex_array/object.rb
|
88
89
|
- lib/flex_array/range.rb
|
90
|
+
- lib/flex_array/spec_array.rb
|
89
91
|
- lib/flex_array/spec_component.rb
|
90
92
|
- tests/array_test.rb
|
91
93
|
- tests/flex_array_append_test.rb
|
@@ -99,6 +101,7 @@ files:
|
|
99
101
|
- tests/integer_test.rb
|
100
102
|
- tests/object_test.rb
|
101
103
|
- tests/range_test.rb
|
104
|
+
- tests/spec_array_test.rb
|
102
105
|
- tests/spec_component_test.rb
|
103
106
|
- rakefile.rb
|
104
107
|
- license.txt
|
@@ -141,4 +144,5 @@ test_files:
|
|
141
144
|
- tests/integer_test.rb
|
142
145
|
- tests/object_test.rb
|
143
146
|
- tests/range_test.rb
|
147
|
+
- tests/spec_array_test.rb
|
144
148
|
- tests/spec_component_test.rb
|