def test_Point(): A = Point(1, 2) assert(isinstance(A.etiquette, Label_point)) assertEqual(A.x, 1) assertEqual(A.y, 2) assertEqual(type(A.coordonnees), tuple) A.x = 5 A.y = 7 assertEqual(A.coordonnees, (5, 7)) assert(A.mode_affichage == NOM) # Test du typage dynamique d = Droite(rand_pt(), rand_pt()) B = Point(d) assert(isinstance(B, Glisseur_droite)) c = Cercle(A, 3) C = Point(c) assert(isinstance(C, Glisseur_cercle)) d = Demidroite(rand_pt(), rand_pt()) B = Point(d) assert(isinstance(B, Glisseur_demidroite)) s = Segment(rand_pt(), rand_pt()) B = Point(s) assert(isinstance(B, Glisseur_segment)) a = Arc_points(Point(), Point(1, 1), Point(1, 2)) B = Point(a) assert(isinstance(B, Glisseur_arc_cercle))
def test_proprietes(): A = Point(0, 0) B = Point(2, 0) C = Point(2, 1) D = Point(0, 1) p = Polygone(A, B, C, D) assert p.rectangle assert not p.losange assert not p.carre assert p.parallelogramme assert p.trapeze C.x = 3 assert not p.rectangle assert not p.losange assert not p.carre assert not p.parallelogramme assert p.trapeze C.y = 4 A = Point(0, 0) B = Point(1, -2) C = Point(2, 0) D = Point(1, 2) p = Polygone(A, B, C, D) assert not p.rectangle assert p.losange assert not p.carre assert p.parallelogramme assert p.trapeze
def test_Projete_cercle(): c = Cercle_equation(1, -2, -20) assert(c.existe) A = Point(randint(50) - randint(50) + random(), randint(50) - randint(50) + random()) P = Projete_cercle(A, c) assert(P.existe) assert(P in c) assert(P in Demidroite(c.centre, A)) A.coordonnees = c.centre.coordonnees assert(not P.existe)
def test_Projete_arc_cercle(): O = Point(23.15, -12.75) A = Point(-12.5, 7.14) B = Point(7.15, 8.64) a = Arc_cercle(O, A, B) M = rand_pt() P = Projete_arc_cercle(M, a) assert(P in a) M.coordonnees = a.centre.coordonnees assert(not P.existe) M.coordonnees = -17.826266675199999, 11.760911186 assert(type(P.coordonnees) is tuple) assertAlmostEqual(A.coordonnees, P.coordonnees) assert A.confondu(P)
def test_Projete_demidroite(): d = Demidroite(rand_pt(), rand_pt()) M = rand_pt() assert(Projete_demidroite(M, d) in d) A = Point(0, 1) B = Point(2, 1) s = Demidroite(A, B) M = Point(1, 7.15) P = Projete_demidroite(M, s) assertAlmostEqual(Milieu(A, B).coordonnees, P.coordonnees) M.x = .5 assertAlmostEqual(Barycentre((A, 3), (B, 1)).coordonnees, P.coordonnees) M.x = -1 assertAlmostEqual(A.coordonnees, P.coordonnees) M.x = 3 assertAlmostEqual(Barycentre((A, -1), (B, 3)).coordonnees, P.coordonnees)
def test_Projete_segment(): s = Segment(rand_pt(), rand_pt()) M = rand_pt() assert(Projete_segment(M, s) in s) A = Point(0, 1) B = Point(2, 1) s = Segment(A, B) M = Point(1, 7.15) P = Projete_segment(M, s) assertAlmostEqual(Milieu(A, B).coordonnees, P.coordonnees) M.x = .5 assertAlmostEqual(Barycentre((A, 3), (B, 1)).coordonnees, P.coordonnees) M.x = -1 assertAlmostEqual(A.coordonnees, P.coordonnees) M.x = 3 assertAlmostEqual(B.coordonnees, P.coordonnees)
def test_Segment(): A = Point(4.5, 7.3) B = Point(4, 2.1) s = Segment(A, B) assert(isinstance(s.etiquette, Label_segment)) assertAlmostEqual(s.longueur, sqrt((B.x - A.x)**2 + (B.y - A.y)**2)) I = Milieu(s.point1, s.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 s) assert(M not in s) assert(N not in s) assert(s.mode_affichage == 'rien') K = Point(s, 0.5) assert K.confondu(I)
def test_Homothetie(): A = Point(1, -2) h = Homothetie(A, -3) M = Point(2, 7) assertAlmostEqual(h(M).coordonnees, (-2, -29)) assert(h(A) is A)
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)
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'}$")