test/processing/test_vector.rb in rubysketch-0.3.3 vs test/processing/test_vector.rb in rubysketch-0.3.4

- old
+ new

@@ -4,12 +4,14 @@ require_relative '../helper' class TestProcessingVector < Test::Unit::TestCase - V = RubySketch::Processing::Vector + P = RubySketch::Processing + V = P::Vector + M = Math PI = M::PI def vec (*args) @@ -19,218 +21,218 @@ def point (*args) Rays::Point.new *args end def test_initialize () - assert_equal vec(0, 0, 0), vec() - assert_equal vec(1, 0, 0), vec(1) - assert_equal vec(1, 2, 0), vec(1, 2) - assert_equal vec(1, 2, 3), vec(1, 2, 3) + assert_equal_vector vec(0, 0, 0), vec() + assert_equal_vector vec(1, 0, 0), vec(1) + assert_equal_vector vec(1, 2, 0), vec(1, 2) + assert_equal_vector vec(1, 2, 3), vec(1, 2, 3) - assert_equal vec(0, 0, 0), vec([]) - assert_equal vec(1, 0, 0), vec([1]) - assert_equal vec(1, 2, 0), vec([1, 2]) - assert_equal vec(1, 2, 3), vec([1, 2, 3]) + assert_equal_vector vec(0, 0, 0), vec([]) + assert_equal_vector vec(1, 0, 0), vec([1]) + assert_equal_vector vec(1, 2, 0), vec([1, 2]) + assert_equal_vector vec(1, 2, 3), vec([1, 2, 3]) - assert_equal vec(1, 2, 3), vec(vec 1, 2, 3) - assert_equal vec(1, 2, 3), vec(point 1, 2, 3) + assert_equal_vector vec(1, 2, 3), vec(vec 1, 2, 3) + assert_equal_vector vec(1, 2, 3), vec(point 1, 2, 3) end def test_set () v0 = vec 9, 9, 9 - v = v0.dup; v.set; assert_equal vec(0, 0, 0), v - v = v0.dup; v.set 1; assert_equal vec(1, 0, 0), v - v = v0.dup; v.set 1, 2; assert_equal vec(1, 2, 0), v - v = v0.dup; v.set 1, 2, 3; assert_equal vec(1, 2, 3), v + v = v0.dup; v.set; assert_equal_vector vec(0, 0, 0), v + v = v0.dup; v.set 1; assert_equal_vector vec(1, 0, 0), v + v = v0.dup; v.set 1, 2; assert_equal_vector vec(1, 2, 0), v + v = v0.dup; v.set 1, 2, 3; assert_equal_vector vec(1, 2, 3), v - v = v0.dup; v.set []; assert_equal vec(0, 0, 0), v - v = v0.dup; v.set [1]; assert_equal vec(1, 0, 0), v - v = v0.dup; v.set [1, 2]; assert_equal vec(1, 2, 0), v - v = v0.dup; v.set [1, 2, 3]; assert_equal vec(1, 2, 3), v + v = v0.dup; v.set []; assert_equal_vector vec(0, 0, 0), v + v = v0.dup; v.set [1]; assert_equal_vector vec(1, 0, 0), v + v = v0.dup; v.set [1, 2]; assert_equal_vector vec(1, 2, 0), v + v = v0.dup; v.set [1, 2, 3]; assert_equal_vector vec(1, 2, 3), v - v = v0.dup; v.set vec(1, 2, 3); assert_equal vec(1, 2, 3), v - v = v0.dup; v.set point(1, 2, 3); assert_equal vec(1, 2, 3), v + v = v0.dup; v.set vec(1, 2, 3); assert_equal_vector vec(1, 2, 3), v + v = v0.dup; v.set point(1, 2, 3); assert_equal_vector vec(1, 2, 3), v end def test_dup () v1 = vec 1, 2, 3 - assert_equal vec(1, 2, 3), v1 + assert_equal_vector vec(1, 2, 3), v1 v2 = v1.dup - assert_equal vec(1, 2, 3), v1 - assert_equal vec(1, 2, 3), v2 + assert_equal_vector vec(1, 2, 3), v1 + assert_equal_vector vec(1, 2, 3), v2 v1.set 7, 8, 9 - assert_equal vec(7, 8, 9), v1 - assert_equal vec(1, 2, 3), v2 + assert_equal_vector vec(7, 8, 9), v1 + assert_equal_vector vec(1, 2, 3), v2 end def test_copy () v1 = vec 1, 2, 3 - assert_equal vec(1, 2, 3), v1 + assert_equal_vector vec(1, 2, 3), v1 v2 = v1.copy - assert_equal vec(1, 2, 3), v1 - assert_equal vec(1, 2, 3), v2 + assert_equal_vector vec(1, 2, 3), v1 + assert_equal_vector vec(1, 2, 3), v2 v1.set 7, 8, 9 - assert_equal vec(7, 8, 9), v1 - assert_equal vec(1, 2, 3), v2 + assert_equal_vector vec(7, 8, 9), v1 + assert_equal_vector vec(1, 2, 3), v2 end def test_xyz () v = vec 1, 2, 3 - assert_equal vec(1, 2, 3), v - assert_equal [1, 2, 3], [v.x, v.y, v.z] + assert_equal_vector vec(1, 2, 3), v + assert_equal [1, 2, 3], [v.x, v.y, v.z] v.x = 7 - assert_equal vec(7, 2, 3), v + assert_equal_vector vec(7, 2, 3), v v.y = 8 - assert_equal vec(7, 8, 3), v + assert_equal_vector vec(7, 8, 3), v v.z = 9 - assert_equal vec(7, 8, 9), v + assert_equal_vector vec(7, 8, 9), v end def test_array () assert_equal [1, 2, 3], vec(1, 2, 3).array end def test_add () v = vec 1, 2, 3 v.add 4, 5, 6 - assert_equal vec(5, 7, 9), v + assert_equal_vector vec(5, 7, 9), v - assert_equal vec(1, 2, 3), vec(1, 2, 3).add() - assert_equal vec(5, 2, 3), vec(1, 2, 3).add(4) - assert_equal vec(5, 7, 3), vec(1, 2, 3).add(4, 5) - assert_equal vec(5, 7, 9), vec(1, 2, 3).add(4, 5, 6) + assert_equal_vector vec(1, 2, 3), vec(1, 2, 3).add() + assert_equal_vector vec(5, 2, 3), vec(1, 2, 3).add(4) + assert_equal_vector vec(5, 7, 3), vec(1, 2, 3).add(4, 5) + assert_equal_vector vec(5, 7, 9), vec(1, 2, 3).add(4, 5, 6) - assert_equal vec(1, 2, 3), vec(1, 2, 3).add([]) - assert_equal vec(5, 2, 3), vec(1, 2, 3).add([4]) - assert_equal vec(5, 7, 3), vec(1, 2, 3).add([4, 5]) - assert_equal vec(5, 7, 9), vec(1, 2, 3).add([4, 5, 6]) + assert_equal_vector vec(1, 2, 3), vec(1, 2, 3).add([]) + assert_equal_vector vec(5, 2, 3), vec(1, 2, 3).add([4]) + assert_equal_vector vec(5, 7, 3), vec(1, 2, 3).add([4, 5]) + assert_equal_vector vec(5, 7, 9), vec(1, 2, 3).add([4, 5, 6]) - assert_equal vec(5, 7, 9), vec(1, 2, 3).add( vec(4, 5, 6)) - assert_equal vec(5, 7, 9), vec(1, 2, 3).add(point(4, 5, 6)) + assert_equal_vector vec(5, 7, 9), vec(1, 2, 3).add( vec(4, 5, 6)) + assert_equal_vector vec(5, 7, 9), vec(1, 2, 3).add(point(4, 5, 6)) end def test_sub () v = vec 9, 8, 7 v.sub 1, 2, 3 - assert_equal vec(8, 6, 4), v + assert_equal_vector vec(8, 6, 4), v - assert_equal vec(9, 8, 7), vec(9, 8, 7).sub() - assert_equal vec(8, 8, 7), vec(9, 8, 7).sub(1) - assert_equal vec(8, 6, 7), vec(9, 8, 7).sub(1, 2) - assert_equal vec(8, 6, 4), vec(9, 8, 7).sub(1, 2, 3) + assert_equal_vector vec(9, 8, 7), vec(9, 8, 7).sub() + assert_equal_vector vec(8, 8, 7), vec(9, 8, 7).sub(1) + assert_equal_vector vec(8, 6, 7), vec(9, 8, 7).sub(1, 2) + assert_equal_vector vec(8, 6, 4), vec(9, 8, 7).sub(1, 2, 3) - assert_equal vec(9, 8, 7), vec(9, 8, 7).sub([]) - assert_equal vec(8, 8, 7), vec(9, 8, 7).sub([1]) - assert_equal vec(8, 6, 7), vec(9, 8, 7).sub([1, 2]) - assert_equal vec(8, 6, 4), vec(9, 8, 7).sub([1, 2, 3]) + assert_equal_vector vec(9, 8, 7), vec(9, 8, 7).sub([]) + assert_equal_vector vec(8, 8, 7), vec(9, 8, 7).sub([1]) + assert_equal_vector vec(8, 6, 7), vec(9, 8, 7).sub([1, 2]) + assert_equal_vector vec(8, 6, 4), vec(9, 8, 7).sub([1, 2, 3]) - assert_equal vec(8, 6, 4), vec(9, 8, 7).sub( vec(1, 2, 3)) - assert_equal vec(8, 6, 4), vec(9, 8, 7).sub(point(1, 2, 3)) + assert_equal_vector vec(8, 6, 4), vec(9, 8, 7).sub( vec(1, 2, 3)) + assert_equal_vector vec(8, 6, 4), vec(9, 8, 7).sub(point(1, 2, 3)) end def test_mult () v = vec 1, 2, 3 v.mult 2 - assert_equal vec(2, 4, 6), v + assert_equal_vector vec(2, 4, 6), v end def test_div () v = vec 2, 4, 6 v.div 2 - assert_equal vec(1, 2, 3), v + assert_equal_vector vec(1, 2, 3), v end def test_op_add () v1 = vec 1, 2, 3 v2 = vec 4, 5, 6 - assert_equal vec(5, 7, 9), v1 + v2 - assert_equal vec(1, 2, 3), v1 - assert_equal vec(4, 5, 6), v2 + assert_equal_vector vec(5, 7, 9), v1 + v2 + assert_equal_vector vec(1, 2, 3), v1 + assert_equal_vector vec(4, 5, 6), v2 - assert_equal vec(5, 2, 3), vec(1, 2, 3) + 4 + assert_equal_vector vec(5, 2, 3), vec(1, 2, 3) + 4 - assert_equal vec(1, 2, 3), vec(1, 2, 3) + [] - assert_equal vec(5, 2, 3), vec(1, 2, 3) + [4] - assert_equal vec(5, 7, 3), vec(1, 2, 3) + [4, 5] - assert_equal vec(5, 7, 9), vec(1, 2, 3) + [4, 5, 6] + assert_equal_vector vec(1, 2, 3), vec(1, 2, 3) + [] + assert_equal_vector vec(5, 2, 3), vec(1, 2, 3) + [4] + assert_equal_vector vec(5, 7, 3), vec(1, 2, 3) + [4, 5] + assert_equal_vector vec(5, 7, 9), vec(1, 2, 3) + [4, 5, 6] - assert_equal vec(5, 7, 9), vec(1, 2, 3) + vec(4, 5, 6) - assert_equal vec(5, 7, 9), vec(1, 2, 3) + point(4, 5, 6) + assert_equal_vector vec(5, 7, 9), vec(1, 2, 3) + vec(4, 5, 6) + assert_equal_vector vec(5, 7, 9), vec(1, 2, 3) + point(4, 5, 6) end def test_op_sub () v1 = vec 9, 8, 7 v2 = vec 1, 2, 3 - assert_equal vec(8, 6, 4), v1 - v2 - assert_equal vec(9, 8, 7), v1 - assert_equal vec(1, 2, 3), v2 + assert_equal_vector vec(8, 6, 4), v1 - v2 + assert_equal_vector vec(9, 8, 7), v1 + assert_equal_vector vec(1, 2, 3), v2 - assert_equal vec(8, 8, 7), vec(9, 8, 7) - 1 + assert_equal_vector vec(8, 8, 7), vec(9, 8, 7) - 1 - assert_equal vec(9, 8, 7), vec(9, 8, 7) - [] - assert_equal vec(8, 8, 7), vec(9, 8, 7) - [1] - assert_equal vec(8, 6, 7), vec(9, 8, 7) - [1, 2] - assert_equal vec(8, 6, 4), vec(9, 8, 7) - [1, 2, 3] + assert_equal_vector vec(9, 8, 7), vec(9, 8, 7) - [] + assert_equal_vector vec(8, 8, 7), vec(9, 8, 7) - [1] + assert_equal_vector vec(8, 6, 7), vec(9, 8, 7) - [1, 2] + assert_equal_vector vec(8, 6, 4), vec(9, 8, 7) - [1, 2, 3] - assert_equal vec(8, 6, 4), vec(9, 8, 7) - vec(1, 2, 3) - assert_equal vec(8, 6, 4), vec(9, 8, 7) - point(1, 2, 3) + assert_equal_vector vec(8, 6, 4), vec(9, 8, 7) - vec(1, 2, 3) + assert_equal_vector vec(8, 6, 4), vec(9, 8, 7) - point(1, 2, 3) end def test_op_mult () v = vec 1, 2, 3 - assert_equal vec(2, 4, 6), v * 2 - assert_equal vec(1, 2, 3), v + assert_equal_vector vec(2, 4, 6), v * 2 + assert_equal_vector vec(1, 2, 3), v end def test_op_div () v = vec 2, 4, 6 - assert_equal vec(1, 2, 3), v / 2 - assert_equal vec(2, 4, 6), v + assert_equal_vector vec(1, 2, 3), v / 2 + assert_equal_vector vec(2, 4, 6), v end def test_fun_add () v1 = vec 1, 2, 3 v2 = vec 4, 5, 6 result = vec - assert_equal vec(5, 7, 9), V.add(v1, v2, result) - assert_equal vec(1, 2, 3), v1 - assert_equal vec(4, 5, 6), v2 - assert_equal vec(5, 7, 9), result + assert_equal_vector vec(5, 7, 9), V.add(v1, v2, result) + assert_equal_vector vec(1, 2, 3), v1 + assert_equal_vector vec(4, 5, 6), v2 + assert_equal_vector vec(5, 7, 9), result end def test_fun_sub () v1 = vec 9, 8, 7 v2 = vec 1, 2, 3 result = vec - assert_equal vec(8, 6, 4), V.sub(v1, v2, result) - assert_equal vec(9, 8, 7), v1 - assert_equal vec(1, 2, 3), v2 - assert_equal vec(8, 6, 4), result + assert_equal_vector vec(8, 6, 4), V.sub(v1, v2, result) + assert_equal_vector vec(9, 8, 7), v1 + assert_equal_vector vec(1, 2, 3), v2 + assert_equal_vector vec(8, 6, 4), result end def test_fun_mult () v1 = vec 1, 2, 3 result = vec - assert_equal vec(2, 4, 6), V.mult(v1, 2, result) - assert_equal vec(1, 2, 3), v1 - assert_equal vec(2, 4, 6), result + assert_equal_vector vec(2, 4, 6), V.mult(v1, 2, result) + assert_equal_vector vec(1, 2, 3), v1 + assert_equal_vector vec(2, 4, 6), result end def test_fun_div () v1 = vec 2, 4, 6 result = vec - assert_equal vec(1, 2, 3), V.div(v1, 2, result) - assert_equal vec(2, 4, 6), v1 - assert_equal vec(1, 2, 3), result + assert_equal_vector vec(1, 2, 3), V.div(v1, 2, result) + assert_equal_vector vec(2, 4, 6), v1 + assert_equal_vector vec(1, 2, 3), result end def test_mag () assert_in_delta M.sqrt(5), vec(1, 2) .mag, 0.000001 assert_in_delta M.sqrt(14), vec(1, 2, 3).mag, 0.000001 @@ -241,31 +243,31 @@ assert_equal 14, vec(1, 2, 3).magSq end def test_setMag () v = vec 3, 4, 0 - assert_equal vec(6, 8, 0), v.setMag(10) - assert_equal vec(6, 8, 0), v + assert_equal_vector vec(6, 8, 0), v.setMag(10) + assert_equal_vector vec(6, 8, 0), v v = vec 3, 4, 0 result = vec - assert_equal vec(6, 8, 0), v.setMag(result, 10) - assert_equal vec(3, 4, 0), v - assert_equal vec(6, 8, 0), result + assert_equal_vector vec(6, 8, 0), v.setMag(result, 10) + assert_equal_vector vec(3, 4, 0), v + assert_equal_vector vec(6, 8, 0), result end def test_normalize () v = vec 1, 2, 3 normal = v / v.mag - assert_equal normal, v.normalize - assert_equal normal, v + assert_equal_vector normal, v.normalize + assert_equal_vector normal, v v = vec 1, 2, 3 result = vec - assert_equal normal, v.normalize(result) - assert_equal vec(1, 2, 3), v - assert_equal normal, result + assert_equal_vector normal, v.normalize(result) + assert_equal_vector vec(1, 2, 3), v + assert_equal_vector normal, result end def test_limit () v = vec 1, 2, 3 assert_in_delta 1, v.limit(1).mag, 0.000001 @@ -280,72 +282,72 @@ def test_dist () v1 = vec 1, 2, 3 v2 = vec 4, 5, 6 assert_in_delta M.sqrt((4-1)**2 + (5-2)**2 + (6-3)**2), v1.dist(v2), 0.000001 - assert_equal vec(1, 2, 3), v1 - assert_equal vec(4, 5, 6), v2 + assert_equal_vector vec(1, 2, 3), v1 + assert_equal_vector vec(4, 5, 6), v2 assert_in_delta M.sqrt((4-1)**2 + (5-2)**2 + (6-3)**2), V.dist(v1, v2), 0.000001 - assert_equal vec(1, 2, 3), v1 - assert_equal vec(4, 5, 6), v2 + assert_equal_vector vec(1, 2, 3), v1 + assert_equal_vector vec(4, 5, 6), v2 end def test_dot () v1 = vec 1, 2, 3 v2 = vec 4, 5, 6 assert_equal 1*4 + 2*5 + 3*6, v1.dot(4, 5, 6) - assert_equal vec(1, 2, 3), v1 + assert_equal_vector vec(1, 2, 3), v1 assert_equal 1*4 + 2*5 + 3*6, v1.dot(v2) - assert_equal vec(1, 2, 3), v1 - assert_equal vec(4, 5, 6), v2 + assert_equal_vector vec(1, 2, 3), v1 + assert_equal_vector vec(4, 5, 6), v2 assert_equal 1*4 + 2*5 + 3*6, V.dot(v1, v2) - assert_equal vec(1, 2, 3), v1 - assert_equal vec(4, 5, 6), v2 + assert_equal_vector vec(1, 2, 3), v1 + assert_equal_vector vec(4, 5, 6), v2 end def test_cross () v1 = vec 1, 0, 0 v2 = vec 0, 1, 0 - assert_equal vec(0, 0, 1), v1.cross(0, 1, 0) - assert_equal vec(1, 0, 0), v1 + assert_equal_vector vec(0, 0, 1), v1.cross(0, 1, 0) + assert_equal_vector vec(1, 0, 0), v1 result = vec 1, 2, 3 - assert_equal vec(0, 0, 1), v1.cross(v2, result) - assert_equal vec(1, 0, 0), v1 - assert_equal vec(0, 1, 0), v2 - assert_equal vec(0, 0, 1), result + assert_equal_vector vec(0, 0, 1), v1.cross(v2, result) + assert_equal_vector vec(1, 0, 0), v1 + assert_equal_vector vec(0, 1, 0), v2 + assert_equal_vector vec(0, 0, 1), result result = vec 1, 2, 3 - assert_equal vec(0, 0, 1), V.cross(v1, v2, result) - assert_equal vec(1, 0, 0), v1 - assert_equal vec(0, 1, 0), v2 - assert_equal vec(0, 0, 1), result + assert_equal_vector vec(0, 0, 1), V.cross(v1, v2, result) + assert_equal_vector vec(1, 0, 0), v1 + assert_equal_vector vec(0, 1, 0), v2 + assert_equal_vector vec(0, 0, 1), result end def test_rotate () angle = PI * 2 * 0.1 - context = Object.new.tap {|o| def o.toAngle__ (angle); angle; end} + context = Object.new.tap {|o| def o.toAngle__ (a); a * 2 * P::RAD2DEG__; end} v = vec 1, 0, 0 - assert_equal vec(M.cos(angle), M.sin(angle), 0), v.rotate(angle) - assert_equal vec(M.cos(angle), M.sin(angle), 0), v + assert_equal_vector vec(M.cos(angle), M.sin(angle), 0), v.rotate(angle) + assert_equal_vector vec(M.cos(angle), M.sin(angle), 0), v v = vec 1, 0, 0, context: context - assert_equal vec(M.cos(angle), M.sin(angle), 0), v.rotate(36) + assert_equal_vector vec(M.cos(angle * 2), M.sin(angle * 2), 0), v.rotate(angle) end def test_fromAngle () angle = PI * 2 * 0.1 result = vec - assert_equal vec(M.cos(angle), M.sin(angle), 0), V.fromAngle(angle) - assert_equal vec(M.cos(angle), M.sin(angle), 0), V.fromAngle(angle, result) - assert_equal vec(M.cos(angle), M.sin(angle), 0), result + assert_equal_vector vec(M.cos(angle), M.sin(angle), 0), V.fromAngle(angle) + assert_equal_vector vec(M.cos(angle), M.sin(angle), 0), V.fromAngle(angle, result) + assert_equal_vector vec(M.cos(angle), M.sin(angle), 0), result end def test_heading () angle = PI * 1 * 0.1 assert_in_delta angle, V.fromAngle( angle).heading, 0.000001 @@ -357,12 +359,12 @@ v2 = V.fromAngle PI * 0.75 assert_in_delta PI / 2, V.angleBetween(v1, v2), 0.000001 end def test_lerp () - assert_equal vec(0.5, 0.5, 0.5), vec(0, 0, 0).lerp(vec(1, 1, 1), 0.5) - assert_equal vec(0.5, 0.5, 0.5), vec(0, 0, 0).lerp( 1, 1, 1, 0.5) - assert_equal vec(0.5, 0.5, 0.5), V.lerp(vec(0, 0, 0), vec(1, 1, 1), 0.5) + assert_equal_vector vec(0.5, 0.5, 0.5), vec(0, 0, 0).lerp(vec(1, 1, 1), 0.5) + assert_equal_vector vec(0.5, 0.5, 0.5), vec(0, 0, 0).lerp( 1, 1, 1, 0.5) + assert_equal_vector vec(0.5, 0.5, 0.5), V.lerp(vec(0, 0, 0), vec(1, 1, 1), 0.5) end def test_random2D () v1 = V.random2D v2 = V.random2D