def test_transformations(): c = Cercle(('1/5', '4/5'), '1/3') h = Homothetie(('1', '1'), '5/7') v = Vecteur(c.centre, h.centre) c1 = h(c) v1 = Vecteur(c1.centre, h.centre) assert v1.coordonnees == tuple(h.rapport * array(v.coordonnees)) assert_eq('c1.centre.coordonnees', '(3/7, 6/7)', l()) assert_eq('c1.rayon', '5/21', l()) c.rayon = '2' assert_eq('c1.rayon', '10/7', l()) r = Rotation(('0', '1'), 'pi/3') c2 = r(c) t = Translation(('2/3', '-1/3')) c3 = t(c) m = Reflexion(Droite('y=x')) c4 = m(c) c.rayon = '3/7' assert_eq('c2.rayon', '3/7', l()) assert_eq('c2.centre.coordonnees', '(1/10 + 3**(1/2)/10, 9/10 + 3**(1/2)/10)', l()) assert_eq('c3.rayon', '3/7', l()) assert_eq('c3.centre.coordonnees', '(13/15, 7/15)', l()) assert_eq('c4.rayon', '3/7', l()) assert_eq('c4.centre.coordonnees', '(4/5, 1/5)', l())
def test_Parallelogramme(): A = rand_pt() B = rand_pt() C = rand_pt() p = Parallelogramme(A, B, C) D = p.sommets[3] assertEqual(Vecteur(A, B), Vecteur(D, C))
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_Vecteur(): A = Point(1, 2) B = Point(2, 4) v = Vecteur(A, B) assert (isinstance(v.etiquette, Label_vecteur)) assert (v.x == 1 and v.y == 2) assertEqual(v.norme, sqrt(5)) assertEqual(type(v.coordonnees), tuple) # Test du typage dynamique : assert (isinstance(Vecteur(1, 3), Vecteur_libre)) assert (Vecteur(1, 3).coordonnees == (1, 3))
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_Representant(): A = Point(1, 2) B = Point(2, 4) v = Vecteur(A, B) w = Representant(v, B) assert (w.x == v.x and w.y == v.y and w.z == v.z) assert (w.origine == v.point2) assertEqual(type(w.coordonnees), tuple) assertAlmostEqual(w.extremite.coordonnees, (3, 6)) assert (w._hierarchie < w.extremite._hierarchie < w._hierarchie + 1)
def test_noms_latex(): f = Feuille() f.objets.A = Point() assert(f.objets.A.nom == "A") assert(f.objets.A.nom_latex == "$A$") f.objets.B1 = Point() assert(f.objets.B1.nom == "B1") assert(f.objets.B1.nom_latex == "$B_{1}$") f.objets.C17 = Point() assert(f.objets.C17.nom == "C17") assert(f.objets.C17.nom_latex == "$C_{17}$") f.objets.objet5 = Point() assert(f.objets.objet5.nom == "objet5") assert(f.objets.objet5.nom_latex == "$objet_{5}$") f.objets.Delta = Point() assert(f.objets.Delta.nom == "Delta") assert(f.objets.Delta.nom_latex == "$\\Delta$") f.objets.delta = Point() assert(f.objets.delta.nom == "delta") assert(f.objets.delta.nom_latex == "$\\delta$") f.objets.phi15 = Point() assert(f.objets.phi15.nom == "phi15") assert(f.objets.phi15.nom_latex == "$\\phi_{15}$") f.objets.A_prime_prime = Point() assert(f.objets.A_prime_prime.nom == "A_prime_prime") assert(f.objets.A_prime_prime.nom_latex == "$A''$") f.objets["A'B'"] = Point() assert(f.objets.A_primeB_prime.nom == "A_primeB_prime") assert(f.objets.A_primeB_prime.nom_latex == "$A'B'$") f.objets.A_prime71 = Point() assert(f.objets.A_prime71.nom == "A_prime71") assert(f.objets.A_prime71.nom_latex == "$A'_{71}$") f.objets.A17B22 = Point() assert(f.objets.A17B22.nom == "A17B22") assert(f.objets.A17B22.nom_latex == "$A_{17}B_{22}$") f.objets.C_prime = Cercle() assert(f.objets.C_prime.nom_latex == "$\\mathscr{C}'$") f.objets.u = Vecteur() assert(f.objets.u.nom_latex == "$\\vec u$") f.objets.u_prime = Vecteur() assert(f.objets.u_prime.nom_latex == "$\\overrightarrow{u'}$")
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_redefinir(): f = Feuille() A = f.objets.A = Point() B = f.objets.B = Point() f.objets.AB = Segment(A, B) f.objets.AB.redefinir('Vecteur(A, B)') assert isinstance(f.objets.AB, Vecteur) assert f.objets.AB == Vecteur(A, B) f.objets.txt = Texte('Hello', 2, 3) f.objets.txt.redefinir("Texte('Bonjour', 1, 4)") assert isinstance(f.objets.txt, Texte) assert f.objets.txt.texte == 'Bonjour' assert f.objets.txt.coordonnees == (1, 4)