test/test_zyps.rb in zyps-0.1.1 vs test/test_zyps.rb in zyps-0.2.1

- old
+ new

@@ -18,15 +18,35 @@ require 'zyps' require 'test/unit' +class TestGameObject < Test::Unit::TestCase + + + def test_move + #Set up moving object. + object = GameObject.new + object.location = Location.new(0, 0) + object.vector = Vector.new(1.4142, 45) + #Move for 1 second. + object.move(1) + #Check object moved to expected coordinates. + assert_in_delta(1, object.location.x, 0.001) + assert_in_delta(1, object.location.y, 0.001) + end + + +end + + class TestCreature < Test::Unit::TestCase def test_default_initialization creature = Creature.new + assert_not_nil(creature.identifier) assert_equal(0, creature.location.x) assert_equal(0, creature.location.y) assert_equal(1, creature.color.red) assert_equal(1, creature.color.green) assert_equal(1, creature.color.blue) @@ -34,10 +54,12 @@ assert_equal(0, creature.vector.pitch) assert_equal(nil, creature.name) assert_in_delta(0, creature.age, 0.1) assert_equal([], creature.tags) assert_equal([], creature.behaviors) + #Identifiers should be unique. + assert_not_equal(creature.identifier, Creature.new.identifier) end def test_explicit_initialization behavior = Behavior.new @@ -96,11 +118,12 @@ @environment.interact #Look for expected interactions (each should only occur once). assert(@interactions.find_all{|i| i == "2 targeting 1"}.length == 1) assert(@interactions.find_all{|i| i == "1 targeting 2"}.length == 1) - #TODO: Ensure creatures don't target selves. + assert(@interactions.find_all{|i| i == "1 targeting 1"}.length == 0) + assert(@interactions.find_all{|i| i == "2 targeting 2"}.length == 0) end def test_environmental_factors @@ -303,8 +326,34 @@ assert_in_delta(1.4142, Utility.find_distance(origin, Location.new(1,1)), 0.001) assert_in_delta(1.4142, Utility.find_distance(origin, Location.new(-1,1)), 0.001) assert_in_delta(1.4142, Utility.find_distance(origin, Location.new(-1,-1)), 0.001) assert_in_delta(1.4142, Utility.find_distance(origin, Location.new(1,-1)), 0.001) end + + + def test_find_reflection_angle + assert_equal(210, Utility.find_reflection_angle(0, 150)) + assert_equal(330, Utility.find_reflection_angle(0, 30)) + assert_equal(150, Utility.find_reflection_angle(90, 30)) + assert_equal(210, Utility.find_reflection_angle(90, 330)) + assert_equal(30, Utility.find_reflection_angle(180, 330)) + assert_equal(150, Utility.find_reflection_angle(180, 210)) + assert_equal(330, Utility.find_reflection_angle(270, 210)) + assert_equal(30, Utility.find_reflection_angle(270, 150)) + end -end + def test_inside_box? + #Too far left. + assert(! Utility.inside_box?(Location.new(1, 3), Location.new(2, 2), Location.new(4, 4))) + #Too far right. + assert(! Utility.inside_box?(Location.new(5, 3), Location.new(2, 2), Location.new(4, 4))) + #Too far up. + assert(! Utility.inside_box?(Location.new(3, 1), Location.new(2, 2), Location.new(4, 4))) + #Too far down. + assert(! Utility.inside_box?(Location.new(3, 5), Location.new(2, 2), Location.new(4, 4))) + #Inside. + assert(Utility.inside_box?(Location.new(3, 3), Location.new(2, 2), Location.new(4, 4))) + end + + +end \ No newline at end of file