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