projet-mini-programmation-o.../SujetCercleTest.java
2023-06-20 21:03:42 +02:00

136 lines
3.7 KiB
Java

import java.awt.Color;
import org.junit.*;
import static org.junit.Assert.*;
/**
* Classe de test (incomplète) de la classe Cercle.
* @author Xavier Crégut
* @version $Revision$
*/
public class SujetCercleTest {
// précision pour les comparaisons réelle
public final static double EPSILON = 0.001;
// Les points du sujet
private Point A, B, C, D, E;
// Les cercles du sujet
private Cercle C1, C2;
@Before public void setUp() {
// Construire les points
A = new Point(1, 2);
B = new Point(2, 1);
C = new Point(4, 1);
D = new Point(8, 1);
E = new Point(8, 4);
// Construire les cercles
C1 = new Cercle(A, 2.5);
C2 = new Cercle(new Point(6, 1), 2);
C2.setCouleur(Color.yellow);
}
/** Vérifier si deux points ont mêmes coordonnées.
* @param p1 le premier point
* @param p2 le deuxième point
*/
static void memesCoordonnees(String message, Point p1, Point p2) {
assertEquals(message + " (x)", p1.getX(), p2.getX(), EPSILON);
assertEquals(message + " (y)", p1.getY(), p2.getY(), EPSILON);
}
@Test public void testerE11C1() {
memesCoordonnees("E11 : Centre de C1 incorrect", A, C1.getCentre());
assertEquals("E11 : Rayon de C1 incorrect",
2.5, C1.getRayon(), EPSILON);
assertEquals(Color.blue, C1.getCouleur());
}
@Test public void testerE1() {
C1.translater(10, 20);
memesCoordonnees("E1 sur C1", new Point(11, 22), C1.getCentre());
C2.translater(3, -1);
memesCoordonnees("E1 sur C2", new Point(9, 0), C2.getCentre());
}
@Test public void testerE1negatifs() {
C2.translater(-10, -7);
memesCoordonnees("E1 sur C2", new Point(-4, -6), C2.getCentre());
}
@Test public void testerE2() {
memesCoordonnees("E2 sur C1", A, C1.getCentre());
memesCoordonnees("E2 sur C2", new Point(6, 1), C2.getCentre());
}
@Test public void testerE3() {
assertEquals("E3 sur C1", 2.5, C1.getRayon(), EPSILON);
assertEquals("E3 sur C2", 2.0, C2.getRayon(), EPSILON);
}
@Test public void testerE4() {
assertEquals("E4 sur C1", 5.0, C1.getDiametre(), EPSILON);
assertEquals("E4 sur C2", 4.0, C2.getDiametre(), EPSILON);
}
@Test public void testerE5() {
assertTrue("E5", C1.contient(A));
assertTrue("E5", C1.contient(B));
assertFalse("E5", C1.contient(C));
assertFalse("E5", C1.contient(D));
assertFalse("E5", C1.contient(E));
assertFalse("E5", C1.contient(C));
assertFalse("E5", C1.contient(new Point(3, 4)));
assertTrue("E5", new Cercle(D, 3).contient(E));
}
@Test public void testerE6() {
assertEquals("E6", 5*Math.PI, C1.perimetre(), EPSILON);
assertEquals("E6", 4*Math.PI, C2.perimetre(), EPSILON);
assertEquals("E6", 6.25*Math.PI, C1.aire(), EPSILON);
assertEquals("E6", 4*Math.PI, C2.aire(), EPSILON);
}
@Test public void testerE9() {
assertEquals("E9", Color.blue, C1.getCouleur());
assertEquals("E9", Color.yellow, C2.getCouleur());
}
@Test public void testerE10() {
C1.setCouleur(Color.red);
assertEquals("E10", Color.red, C1.getCouleur());
}
@Test public void testerToString() {
assertEquals("E15: toString() redéfinie ? Correctement ?",
"C2.5@(1.0, 2.0)", C1.toString());
}
@Test public void testerE16() {
C1.setRayon(10);
assertEquals(10, C1.getRayon(), EPSILON);
C1.setRayon(20);
assertEquals(20, C1.getRayon(), EPSILON);
}
@Test public void testerE17() {
C1.setDiametre(10);
assertEquals(5, C1.getRayon(), EPSILON);
C1.setDiametre(20);
assertEquals(10, C1.getRayon(), EPSILON);
}
@Test public void testerE18() {
C1.getCentre().translater(10, 20);
memesCoordonnees("E18 : erreur si translation du centre",
new Point(1, 2), C1.getCentre());
A.translater(10, 20);
memesCoordonnees("E18 : erreur si translation de A",
new Point(1, 2), C1.getCentre());
}
}