test/test_box.rb in gmath3D-0.2.4 vs test/test_box.rb in gmath3D-0.2.5
- old
+ new
@@ -1,167 +1,167 @@
-$LOAD_PATH.unshift(File.dirname(__FILE__))
-require 'helper'
-
-include GMath3D
-
-MiniTest::Unit.autorun
-
-class BoxTestCase < MiniTest::Unit::TestCase
- def setup
- @box_default = Box.new()
- @box = Box.new(Vector3.new(-3,2,5), Vector3.new(2,-2.5, 0))
- end
-
- def test_to_s
- assert_equal( "Box[min[-3, -2.5, 0], max[2, 2, 5]]", @box.to_s)
- end
-
- def test_initalize
- assert_equal(0, @box_default.min_point.x)
- assert_equal(0, @box_default.min_point.y)
- assert_equal(0, @box_default.min_point.z)
- assert_equal(1, @box_default.max_point.x)
- assert_equal(1, @box_default.max_point.y)
- assert_equal(1, @box_default.max_point.z)
-
- assert_equal(-3.0, @box.min_point.x)
- assert_equal(-2.5, @box.min_point.y)
- assert_equal(0.0 , @box.min_point.z)
- assert_equal(2.0 , @box.max_point.x)
- assert_equal(2.0 , @box.max_point.y)
- assert_equal(5.0 , @box.max_point.z)
-
- assert_equal(Geom.default_tolerance, @box_default.tolerance)
-
- assert_raises ArgumentError do
- invalidResult = Box.new(nil)
- end
- assert_raises ArgumentError do
- invalidResult = Box.new(Vector3.new(), 4.0)
- end
- end
-
- def test_from_points
- points = Array.new(6)
- points[0] = Vector3.new( 3, 0, 1)
- points[1] = Vector3.new( 2,-2, 10)
- points[2] = Vector3.new(-6, 2, -4)
- points[3] = Vector3.new( 3, 5, -1)
- points[4] = Vector3.new(-2, 2, 2)
- points[5] = Vector3.new(11, 1, 0)
- box = Box.from_points(points)
- assert_equal(Vector3.new(-6, -2, -4), box.min_point)
- assert_equal(Vector3.new(11, 5, 10), box.max_point)
-
- points = Array.new(2)
- points[0] = Vector3.new( -3, -2, -1)
- points[1] = Vector3.new( -4, -8, -10)
- box = Box.from_points(points)
- assert_equal(Vector3.new(-4, -8, -10), box.min_point)
- assert_equal(Vector3.new(-3, -2, -1), box.max_point)
-
- points = Array.new(0)
- box = Box.from_points(points)
- assert_equal(nil, box)
- end
-
- def test_equal
- shallow_copied = @box
- assert( shallow_copied == @box )
- assert( shallow_copied.equal?( @box ) )
-
- deep_copied = Box.new(Vector3.new(-3,2,5), Vector3.new(2,-2.5, 0))
- assert( deep_copied == @box )
- assert( !deep_copied.equal?( @box ) )
-
- assert( @box != 5 )
- end
-
- def test_add
- added_box = @box_default + Vector3.new(-2, 0.5, 3)
- assert_equal(Vector3.new(-2,0,0), added_box.min_point)
- assert_equal(Vector3.new(1,1,3) , added_box.max_point)
-
- added_box = @box_default + Box.new( Vector3.new(-2,0.5, 3), Vector3.new(4, 0, 2.0))
- assert_equal(Vector3.new(-2,0,0), added_box.min_point)
- assert_equal(Vector3.new(4,1,3) , added_box.max_point)
-
- point_ary = [Vector3.new(1,4,9), Vector3.new(4,-2,4), Vector3.new(2,-5,0)]
- added_box = @box + point_ary
- assert_equal(Vector3.new(-3,-5, 0), added_box.min_point)
- assert_equal(Vector3.new( 4, 4, 9), added_box.max_point)
-
- assert_raises ArgumentError do
- invalidResult = @box + 4
- end
- end
-
- def test_center
- assert_equal( Vector3.new(0.5, 0.5, 0.5), @box_default.center)
- assert_equal( Vector3.new(-0.5,-0.25,2.5), @box.center)
- end
-
- def test_length
- width, height, depth = @box_default.length
- assert_in_delta( 1, width , @box_default.tolerance)
- assert_in_delta( 1, height, @box_default.tolerance)
- assert_in_delta( 1, depth , @box_default.tolerance)
-
- width, height, depth = @box.length
- assert_in_delta( 5.0, width , @box.tolerance)
- assert_in_delta( 4.5, height, @box.tolerance)
- assert_in_delta( 5.0, depth , @box.tolerance)
- end
-
- def test_volume
- assert_in_delta( 1.0, @box_default.volume, @box_default.tolerance )
- assert_in_delta( 112.5, @box.volume, @box.tolerance )
- end
-
- def test_vertices
- verts = @box_default.vertices
- assert(verts.include?(Vector3.new(0,0,0)))
- assert(verts.include?(Vector3.new(1,0,0)))
- assert(verts.include?(Vector3.new(1,1,0)))
- assert(verts.include?(Vector3.new(0,1,0)))
- assert(verts.include?(Vector3.new(0,0,1)))
- assert(verts.include?(Vector3.new(1,0,1)))
- assert(verts.include?(Vector3.new(1,1,1)))
- assert(verts.include?(Vector3.new(0,1,1)))
-
- verts = @box.vertices #.new(-3,2,5), Vector3.new(2,-2.5, 0))
- assert(verts.include?(Vector3.new(-3, -2.5, 0)))
- assert(verts.include?(Vector3.new( 2, -2.5, 0)))
- assert(verts.include?(Vector3.new( 2, 2.0, 0)))
- assert(verts.include?(Vector3.new(-3, 2.0, 0)))
- assert(verts.include?(Vector3.new(-3, -2.5, 5)))
- assert(verts.include?(Vector3.new( 2, -2.5, 5)))
- assert(verts.include?(Vector3.new( 2, 2.0, 5)))
- assert(verts.include?(Vector3.new(-3, 2.0, 5)))
- end
-
- def test_translate
- trans = Vector3.new(1,2.5,-0.5)
- translated = @box_default.translate(trans)
- assert_equal(Box.new(Vector3.new(1,2.5,-0.5), Vector3.new(2,3.5,0.5)), translated)
-
- # this procedure is not destructive
- assert_equal(Box.new(Vector3.new(0,0,0), Vector3.new(1,1,1)), @box_default)
- end
-
- def test_rotate
- angle_90 = 90.0*Math::PI/180.0
- angle_45 = 45.0*Math::PI/180.0
- rotation1 = Quat.from_axis(Vector3.new(0,0,1), angle_90)
- rotation2 = Quat.from_axis(Vector3.new(0,0,1), angle_45)
-# rotation3 = Quat.from_axis(Vector3.new(1,1,1).normalize, angle_90)
- rotated1 = @box_default.rotate(rotation1)
- rotated2 = @box_default.rotate(rotation2)
- assert_equal(Box.new(Vector3.new(0,-1,0), Vector3.new(1,0,1)), rotated1)
- assert_equal(Box.new(
- Vector3.new(0, -(Math.sqrt(2.0)/2) ,0),
- Vector3.new(Math.sqrt(2.0), (Math.sqrt(2.0)/2) ,1)), rotated2)
-
- # this procedure is not destructive
- assert_equal(Box.new(Vector3.new(0,0,0), Vector3.new(1,1,1)), @box_default)
- end
-end
+$LOAD_PATH.unshift(File.dirname(__FILE__))
+require 'helper'
+
+include GMath3D
+
+MiniTest::Unit.autorun
+
+class BoxTestCase < MiniTest::Unit::TestCase
+ def setup
+ @box_default = Box.new()
+ @box = Box.new(Vector3.new(-3,2,5), Vector3.new(2,-2.5, 0))
+ end
+
+ def test_to_s
+ assert_equal( "Box[min[-3, -2.5, 0], max[2, 2, 5]]", @box.to_s)
+ end
+
+ def test_initalize
+ assert_equal(0, @box_default.min_point.x)
+ assert_equal(0, @box_default.min_point.y)
+ assert_equal(0, @box_default.min_point.z)
+ assert_equal(1, @box_default.max_point.x)
+ assert_equal(1, @box_default.max_point.y)
+ assert_equal(1, @box_default.max_point.z)
+
+ assert_equal(-3.0, @box.min_point.x)
+ assert_equal(-2.5, @box.min_point.y)
+ assert_equal(0.0 , @box.min_point.z)
+ assert_equal(2.0 , @box.max_point.x)
+ assert_equal(2.0 , @box.max_point.y)
+ assert_equal(5.0 , @box.max_point.z)
+
+ assert_equal(Geom.default_tolerance, @box_default.tolerance)
+
+ assert_raises ArgumentError do
+ invalidResult = Box.new(nil)
+ end
+ assert_raises ArgumentError do
+ invalidResult = Box.new(Vector3.new(), 4.0)
+ end
+ end
+
+ def test_from_points
+ points = Array.new(6)
+ points[0] = Vector3.new( 3, 0, 1)
+ points[1] = Vector3.new( 2,-2, 10)
+ points[2] = Vector3.new(-6, 2, -4)
+ points[3] = Vector3.new( 3, 5, -1)
+ points[4] = Vector3.new(-2, 2, 2)
+ points[5] = Vector3.new(11, 1, 0)
+ box = Box.from_points(points)
+ assert_equal(Vector3.new(-6, -2, -4), box.min_point)
+ assert_equal(Vector3.new(11, 5, 10), box.max_point)
+
+ points = Array.new(2)
+ points[0] = Vector3.new( -3, -2, -1)
+ points[1] = Vector3.new( -4, -8, -10)
+ box = Box.from_points(points)
+ assert_equal(Vector3.new(-4, -8, -10), box.min_point)
+ assert_equal(Vector3.new(-3, -2, -1), box.max_point)
+
+ points = Array.new(0)
+ box = Box.from_points(points)
+ assert_equal(nil, box)
+ end
+
+ def test_equal
+ shallow_copied = @box
+ assert( shallow_copied == @box )
+ assert( shallow_copied.equal?( @box ) )
+
+ deep_copied = Box.new(Vector3.new(-3,2,5), Vector3.new(2,-2.5, 0))
+ assert( deep_copied == @box )
+ assert( !deep_copied.equal?( @box ) )
+
+ assert( @box != 5 )
+ end
+
+ def test_add
+ added_box = @box_default + Vector3.new(-2, 0.5, 3)
+ assert_equal(Vector3.new(-2,0,0), added_box.min_point)
+ assert_equal(Vector3.new(1,1,3) , added_box.max_point)
+
+ added_box = @box_default + Box.new( Vector3.new(-2,0.5, 3), Vector3.new(4, 0, 2.0))
+ assert_equal(Vector3.new(-2,0,0), added_box.min_point)
+ assert_equal(Vector3.new(4,1,3) , added_box.max_point)
+
+ point_ary = [Vector3.new(1,4,9), Vector3.new(4,-2,4), Vector3.new(2,-5,0)]
+ added_box = @box + point_ary
+ assert_equal(Vector3.new(-3,-5, 0), added_box.min_point)
+ assert_equal(Vector3.new( 4, 4, 9), added_box.max_point)
+
+ assert_raises ArgumentError do
+ invalidResult = @box + 4
+ end
+ end
+
+ def test_center
+ assert_equal( Vector3.new(0.5, 0.5, 0.5), @box_default.center)
+ assert_equal( Vector3.new(-0.5,-0.25,2.5), @box.center)
+ end
+
+ def test_length
+ width, height, depth = @box_default.length
+ assert_in_delta( 1, width , @box_default.tolerance)
+ assert_in_delta( 1, height, @box_default.tolerance)
+ assert_in_delta( 1, depth , @box_default.tolerance)
+
+ width, height, depth = @box.length
+ assert_in_delta( 5.0, width , @box.tolerance)
+ assert_in_delta( 4.5, height, @box.tolerance)
+ assert_in_delta( 5.0, depth , @box.tolerance)
+ end
+
+ def test_volume
+ assert_in_delta( 1.0, @box_default.volume, @box_default.tolerance )
+ assert_in_delta( 112.5, @box.volume, @box.tolerance )
+ end
+
+ def test_vertices
+ verts = @box_default.vertices
+ assert(verts.include?(Vector3.new(0,0,0)))
+ assert(verts.include?(Vector3.new(1,0,0)))
+ assert(verts.include?(Vector3.new(1,1,0)))
+ assert(verts.include?(Vector3.new(0,1,0)))
+ assert(verts.include?(Vector3.new(0,0,1)))
+ assert(verts.include?(Vector3.new(1,0,1)))
+ assert(verts.include?(Vector3.new(1,1,1)))
+ assert(verts.include?(Vector3.new(0,1,1)))
+
+ verts = @box.vertices #.new(-3,2,5), Vector3.new(2,-2.5, 0))
+ assert(verts.include?(Vector3.new(-3, -2.5, 0)))
+ assert(verts.include?(Vector3.new( 2, -2.5, 0)))
+ assert(verts.include?(Vector3.new( 2, 2.0, 0)))
+ assert(verts.include?(Vector3.new(-3, 2.0, 0)))
+ assert(verts.include?(Vector3.new(-3, -2.5, 5)))
+ assert(verts.include?(Vector3.new( 2, -2.5, 5)))
+ assert(verts.include?(Vector3.new( 2, 2.0, 5)))
+ assert(verts.include?(Vector3.new(-3, 2.0, 5)))
+ end
+
+ def test_translate
+ trans = Vector3.new(1,2.5,-0.5)
+ translated = @box_default.translate(trans)
+ assert_equal(Box.new(Vector3.new(1,2.5,-0.5), Vector3.new(2,3.5,0.5)), translated)
+
+ # this procedure is not destructive
+ assert_equal(Box.new(Vector3.new(0,0,0), Vector3.new(1,1,1)), @box_default)
+ end
+
+ def test_rotate
+ angle_90 = 90.0*Math::PI/180.0
+ angle_45 = 45.0*Math::PI/180.0
+ rotation1 = Quat.from_axis(Vector3.new(0,0,1), angle_90)
+ rotation2 = Quat.from_axis(Vector3.new(0,0,1), angle_45)
+# rotation3 = Quat.from_axis(Vector3.new(1,1,1).normalize, angle_90)
+ rotated1 = @box_default.rotate(rotation1)
+ rotated2 = @box_default.rotate(rotation2)
+ assert_equal(Box.new(Vector3.new(0,-1,0), Vector3.new(1,0,1)), rotated1)
+ assert_equal(Box.new(
+ Vector3.new(0, -(Math.sqrt(2.0)/2) ,0),
+ Vector3.new(Math.sqrt(2.0), (Math.sqrt(2.0)/2) ,1)), rotated2)
+
+ # this procedure is not destructive
+ assert_equal(Box.new(Vector3.new(0,0,0), Vector3.new(1,1,1)), @box_default)
+ end
+end