class Action(object): def __init__(self, voiture_id, startposition, map): self.position = startposition self.voiture = Voiture(voiture_id, startposition) self.map = map def get_vision(self, x, y): #voiture_position = self.voiture.position() #position = Position(voiture_position.x + x, voiture_position.y + y) hypotenus = math.sqrt(x*x + y*y) angleVison= math.acos(x/hypotenus) if y <0: angleVison = angleVison*-1 radian_angle = math.radians(self.voiture._angle) pos_voiture_X = self.voiture.position.x + int(round((hypotenus*10) * math.cos(radian_angle+ angleVison))) pos_voiture_Y = self.voiture.position.y + int(round((hypotenus*10) * math.sin(radian_angle+ angleVison))) posX = int(round(pos_voiture_X/10)) posY = int(round(pos_voiture_Y/10)) if posX >= 0 and posY >= 0 and posX < 80 and posY < 60: posX = str(posX) posY = str(posY) CaseValue = self.map['cases'][posY][posX] if CaseValue == 2: CaseValue = CaseValue return CaseValue else: return -1 def tourner_voiture(self): angle = self.voiture.tourner() return angle def accelerer_voiture(self, acceleration): vitesse = self.voiture.accelerer(acceleration) return vitesse def tourner_volant_voiture(self, angle_volant): angle_volant = self.voiture.angle_volant = angle_volant return angle_volant def get_vitesse(self): return self.voiture.get_vitesse
def __init__(self, voiture_id, startposition, map): self.position = startposition self.voiture = Voiture(voiture_id, startposition) self.map = map
def setUp(self): position = {"x":0,"y":0} self.voiture = Voiture(1,position) self.voiture.angle_volant = 300
def test_angle_volant(self): self.assertEqual(self.voiture.angle_volant, Voiture.angle_volant_max(), "test angle volant : echec")
class TestVoitureFunctions(unittest.TestCase): def setUp(self): position = {"x":0,"y":0} self.voiture = Voiture(1,position) self.voiture.angle_volant = 300 def test_voiture_ctr(self): self.assertIsInstance(self.voiture, Voiture, "test instanciation voiture : echec") def test_angle_volant(self): self.assertEqual(self.voiture.angle_volant, Voiture.angle_volant_max(), "test angle volant : echec") def test_tourner_voiture(self): self.voiture.tourner() self.voiture.tourner() self.assertEqual(self.voiture._angle, 60, "test angle voiture : echec") def test_accelerer_voiture(self): self.test_tourner_voiture() self.voiture.accelerer(2.0) self.voiture.accelerer(1.8) self.voiture.accelerer(1.6) self.voiture.accelerer(2) self.assertAlmostEqual(self.voiture._vitesse, 11.52, None, "test vitesse voiture (acceleration) : echec", 0.0000001) def test_freiner_voiture(self): self.voiture.accelerer(2.0) self.voiture.accelerer(2.0) self.voiture.accelerer(0.6) self.assertAlmostEqual(self.voiture._vitesse, 2.4, None, "test vitesse voiture (freinage) : echec", 0.0000001) def test_avancer_voiture(self): self.voiture.accelerer(2.0) self.voiture.accelerer(2.0) self.voiture.accelerer(2.0) self.voiture.accelerer(2.0) self.voiture.tourner() self.voiture.avancer() self.assertEqual(self.voiture._position, {'y':8, 'x':14}, "test position voiture : echec")