def test_operations(): for i in xrange(10): a = randint(50) - randint(50) b = randint(50) - randint(50) if i >= 5: a += random() b += random() u = Variable(a) v = Variable(b) # Test opérations : if i < 5: assertEqual(u + v, a + b) assertEqual(u - v, a - b) assertEqual(u * v, a * b) if a != 0: assertEqual(u**v, a**b) if b != 0: assertEqual(u / v, a / b) assertEqual(u // v, a // b) assertEqual(u % v, a % b) else: assertAlmostEqual(u + v, a + b) assertAlmostEqual(u - v, a - b) assertAlmostEqual(u * v, a * b) if a != 0: assertAlmostEqual(abs(u)**v, abs(a)**b) # Test assignations : u += v a += b assertEqual(u, a) u *= v a *= b assertEqual(u, a)
def test_Point_reflexion(): d = Droite_equation(1, 6, -2) r = Reflexion(d) M = Point(random() + randint(50) - randint(50), random() + randint(50) - randint(50)) m = Mediatrice(M, Point_reflexion(M, r)) assertAlmostEqual(d.equation_reduite, m.equation_reduite)
def test_operations(): for i in range(10): a = randint(50) - randint(50) b = randint(50) - randint(50) if i >= 5: a += random() b += random() u = Variable(a) v = Variable(b) # Test opérations : if i < 5: assertEqual(u.val+v.val, a+b) assertEqual(u.val-v.val, a-b) assertEqual(u.val*v.val, a*b) if a !=0: assertEqual(u.val**v.val, a**b) if b != 0: assertEqual(u.val/v.val, a/b) assertEqual(u.val//v.val, a//b) assertEqual(u.val%v.val, a%b) else: assertAlmostEqual(u.val+v.val, a+b) assertAlmostEqual(u.val-v.val, a-b) assertAlmostEqual(u.val*v.val, a*b) if a != 0: assertAlmostEqual(abs(u.val)**v.val, abs(a)**b) # Test assignations : u.val += v.val a += b assertEqual(u.val, a) u.val *= v.val a *= b assertEqual(u.val, a)
def test_operations(): for i in xrange(10): a = randint(50) - randint(50) b = randint(50) - randint(50) if i >= 5: a += random() b += random() u = Variable(a) v = Variable(b) # Test opérations : if i < 5: assertEqual(u+v, a+b) assertEqual(u-v, a-b) assertEqual(u*v, a*b) if a !=0: assertEqual(u**v, a**b) if b != 0: assertEqual(u/v, a/b) assertEqual(u//v, a//b) assertEqual(u%v, a%b) else: assertAlmostEqual(u+v, a+b) assertAlmostEqual(u-v, a-b) assertAlmostEqual(u*v, a*b) if a != 0: assertAlmostEqual(abs(u)**v, abs(a)**b) # Test assignations : u += v a += b assertEqual(u, a) u *= v a *= b assertEqual(u, a)
def test_Reflexion(): d = Droite_equation(1, 6, -2) r = Reflexion(d) M = Point(random()+randint(50)-randint(50), random()+randint(50)-randint(50)) m = Mediatrice(M, r(M)) assertAlmostEqual(d.equation_reduite, m.equation_reduite) assert(r(d) is d)
def test_erreurs_mathematiques(): u = Variable(randint(50) - randint(50)+random()) def diviser(x, y): return x/y assertRaises(ZeroDivisionError, diviser, u.val, 0) def puissance(x, y): return x**y assertRaises(OverflowError, puissance, Variable(25.17).val, 10000)
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_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_erreurs_mathematiques(): u = Variable(randint(50) - randint(50) + random()) def diviser(x, y): return x / y assertRaises(ZeroDivisionError, diviser, u, 0) def puissance(x, y): return x**y assertRaises(OverflowError, puissance, Variable(25.17), 10000)
def test_Droite_equation(): a = randint(50) - randint(50) + 0.1 # afin que a ne soit pas nul b = randint(50) - randint(50) + random() c = randint(50) - randint(50) + random() d, e, f = Droite_equation(a, b, c).equation assertAlmostEqual((e / d, f / d), (b / a, c / a)) assertEqual(Droite_equation(a, 0, 0).equation[1:], (0, 0)) assertEqual((Droite_equation(0, a, 0).equation[0], Droite_equation( 0, a, 0).equation[2]), (0, 0)) assert (not Droite_equation(0, 0, 0).existe) d = Droite_equation("y=-5/2x-3/2") assert (Point(0, -1.5) in d) assert (Point(-1, 1) in d) d = Droite_equation("x=2*10**2") assert (Point(200, -1000) in d) assert (Point(100, -1000) not in d) d = Droite_equation("2*x+2*y=1") assert (Point(0.5, 0) in d) assert (Point(1, -0.5) in d) d = Droite_equation("x+y=1") assert (Point(0, 1) in d) assert (Point(1, 0) in d) d = Droite_equation("x+2y=-2") assert (Point(0, -1) in d) assert (Point(-2, 0) in d)
def test_Polygone_regulier_centre(): O = rand_pt() M = rand_pt() p = Polygone_regulier_centre(O, M, 15) assert(len(p.cotes) == 15) assert(p.centre is O) for Mi in p.sommets: assertAlmostEqual(Segment(O, Mi).longueur, Segment(O, M).longueur) for i in xrange(10): coeffs = tuple(random() for i in xrange(15)) G = Barycentre(*zip(p.sommets, coeffs)) assert(G in p) G.points_ponderes[randint(11)].coefficient = -5 assert(G not in p) # cas particuliers : p = Polygone_regulier_centre(O, M, 3) assert(isinstance(p, Triangle)) p = Polygone_regulier_centre(O, M, 4) assert(isinstance(p, Quadrilatere)) assert(len(str(p.points)) < 30000)
def test_Symetrie_centrale(): M = Point(random()+randint(50)-randint(50), random()+randint(50)-randint(50)) A = Point(random()+randint(50)-randint(50), random()+randint(50)-randint(50)) s = Symetrie_centrale(A) assertAlmostEqual(Milieu(M, s(M)).coordonnees, A.coordonnees) assert(s(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)