def test_get_radians_to_tank(self):
     tank_1 = Tank('tank_1', 100.0, 2.0, 2.0, 'TankFast', [0, 0], 0.0, 0.0, 10.0, [])
     tank_2 = Tank('tank_2', 100.0, 2.0, 2.0, 'TankFast', [100, 100], 0.0, 0.0, 10.0, [])
     # 45 degrees CCW
     self.assertAlmostEquals(tank_1.get_rads_to_tank(tank_2), 0.785398163397)
     # 135 degrees CW
     self.assertAlmostEquals(tank_2.get_rads_to_tank(tank_1), -2.35619449019)
 def test_get_point_turret_to_tank(self):
     tank_1 = Tank('tank_1', 100.0, 2.0, 2.0, 'TankFast', [0, 0], 0.0, 0.0, 10.0, [])
     tank_2 = Tank('tank_2', 100.0, 2.0, 2.0, 'TankFast', [100, 100], 0.0, 0.0, 10.0, [])
     # 45 degrees CCW
     self.assertEquals(tank_1.get_direction_rotation_turret_to_tank(tank_2), ('CCW', 0.7853981633974483))
     # 135 degrees CW
     self.assertEquals(tank_2.get_direction_rotation_turret_to_tank(tank_1), ('CW', 2.356194490192345))
    def test_get_tank_distances(self):
        tank_1 = Tank('tank_1', 100.0, 2.0, 2.0, 'TankFast', [0, 0], 0.0, 0.0, 10.0, [])
        tank_2 = Tank('tank_2', 100.0, 2.0, 2.0, 'TankFast', [100, 100], 0.0, 0.0, 10.0, [])
        tank_3 = Tank('tank_3', 100.0, 2.0, 2.0, 'TankFast', [200, 200], 0.0, 0.0, 10.0, [])
        tank_4 = Tank('tank_4', 100.0, 2.0, 2.0, 'TankFast', [300, 300], 0.0, 0.0, 10.0, [])
        test_target_tanks = [tank_1, tank_2, tank_3, tank_4]

        origin_tank = Tank('origin_tank', 100.0, 2.0, 2.0, 'TankFast', [-1, -1], 0.0, 0.0, 10.0, [])
        self.assertEquals(origin_tank.get_all_dist_tank(test_target_tanks),
                          [(1.4142135623730951, tank_1), (142.8355697996826, tank_2), (284.2569260369921, tank_3),
                           (425.67828227430164, tank_4)])
    def test_get_closest_tank(self):
        tank_1 = Tank('tank_1', 100.0, 2.0, 2.0, 'TankFast', [0, 0], 0.0, 0.0, 10.0, [])
        tank_2 = Tank('tank_2', 100.0, 2.0, 2.0, 'TankFast', [100, 100], 0.0, 0.0, 10.0, [])
        tank_3 = Tank('tank_3', 100.0, 2.0, 2.0, 'TankFast', [200, 200], 0.0, 0.0, 10.0, [])
        tank_4 = Tank('tank_4', 100.0, 2.0, 2.0, 'TankFast', [300, 300], 0.0, 0.0, 10.0, [])
        test_target_tanks = [tank_1, tank_2, tank_3, tank_4]

        origin_tank = Tank('origin_tank', 100.0, 2.0, 2.0, 'TankFast', [-1, -1], 0.0, 0.0, 10.0, [])
        closet_tank = origin_tank.get_closest_dist_tank(test_target_tanks)
        self.assertEquals(closet_tank, (1.4142135623730951, tank_1))

        origin_tank = Tank('origin_tank', 100.0, 2.0, 2.0, 'TankFast', [210, 190], 0.0, 0.0, 10.0, [])
        closet_tank = origin_tank.get_closest_dist_tank(test_target_tanks)
        self.assertEquals(closet_tank, (14.142135623730951, tank_3))

        origin_tank = Tank('origin_tank', 100.0, 2.0, 2.0, 'TankFast', [100, 100], 0.0, 0.0, 10.0, [])
        closet_tank = origin_tank.get_closest_dist_tank(test_target_tanks)
        self.assertEquals(closet_tank, (0.0, tank_2))

        origin_tank = Tank('origin_tank', 100.0, 2.0, 2.0, 'TankFast', [999, 999], 0.0, 0.0, 10.0, [])
        closet_tank = origin_tank.get_closest_dist_tank(test_target_tanks)
        self.assertEquals(closet_tank, (988.5352800987935, tank_4))