getCouleur() . " Direction: " . $piece->getDirection() . "\n"; echo "Constantes: VIDE = " . PieceSquadro::VIDE . ", NEUTRE = " . PieceSquadro::NEUTRE . "\n\n"; } /** * Teste l'initialisation d'une pièce neutre. */ public function testInitNeutre() { $piece = PieceSquadro::initNeutre(); echo "Test Init Neutre: "; echo "Couleur: " . $piece->getCouleur() . " Direction: " . $piece->getDirection() . "\n"; echo "Constantes: NEUTRE = " . PieceSquadro::NEUTRE . "\n\n"; } /** * Teste l'initialisation d'une pièce noire orientée au nord. */ public function testInitNoirNord() { $piece = PieceSquadro::initNoirNord(); echo "Test Init Noir Nord: "; echo "Couleur: " . $piece->getCouleur() . " Direction: " . $piece->getDirection() . "\n"; echo "Constantes: NOIR = " . PieceSquadro::NOIR . ", NORD = " . PieceSquadro::NORD . "\n\n"; } /** * Teste l'initialisation d'une pièce noire orientée au sud. */ public function testInitNoirSud() { $piece = PieceSquadro::initNoirSud(); echo "Test Init Noir Sud: "; echo "Couleur: " . $piece->getCouleur() . " Direction: " . $piece->getDirection() . "\n"; echo "Constantes: NOIR = " . PieceSquadro::NOIR . ", SUD = " . PieceSquadro::SUD . "\n\n"; } /** * Teste l'initialisation d'une pièce blanche orientée à l'est. */ public function testInitBlancEst() { $piece = PieceSquadro::initBlancEst(); echo "Test Init Blanc Est: "; echo "Couleur: " . $piece->getCouleur() . " Direction: " . $piece->getDirection() . "\n"; echo "Constantes: BLANC = " . PieceSquadro::BLANC . ", EST = " . PieceSquadro::EST . "\n\n"; } /** * Teste l'initialisation d'une pièce blanche orientée à l'ouest. */ public function testInitBlancOuest() { $piece = PieceSquadro::initBlancOuest(); echo "Test Init Blanc Ouest: "; echo "Couleur: " . $piece->getCouleur() . " Direction: " . $piece->getDirection() . "\n"; echo "Constantes: BLANC = " . PieceSquadro::BLANC . ", OUEST = " . PieceSquadro::OUEST . "\n\n"; } /** * Teste la méthode __toString(). */ public function testToString() { $piece = PieceSquadro::initNoirNord(); echo "Test ToString: "; echo (string)$piece . "\n"; echo "Constantes: NOIR = " . PieceSquadro::NOIR . ", NORD = " . PieceSquadro::NORD . "\n\n"; } /** * Teste la méthode inverseDirection(). */ public function testInverseDirection() { // vérif retournement pièces blanches $piece = PieceSquadro::initBlancOuest(); $piece->inverseDirection(); echo "Test InverseDirection (Blanc Ouest -> Est): "; echo "Direction: " . $piece->getDirection() . "\n"; echo "Constantes: EST = " . PieceSquadro::EST . ", OUEST = " . PieceSquadro::OUEST . "\n\n"; // vérif retournement pièces noires $piece = PieceSquadro::initNoirNord(); $piece->inverseDirection(); echo "Test InverseDirection (Noir Nord -> Sud): "; echo "Direction: " . $piece->getDirection() . "\n"; echo "Constantes: NORD = " . PieceSquadro::NORD . ", SUD = " . PieceSquadro::SUD . "\n\n"; } /** * Test la réversibilité de la méthode toJson avec la méthode fromJson. */ public function testJson() { $piece = PieceSquadro::initNoirNord(); $json = $piece->toJson(); $pieceFromJson = PieceSquadro::fromJson($json); echo "Test Json: \n"; echo "Json: $json\n"; echo "FromJson Couleur: " . $pieceFromJson->getCouleur() . " Direction: " . $pieceFromJson->getDirection() . "\n"; echo "Constantes: NOIR = " . PieceSquadro::NOIR . ", NORD = " . PieceSquadro::NORD . "\n\n"; } } // Exécution des tests $test = new PieceSquadroTest(); $test->testInitVide(); $test->testInitNeutre(); $test->testInitNoirNord(); $test->testInitNoirSud(); $test->testInitBlancEst(); $test->testInitBlancOuest(); $test->testToString(); $test->testInverseDirection(); $test->testJson(); ?>