def test_Secteur_angulaire(): u = Vecteur_libre(5.458, -2.546) v = Vecteur_libre(-5.75, 12.6) P = Point(2.54, -5.68) a = Secteur_angulaire(P, u, v) assert (isinstance(a.etiquette, Label_angle)) assertAlmostEqual(a.val, 2.43538435941) assertAlmostEqual(a.degre, 139.537245287)
def test_Droite_vectorielle(): v = Vecteur_libre(1, 7) A = Point(-2, 3) d = Droite_vectorielle(A, v) assert (d.vecteur is v and d.point is A) assertAlmostEqual(v.y / v.x, -d.equation[0] / d.equation[1]) B = rand_pt() d1 = Droite_vectorielle(B, v) assert (d.parallele(d1))
def test_Point_translation(): u = Vecteur_libre(1.56, 2.78) v = Vecteur(Point(1.1457, 2.7895), Point(2.458, -8.25)) A = Point(5.256, -7.231) tu = Translation(u) tv = Translation(v) Au = Point_translation(A, tu) Av = Point_translation(A, tv) assertAlmostEqual(Au.coordonnees, (6.816, -4.451)) assertAlmostEqual(Av.coordonnees, (6.5683, -18.2705))
def test_Point_final(): A = Point(random(), random()) C = Point(random(), random()) u = Vecteur_libre(random(), random()) v = Vecteur(Point(random(), random()), Point(random(), random())) w = Representant( Vecteur(Point(random(), random()), Point(random(), random())), A) F = Point_final(C, (u, v, w), (-2, 1.5, 4)) assertEqual(type(F.coordonnees), tuple) assertAlmostEqual(F.x, C.x - 2 * u.x + 1.5 * v.x + 4 * w.x) assertAlmostEqual(F.y, C.y - 2 * u.y + 1.5 * v.y + 4 * w.y)
def test_Somme_vecteurs(): A = Point(1, 2) B = Point(2, 4) v = Vecteur(A, B) w = Vecteur_libre(-4, 5) u = Representant(v, Point(1, 2)) vec = 2 * u + 1 * v vec -= 5 * w assert (tuple(vec.coordonnees) == (23, -19)) assertEqual(type(vec.coordonnees), tuple) assertEqual(vec.coordonnees, Somme_vecteurs((u, v, w), (2, 1, -5)).coordonnees)
def test_Droite(): A = Point(4.5, 7.3) B = Point(4, 2.1) d = Droite(A, B) assert (isinstance(d.etiquette, Label_droite)) assertRaises(AttributeError, getattr, d, "longueur") I = Milieu(d.point1, d.point2) assertEqual(I.coordonnees, ((A.x + B.x) / 2, (A.y + B.y) / 2)) M = Barycentre((A, 1), (B, -2)) N = Barycentre((A, -2), (B, 1)) assert (I in d) assert (M in d) assert (N in d) assert (isinstance(d.equation, tuple)) assert (d.style("legende") == RIEN) # Test du typage dynamique d = Droite("y=x+1") assert (Point(0, 1) in d) d = Droite(Point(1, 2), Vecteur_libre(1, 1)) assert (Point(1, 2) in d) assert (Point(2, 3) in d) d2 = Droite("y=-x+1") assert (Point(0, 1) in d2) assert (Point(1, 0) in d2)
def test_Vecteur_libre(): u = Vecteur_libre(1, -2) u.y = -3 assertEqual(u.norme, sqrt(10)) assertEqual(type(u.coordonnees), tuple)
def test_Vecteur_unitaire(): u = Vecteur_unitaire(Vecteur_libre(random(), random())) assertAlmostEqual(u.norme, 1) assertEqual(type(u.coordonnees), tuple)
def test_Angle_vectoriel(): u = Vecteur_libre(5.458, -2.546) v = Vecteur_libre(-5.75, 12.6) a = Angle_vectoriel(u, v) assertAlmostEqual(a.val, 2.43538435941)
def rand_vec(): return Vecteur_libre(rand(), rand())
def test_Translation(): v = Vecteur_libre(random()+randint(50)-randint(50), random()+randint(50)-randint(50)) t = Translation(v) M = Point(random()+randint(50)-randint(50), random()+randint(50)-randint(50)) assertAlmostEqual(M.x + v.x, t(M).x) assertAlmostEqual(M.y + v.y, t(M).y)