getCouleur() . " Direction: " . $piece->getDirection() . "\n"; echo "Constantes: VIDE = " . PieceSquadro::VIDE . ", NEUTRE = " . PieceSquadro::NEUTRE . "\n\n"; } /** * Teste l'initialisation d'une pièce neutre. * * Vérifie que la méthode initNeutre retourne une pièce avec une couleur neutre. * * @return void */ 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. * * Vérifie que la méthode initNoirNord retourne une pièce noire correctement orientée. * * @return void */ 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. * * @return void */ 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. * * @return void */ 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. * * @return void */ 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(). * * Vérifie que la méthode __toString retourne une chaîne de caractères * représentant correctement une pièce. * * @return void */ 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(). * * Vérifie que les directions des pièces peuvent être inversées * correctement (par exemple : Nord -> Sud ou Ouest -> Est). * * @return void */ 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"; } /** * Teste la réversibilité de la méthode toJson avec la méthode fromJson. * * Vérifie que les données JSON produites par toJson peuvent être correctement * converties en un objet avec fromJson. * * @return void */ 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(); ?>