mageo 0.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.
@@ -0,0 +1,147 @@
1
+ #! /usr/bin/ruby
2
+
3
+ require 'test/unit'
4
+ require 'matrix'
5
+ require 'mageo/vector3d.rb'
6
+ require 'mageo/vector3dinternal.rb'
7
+
8
+ class TC_Array < Test::Unit::TestCase
9
+ $tolerance = 10.0**(-10)
10
+
11
+ def setup
12
+ @a = [1.0, 2.0, 3.0]
13
+ end
14
+
15
+ def test_to_v3di
16
+ assert_equal( Vector3DInternal, @a.to_v3di.class )
17
+ assert_in_delta( 1.0, @a.to_v3di[0], $tolerance )
18
+ assert_in_delta( 2.0, @a.to_v3di[1], $tolerance )
19
+ assert_in_delta( 3.0, @a.to_v3di[2], $tolerance )
20
+ assert_raise( Vector3DInternal::RangeError ){ [1.0].to_v3di }
21
+ assert_raise( Vector3DInternal::RangeError ){ [0.0, 1.0, 2.0, 3.0].to_v3di }
22
+ end
23
+
24
+ end
25
+
26
+ class TC_Vector3DInternal < Test::Unit::TestCase
27
+ $tolerance = 10.0**(-10)
28
+ include Math
29
+
30
+ def setup
31
+ @v0 = Vector3DInternal[1.0, 2.0, 3.0]
32
+ @v1 = Vector3DInternal[2.0, 4.0, 6.0]
33
+ end
34
+
35
+ def test_size
36
+ assert_equal( 3, @v0.size )
37
+ assert_equal( 3, @v1.size )
38
+ end
39
+
40
+ def test_to_v3di
41
+ assert_equal( @v0, @v0.to_v3di )
42
+ assert_equal( @v1, @v1.to_v3di )
43
+ end
44
+
45
+ def test_equal
46
+ assert_equal( true , @v0 == Vector3DInternal[1.0, 2.0, 3.0] )
47
+ assert_equal( true , @v1 == Vector3DInternal[2.0, 4.0, 6.0] )
48
+ assert_equal( false, @v0 == Vector3DInternal[2.0, 4.0, 6.0] )
49
+ assert_equal( false, @v1 == Vector3DInternal[1.0, 2.0, 3.0] )
50
+ end
51
+
52
+ def test_class
53
+ assert_equal( Vector3DInternal, @v0.class )
54
+ assert_equal( Vector3DInternal, ( @v0 * 3.0 ).class )
55
+ assert_equal( Vector3DInternal, ( @v0 + @v1 ).class )
56
+ assert_equal( Vector3DInternal, ( @v0 - @v1 ).class )
57
+ #assert_equal( Vector3DInternal, @v0.clone.class )
58
+ #assert_equal( Vector3DInternal, @v0.dup.class )
59
+ end
60
+
61
+ def test_access
62
+ assert_equal( 1.0, @v0[0] )
63
+ assert_equal( 2.0, @v0[1] )
64
+ assert_equal( 3.0, @v0[2] )
65
+ assert_raise( Vector3DInternal::RangeError ){ @v0[3] }
66
+ assert_raise( Vector3DInternal::RangeError ){ @v0[-1] }
67
+
68
+ @v0[0] = 0.0
69
+ @v0[1] = 0.0
70
+ @v0[2] = 0.0
71
+ assert_equal( 0.0, @v0[0] )
72
+ assert_equal( 0.0, @v0[1] )
73
+ assert_equal( 0.0, @v0[2] )
74
+ assert_raise( Vector3DInternal::RangeError ){ @v0[3] = 0.0 }
75
+ assert_raise( Vector3DInternal::RangeError ){ @v0[-1] = 0.0 }
76
+ end
77
+
78
+ def test_plus
79
+ assert_raise(Vector3DInternal::TypeError){ @v0 + [0.1, 0.2, 0.3] }
80
+ assert_raise(Vector3DInternal::TypeError){ @v0 + Vector[0.1, 0.2, 0.3] }
81
+ assert_raise(Vector3DInternal::TypeError){ @v0 + Vector3D[0.1, 0.2, 0.3] }
82
+
83
+ t = @v0 + Vector3DInternal[0.1, 0.2, 0.3]
84
+ assert_in_delta( 1.1, t[0], $tolerance )
85
+ assert_in_delta( 2.2, t[1], $tolerance )
86
+ assert_in_delta( 3.3, t[2], $tolerance )
87
+ end
88
+
89
+ def test_minus
90
+ assert_raise(Vector3DInternal::TypeError){ @v0 - [0.1, 0.2, 0.3] }
91
+ assert_raise(Vector3DInternal::TypeError){ @v0 - Vector[0.1, 0.2, 0.3] }
92
+ assert_raise(Vector3DInternal::TypeError){ @v0 - Vector3D[0.3, 0.2, 0.3] }
93
+
94
+ t = @v0 - Vector3DInternal[0.1, 0.2, 0.3]
95
+ assert_in_delta( 0.9, t[0], $tolerance )
96
+ assert_in_delta( 1.8, t[1], $tolerance )
97
+ assert_in_delta( 2.7, t[2], $tolerance )
98
+ end
99
+
100
+ def test_multiply
101
+ t = @v0 * 2
102
+ assert_in_delta( 2.0, t[0], $tolerance )
103
+ assert_in_delta( 4.0, t[1], $tolerance )
104
+ assert_in_delta( 6.0, t[2], $tolerance )
105
+
106
+ t = @v0 * 3.0
107
+ assert_in_delta( 3.0, t[0], $tolerance )
108
+ assert_in_delta( 6.0, t[1], $tolerance )
109
+ assert_in_delta( 9.0, t[2], $tolerance )
110
+
111
+ end
112
+
113
+ #def test_equal
114
+ # assert_equal( )
115
+ #end
116
+
117
+ def test_to_a
118
+ assert_equal( [1.0, 2.0, 3.0], @v0.to_a )
119
+ assert_equal( [2.0, 4.0, 6.0], @v1.to_a )
120
+ end
121
+
122
+ def test_to_v3d
123
+ t = Vector3DInternal[ 2.0, 3.0, 4.0 ].to_v3d( [ [1.0, 1.0, 1.0], [0.0, 1.0, 1.0], [0.0, 0.0, 1.0] ] )
124
+ assert_in_delta( 2.0, t[0], $tolerance )
125
+ assert_in_delta( 5.0, t[1], $tolerance )
126
+ assert_in_delta( 9.0, t[2], $tolerance )
127
+
128
+ t = Vector3DInternal[ 2.0, 3.0, 4.0 ].to_v3d(
129
+ [ Vector3D[1.0, 1.0, 1.0], Vector3D[0.0, 1.0, 1.0], Vector3D[0.0, 0.0, 1.0] ]
130
+ )
131
+ assert_in_delta( 2.0, t[0], $tolerance )
132
+ assert_in_delta( 5.0, t[1], $tolerance )
133
+ assert_in_delta( 9.0, t[2], $tolerance )
134
+ end
135
+
136
+ def test_each
137
+ i = 0
138
+ @v0.each { |coord|
139
+ assert_equal( @v0[i], coord )
140
+ i += 1
141
+ }
142
+
143
+ # map method.
144
+ assert_equal( @v0 * 2.0, @v0.map { |coord| coord * 2.0 } )
145
+ end
146
+ end
147
+
metadata ADDED
@@ -0,0 +1,183 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mageo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - ippei94da
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-04-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rdoc
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.12'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.12'
30
+ - !ruby/object:Gem::Dependency
31
+ name: bundler
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 1.1.3
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.1.3
46
+ - !ruby/object:Gem::Dependency
47
+ name: jeweler
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 1.8.3
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.8.3
62
+ - !ruby/object:Gem::Dependency
63
+ name: simplecov
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: builtinextension
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: malge
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: 0.0.1
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 0.0.1
110
+ description: ! "MAth GEOmetry library to deal with 2 and 3 dimension space.\n Cartesian
111
+ and internal coordinate systems can be used.\n This includes besic objects in
112
+ 3 dimensional space.\n "
113
+ email: ippei94da@gmail.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files:
117
+ - LICENSE.txt
118
+ - README.rdoc
119
+ files:
120
+ - .document
121
+ - Gemfile
122
+ - LICENSE.txt
123
+ - README.rdoc
124
+ - Rakefile
125
+ - VERSION
126
+ - lib/mageo.rb
127
+ - lib/mageo/axes.rb
128
+ - lib/mageo/cylinder.rb
129
+ - lib/mageo/octahedron.rb
130
+ - lib/mageo/polar2d.rb
131
+ - lib/mageo/polar3d.rb
132
+ - lib/mageo/polyhedron.rb
133
+ - lib/mageo/segment.rb
134
+ - lib/mageo/sphere.rb
135
+ - lib/mageo/tetrahedron.rb
136
+ - lib/mageo/triangle.rb
137
+ - lib/mageo/vector.rb
138
+ - lib/mageo/vector3d.rb
139
+ - lib/mageo/vector3dinternal.rb
140
+ - mageo.gemspec
141
+ - test/helper.rb
142
+ - test/test_axes.rb
143
+ - test/test_cylinder.rb
144
+ - test/test_octahedron.rb
145
+ - test/test_polar2d.rb
146
+ - test/test_polar3d.rb
147
+ - test/test_polyhedron.rb
148
+ - test/test_segment.rb
149
+ - test/test_sphere.rb
150
+ - test/test_tetrahedron.rb
151
+ - test/test_triangle.rb
152
+ - test/test_vector.rb
153
+ - test/test_vector3d.rb
154
+ - test/test_vector3dinternal.rb
155
+ homepage: http://github.com/ippei94da/mageo
156
+ licenses:
157
+ - MIT
158
+ post_install_message:
159
+ rdoc_options: []
160
+ require_paths:
161
+ - lib
162
+ required_ruby_version: !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ! '>='
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ segments:
169
+ - 0
170
+ hash: -984763203
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ requirements: []
178
+ rubyforge_project:
179
+ rubygems_version: 1.8.21
180
+ signing_key:
181
+ specification_version: 3
182
+ summary: MAth GEOmetry library to deal with 2 and 3 dimension space.
183
+ test_files: []