def test_Swarm_boidVelocities(): xs = [0.0,1.0,2.0] ys = [1.0,2.0,3.0] vxs = [4.0,5.0,6.0] vys = [5.0,6.0,7.0] swarm = Swarm() swarm.hatch_test(xs,ys,vxs,vys,len(xs),behaviour) assert_equal(swarm.boidVelocities()[0],vxs) assert_equal(swarm.boidVelocities()[1],vys)
def test_Swarm_update(): xs = [0.0] ys = [1.0] vxs = [2.0] vys = [3.0] swarm = Swarm() swarm.hatch_test(xs,ys,vxs,vys,len(xs),behaviour) swarm.update() assert_equal(swarm.members[0].position[0],0.0+2.0) assert_equal(swarm.members[0].position[1],1.0+3.0) assert_equal(swarm.members[0].velocity[0],2.0) assert_equal(swarm.members[0].velocity[1],3.0)
def test_Swarm_hatch(): swarm = Swarm() swarm.hatch(50,behaviour) assert_equal(swarm.size,50) assert_equal(len(swarm.members),50) for boid in swarm.members: assert_greater(boid.position[0],-450) assert_less(boid.position[0],50) assert_greater(boid.position[1],300) assert_less(boid.position[1],600) assert_greater(boid.velocity[0],0) assert_less(boid.velocity[0],10) assert_greater(boid.velocity[1],-20) assert_less(boid.velocity[1],20)
def test_OO_boids_regression(): regression_data=yaml.load(open(os.path.join(os.path.dirname(__file__),'fixtures','fixture.yml'))) boid_data=regression_data["before"] swarm = Swarm() swarm.hatch_test(boid_data[0],boid_data[1],boid_data[2],boid_data[3],len(boid_data[0]),behaviour) swarm.update() true_after = regression_data["after"] true_x = true_after[0] true_y = true_after[1] true_vx = true_after[2] true_vy = true_after[3] test_x, test_y = swarm.boidPositions() test_vx, test_vy = swarm.boidVelocities() for test_x_val,true_x_val in zip(test_x,true_x): assert_almost_equal(test_x_val,true_x_val,delta=0.01) for test_y_val,true_y_val in zip(test_y,true_y): assert_almost_equal(test_y_val,true_y_val,delta=0.01) for test_vx_val,true_vx_val in zip(test_vx,true_vx): assert_almost_equal(test_vx_val,true_vx_val,delta=0.01) for test_vy_val,true_vy_val in zip(test_vy,true_vy): assert_almost_equal(test_vy_val,true_vy_val,delta=0.01)
def test_Swarm_hatch_test(): xs = [0.0,1.0,2.0] ys = [1.0,2.0,3.0] vxs = [4.0,5.0,6.0] vys = [5.0,6.0,7.0] swarm = Swarm() swarm.hatch_test(xs,ys,vxs,vys,len(xs),behaviour) assert_equal(swarm.size,3) for i in range(3): for j in range(2): assert_equal(swarm.members[i].position[j],i+j) for i in range(3): for j in range(2): assert_equal(swarm.members[i].velocity[j],i+j+4)