sixarm_ruby_geometry 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/Rakefile +18 -0
  5. data/lib/sixarm_ruby_geometry.rb +41 -0
  6. data/lib/sixarm_ruby_geometry/indexable.rb +7 -0
  7. data/lib/sixarm_ruby_geometry/indexable/d1.rb +12 -0
  8. data/lib/sixarm_ruby_geometry/indexable/d2.rb +12 -0
  9. data/lib/sixarm_ruby_geometry/indexable/d3.rb +12 -0
  10. data/lib/sixarm_ruby_geometry/indexable/pitch.rb +15 -0
  11. data/lib/sixarm_ruby_geometry/indexable/rad.rb +15 -0
  12. data/lib/sixarm_ruby_geometry/indexable/width.rb +20 -0
  13. data/lib/sixarm_ruby_geometry/indexable/width_height.rb +30 -0
  14. data/lib/sixarm_ruby_geometry/indexable/width_height_depth.rb +40 -0
  15. data/lib/sixarm_ruby_geometry/indexable/x.rb +18 -0
  16. data/lib/sixarm_ruby_geometry/indexable/xy.rb +26 -0
  17. data/lib/sixarm_ruby_geometry/indexable/xyz.rb +40 -0
  18. data/lib/sixarm_ruby_geometry/indexable/yaw.rb +15 -0
  19. data/lib/sixarm_ruby_geometry/point.rb +7 -0
  20. data/lib/sixarm_ruby_geometry/point/array.rb +12 -0
  21. data/lib/sixarm_ruby_geometry/point/array/d1.rb +14 -0
  22. data/lib/sixarm_ruby_geometry/point/array/d2.rb +14 -0
  23. data/lib/sixarm_ruby_geometry/point/array/d3.rb +14 -0
  24. data/lib/sixarm_ruby_geometry/point/vector.rb +12 -0
  25. data/lib/sixarm_ruby_geometry/point/vector/d1.rb +14 -0
  26. data/lib/sixarm_ruby_geometry/point/vector/d2.rb +14 -0
  27. data/lib/sixarm_ruby_geometry/point/vector/d3.rb +14 -0
  28. data/lib/sixarm_ruby_geometry/space.rb +7 -0
  29. data/lib/sixarm_ruby_geometry/space/array.rb +12 -0
  30. data/lib/sixarm_ruby_geometry/space/array/d1.rb +14 -0
  31. data/lib/sixarm_ruby_geometry/space/array/d2.rb +14 -0
  32. data/lib/sixarm_ruby_geometry/space/array/d3.rb +14 -0
  33. data/lib/sixarm_ruby_geometry/space/vector.rb +12 -0
  34. data/lib/sixarm_ruby_geometry/space/vector/d1.rb +14 -0
  35. data/lib/sixarm_ruby_geometry/space/vector/d2.rb +14 -0
  36. data/lib/sixarm_ruby_geometry/space/vector/d3.rb +14 -0
  37. data/test/sixarm_ruby_geometry_test.rb +1 -0
  38. data/test/sixarm_ruby_geometry_test/indexable/d1_test.rb +34 -0
  39. data/test/sixarm_ruby_geometry_test/indexable/d2_test.rb +36 -0
  40. data/test/sixarm_ruby_geometry_test/indexable/d3_test.rb +38 -0
  41. data/test/sixarm_ruby_geometry_test/indexable/pitch_test.rb +36 -0
  42. data/test/sixarm_ruby_geometry_test/indexable/rad_test.rb +31 -0
  43. data/test/sixarm_ruby_geometry_test/indexable/width_height_depth_test.rb +70 -0
  44. data/test/sixarm_ruby_geometry_test/indexable/width_height_test.rb +56 -0
  45. data/test/sixarm_ruby_geometry_test/indexable/width_test.rb +42 -0
  46. data/test/sixarm_ruby_geometry_test/indexable/x_test.rb +42 -0
  47. data/test/sixarm_ruby_geometry_test/indexable/xy_test.rb +56 -0
  48. data/test/sixarm_ruby_geometry_test/indexable/xyz_test.rb +72 -0
  49. data/test/sixarm_ruby_geometry_test/indexable/yaw_test.rb +31 -0
  50. data/test/sixarm_ruby_geometry_test/indexable_test.rb +31 -0
  51. data/test/sixarm_ruby_geometry_test/point/array/d1_test.rb +35 -0
  52. data/test/sixarm_ruby_geometry_test/point/array/d2_test.rb +37 -0
  53. data/test/sixarm_ruby_geometry_test/point/array/d3_test.rb +39 -0
  54. data/test/sixarm_ruby_geometry_test/point/array_test.rb +33 -0
  55. data/test/sixarm_ruby_geometry_test/point/vector/d1_test.rb +36 -0
  56. data/test/sixarm_ruby_geometry_test/point/vector/d2_test.rb +38 -0
  57. data/test/sixarm_ruby_geometry_test/point/vector/d3_test.rb +40 -0
  58. data/test/sixarm_ruby_geometry_test/point/vector_test.rb +34 -0
  59. data/test/sixarm_ruby_geometry_test/point_test.rb +25 -0
  60. data/test/sixarm_ruby_geometry_test/space/array/d1_test.rb +35 -0
  61. data/test/sixarm_ruby_geometry_test/space/array/d2_test.rb +37 -0
  62. data/test/sixarm_ruby_geometry_test/space/array/d3_test.rb +39 -0
  63. data/test/sixarm_ruby_geometry_test/space/array_test.rb +33 -0
  64. data/test/sixarm_ruby_geometry_test/space/vector/d1_test.rb +36 -0
  65. data/test/sixarm_ruby_geometry_test/space/vector/d2_test.rb +38 -0
  66. data/test/sixarm_ruby_geometry_test/space/vector/d3_test.rb +40 -0
  67. data/test/sixarm_ruby_geometry_test/space/vector_test.rb +34 -0
  68. data/test/sixarm_ruby_geometry_test/space_test.rb +25 -0
  69. metadata +262 -0
  70. metadata.gz.sig +0 -0
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery point.
5
+ #
6
+ # * Intended to be implemented via Vector.
7
+ # * Intended to be 1-dimensional.
8
+ #
9
+ module Point
10
+ module Vector
11
+ module D1
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery point.
5
+ #
6
+ # * Intended to be implemented via Vector.
7
+ # * Intended to be 2-dimensional.
8
+ #
9
+ module Point
10
+ module Vector
11
+ module D2
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery point.
5
+ #
6
+ # * Intended to be implemented via Vector.
7
+ # * Intended to be 3-dimensional.
8
+ #
9
+ module Point
10
+ module Vector
11
+ module D3
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery space.
5
+ #
6
+ module Space
7
+ end
@@ -0,0 +1,12 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery space.
5
+ #
6
+ # * Intended to be implemented via Array.
7
+ # * Intended to be N-dimensional.
8
+ #
9
+ module Space
10
+ module Array
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery space.
5
+ #
6
+ # * Intended to be implemented via Array.
7
+ # * Intended to be 1-dimensional.
8
+ #
9
+ module Space
10
+ module Array
11
+ module D1
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery space.
5
+ #
6
+ # * Intended to be implemented via Array.
7
+ # * Intended to be 2-dimensional.
8
+ #
9
+ module Space
10
+ module Array
11
+ module D2
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery space.
5
+ #
6
+ # * Intended to be implemented via Array.
7
+ # * Intended to be 3-dimensional.
8
+ #
9
+ module Space
10
+ module Array
11
+ module D3
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery space.
5
+ #
6
+ # * Intended to be implemented via Vector.
7
+ # * Intended to be N-dimensional.
8
+ #
9
+ module Space
10
+ module Vector
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery space.
5
+ #
6
+ # * Intended to be implemented via Vector.
7
+ # * Intended to be 1-dimensional.
8
+ #
9
+ module Space
10
+ module Vector
11
+ module D1
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery space.
5
+ #
6
+ # * Intended to be implemented via Vector.
7
+ # * Intended to be 2-dimensional.
8
+ #
9
+ module Space
10
+ module Vector
11
+ module D2
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ # A generic geometery space.
5
+ #
6
+ # * Intended to be implemented via Vector.
7
+ # * Intended to be 3-dimensional.
8
+ #
9
+ module Space
10
+ module Vector
11
+ module D3
12
+ end
13
+ end
14
+ end
@@ -0,0 +1 @@
1
+ # Blank placeholder for any test helper code
@@ -0,0 +1,34 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "minitest/autorun"
3
+ require "simplecov"
4
+ SimpleCov.start
5
+
6
+ require "sixarm_ruby_geometry/indexable/d1"
7
+ require "sixarm_ruby_geometry_test/fake"
8
+
9
+ module Indexable
10
+ module D1
11
+ class Test < Minitest::Test
12
+
13
+ def test_0
14
+ assert(::Indexable::D1)
15
+ end
16
+
17
+ require "matrix"
18
+ class C < Vector
19
+ include ::Indexable::D1
20
+ end
21
+
22
+ def test_new
23
+ assert(C[0])
24
+ end
25
+
26
+ def test_index
27
+ e0 = fake_n
28
+ c = C[e0]
29
+ assert_equal(e0, c[0])
30
+ end
31
+
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,36 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "minitest/autorun"
3
+ require "simplecov"
4
+ SimpleCov.start
5
+
6
+ require "sixarm_ruby_geometry/indexable/d2"
7
+ require "sixarm_ruby_geometry_test/fake"
8
+
9
+ module Indexable
10
+ module D2
11
+ class Test < Minitest::Test
12
+
13
+ def test_0
14
+ assert(::Indexable::D2)
15
+ end
16
+
17
+ require "matrix"
18
+ class C < Vector
19
+ include ::Indexable::D2
20
+ end
21
+
22
+ def test_new
23
+ assert(C[0, 0])
24
+ end
25
+
26
+ def test_index
27
+ e0 = fake_n
28
+ e1 = fake_n
29
+ c = C[e0, e1]
30
+ assert_equal(e0, c[0])
31
+ assert_equal(e1, c[1])
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "minitest/autorun"
3
+ require "simplecov"
4
+ SimpleCov.start
5
+
6
+ require "sixarm_ruby_geometry/indexable/d3"
7
+ require "sixarm_ruby_geometry_test/fake"
8
+
9
+ module Indexable
10
+ module D3
11
+ class Test < Minitest::Test
12
+
13
+ def test_0
14
+ assert(::Indexable::D3)
15
+ end
16
+
17
+ require "matrix"
18
+ class C < Vector
19
+ include ::Indexable::D3
20
+ end
21
+
22
+ def test_new
23
+ assert(C[0,0,0])
24
+ end
25
+
26
+ def test_index
27
+ e0 = fake_n
28
+ e1 = fake_n
29
+ e2 = fake_n
30
+ c = C[e0, e1, e2]
31
+ assert_equal(e0, c[0])
32
+ assert_equal(e1, c[1])
33
+ assert_equal(e2, c[2])
34
+ end
35
+
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,36 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "minitest/autorun"
3
+ require "simplecov"
4
+ SimpleCov.start
5
+
6
+ require "sixarm_ruby_geometry/indexable/pitch"
7
+ require "sixarm_ruby_geometry_test/fake"
8
+
9
+ module Indexable
10
+ class PitchTest < Minitest::Test
11
+
12
+ def test_0
13
+ assert(::Indexable::Pitch)
14
+ end
15
+
16
+ require "matrix"
17
+ class C < Vector
18
+ include ::Indexable::Pitch
19
+ end
20
+
21
+ DELTA = 0.00001
22
+
23
+ def test_pitch_with_xy_any_and_z_zero
24
+ assert_in_delta(Math::PI * 0.0, C[fake_n, fake_n, 0].pitch, DELTA)
25
+ end
26
+
27
+ def test_pitch_with_xy_zero_and_z_positive
28
+ assert_in_delta(Math::PI * 0.5, C[ 0, 0, fake_n].pitch, DELTA)
29
+ end
30
+
31
+ def test_pitch_with_xy_zero_and_z_negative
32
+ assert_in_delta(Math::PI * -0.5, C[ 0, 0, -fake_n].pitch, DELTA)
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,31 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "minitest/autorun"
3
+ require "simplecov"
4
+ SimpleCov.start
5
+
6
+ require "sixarm_ruby_geometry/indexable/rad"
7
+ require "sixarm_ruby_geometry_test/fake"
8
+
9
+ module Indexable
10
+ class RadTest < Minitest::Test
11
+
12
+ def test_0
13
+ assert(::Indexable::Rad)
14
+ end
15
+
16
+ require "matrix"
17
+ class C < Vector
18
+ include ::Indexable::Rad
19
+ end
20
+
21
+ DELTA = 0.00001
22
+
23
+ def test_rad
24
+ assert_in_delta(Math::PI * 0.0, C[ 1, 0].rad, DELTA)
25
+ assert_in_delta(Math::PI * 0.5, C[ 0, 1].rad, DELTA)
26
+ assert_in_delta(Math::PI * 1.0, C[-1, 0].rad, DELTA)
27
+ assert_in_delta(Math::PI * -0.5, C[ 0,-1].rad, DELTA)
28
+ end
29
+
30
+ end
31
+ end
@@ -0,0 +1,70 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "minitest/autorun"
3
+ require "simplecov"
4
+ SimpleCov.start
5
+
6
+ require "sixarm_ruby_geometry/indexable/width_height_depth"
7
+ require "sixarm_ruby_geometry_test/fake"
8
+
9
+ module Indexable
10
+ class WidthHeightDepthTest < Minitest::Test
11
+
12
+ def test_0
13
+ assert(::Indexable::WidthHeightDepth)
14
+ end
15
+
16
+ require "matrix"
17
+ class C < Vector
18
+ include ::Indexable::WidthHeightDepth
19
+ end
20
+
21
+ def test_width
22
+ width = fake_n
23
+ o = C[width, 0, 0]
24
+ assert_equal(width, o.width)
25
+ end
26
+
27
+ def test_width_equal
28
+ width = fake_n
29
+ o = fake_indexable
30
+ refute_equal(width, o.width)
31
+ o.width = width
32
+ assert_equal(width, o.width)
33
+ end
34
+
35
+ def test_height
36
+ height = fake_n
37
+ o = C[0, height, 0]
38
+ assert_equal(height, o.height)
39
+ end
40
+
41
+ def test_height_equal
42
+ height = fake_n
43
+ o = fake_indexable
44
+ refute_equal(height, o.height)
45
+ o.height = height
46
+ assert_equal(height, o.height)
47
+ end
48
+
49
+ def test_depth
50
+ depth = fake_n
51
+ o = C[0, 0, depth]
52
+ assert_equal(depth, o.depth)
53
+ end
54
+
55
+ def test_depth_equal
56
+ depth = fake_n
57
+ o = fake_indexable
58
+ refute_equal(depth, o.depth)
59
+ o.depth = depth
60
+ assert_equal(depth, o.depth)
61
+ end
62
+
63
+ protected
64
+
65
+ def fake_indexable
66
+ C[0,0,0]
67
+ end
68
+
69
+ end
70
+ end
@@ -0,0 +1,56 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "minitest/autorun"
3
+ require "simplecov"
4
+ SimpleCov.start
5
+
6
+ require "sixarm_ruby_geometry/indexable/width_height"
7
+ require "sixarm_ruby_geometry_test/fake"
8
+
9
+ module Indexable
10
+ class WidthHeightTest < Minitest::Test
11
+
12
+ def test_0
13
+ assert(::Indexable::WidthHeight)
14
+ end
15
+
16
+ require "matrix"
17
+ class C < Vector
18
+ include ::Indexable::WidthHeight
19
+ end
20
+
21
+ def test_width
22
+ width = fake_n
23
+ o = C[width,0]
24
+ assert_equal(width, o.width)
25
+ end
26
+
27
+ def test_width_equal
28
+ width = fake_n
29
+ o = fake_indexable
30
+ refute_equal(width, o.width)
31
+ o.width = width
32
+ assert_equal(width, o.width)
33
+ end
34
+
35
+ def test_height
36
+ height = fake_n
37
+ o = C[0,height]
38
+ assert_equal(height, o.height)
39
+ end
40
+
41
+ def test_height_equal
42
+ height = fake_n
43
+ o = fake_indexable
44
+ refute_equal(height, o.height)
45
+ o.height = height
46
+ assert_equal(height, o.height)
47
+ end
48
+
49
+ protected
50
+
51
+ def fake_indexable
52
+ C[0,0]
53
+ end
54
+
55
+ end
56
+ end