Untitled
plain_text
a month ago
7.1 kB
1
Indexable
Never
#include "Wordle.h" using namespace cs31; #include <iostream> #include <string> #include <cassert> #include "Move.h" using namespace std; int main() { //Test data (1) { Piece p1('P'); assert(p1.getLetter() == LETTER::P); assert(p1.getLetterAsString() == "P"); } { Piece p2("People"); assert(p2.getLetter() == LETTER::P); assert(p2.getLetterAsString() == "P"); } { Piece p3; assert(p3.getLetter() == LETTER::NOTVALID); assert(p3.getLetterAsString() == " "); } //Test data (2) { Move m; Piece p = m.getPiece(0); assert(p.getLetter() == LETTER::NOTVALID); } { Move m; try { Piece p = m.getPiece(-100); assert(false); } catch (std::logic_error) { assert(true); } } { Move m; try { Piece p = m.getPiece(100); assert(false); } catch (std::logic_error) { assert(true); } } //Test data (3) { Move m; m.setPieces("hello"); Piece p = m.getPiece(0); assert(p.getLetter() == LETTER::H); Piece p1 = m.getPiece(1); assert(p1.getLetter() == LETTER::E); Piece p2 = m.getPiece(2); assert(p2.getLetter() == LETTER::L); Piece p3 = m.getPiece(3); assert(p3.getLetter() == LETTER::L); Piece p4 = m.getPiece(4); assert(p4.getLetter() == LETTER::O); } //Test data (4) { Move m; try { m.setPiece(100, "z"); assert(false); } catch (std::logic_error) { assert(true); } } { Move m; try { m.setPiece(-100, "z"); assert(false); } catch (std::logic_error) { assert(true); } } { Move m; m.setPieces("hello"); m.setPiece(2, 'z'); assert(m.getPiece(2).getLetter() == LETTER::Z); } //Test data (5) { Board board; assert(board.getCurrentRound() == 0); } { Board board; try { board.getScoreForRound(100); assert(false); } catch (std::logic_error) { assert(true); } } { Board board; try { board.getScoreForRound(-100); assert(false); } catch (std::logic_error) { assert(true); } } //Test data (6) { Board board; assert(board.getCurrentRound() == 0); Move m; m.setPieces("apple"); Move m2; m2.setPieces("candy"); Score s(m, m2); board.endRound(m, s); assert(board.getCurrentRound() == 1); assert(board.getMoveForRound(0).to_string() == "APPLE"); assert(board.getScoreForRound(0).to_string() == "M____"); } { Board board; Move m; m.setPieces("apple"); Move m2; m2.setPieces("candy"); Score s(m, m2); board.endRound(m, s); m.setPieces("sandy"); Score s2(m, m2); board.endRound(m, s2); assert(board.getCurrentRound() == 2); assert(board.getMoveForRound(0).to_string() == "APPLE"); assert(board.getScoreForRound(0).to_string() == "M____"); assert(board.getMoveForRound(1).to_string() == "SANDY"); assert(board.getScoreForRound(1).to_string() == "_RRRR"); } //Test data (7) { Score s; assert(s.isExactMatch() == false); } { Score s; assert(s.getAnswer(0) == ANSWER::WRONG); assert(s.getAnswer(1) == ANSWER::WRONG); assert(s.getAnswer(2) == ANSWER::WRONG); assert(s.getAnswer(3) == ANSWER::WRONG); assert(s.getAnswer(4) == ANSWER::WRONG); } { Score s; try { s.getAnswer(100); assert(false); } catch (std::logic_error) { assert(true); } } { Score s; try { s.getAnswer(-100); assert(false); } catch (std::logic_error) { assert(true); } } //Test data (8) { Move m1; m1.setPieces("candy"); Move m2; m2.setPieces("CANDY"); Score s(m1, m2); assert(s.isExactMatch()); assert(s.getAnswer(0) == ANSWER::RIGHT); assert(s.getAnswer(1) == ANSWER::RIGHT); assert(s.getAnswer(2) == ANSWER::RIGHT); assert(s.getAnswer(3) == ANSWER::RIGHT); assert(s.getAnswer(4) == ANSWER::RIGHT); assert(s.to_string() == "RRRRR"); } { Move m1; m1.setPieces("candy"); Move m2; m2.setPieces("RIVER"); Score s(m1, m2); assert(s.isExactMatch() == false); assert(s.getAnswer(0) == ANSWER::WRONG); assert(s.getAnswer(1) == ANSWER::WRONG); assert(s.getAnswer(2) == ANSWER::WRONG); assert(s.getAnswer(3) == ANSWER::WRONG); assert(s.getAnswer(4) == ANSWER::WRONG); assert(s.to_string() == "_____"); } { Move m1; m1.setPieces("candy"); Move m2; m2.setPieces("dance"); Score s(m1, m2); assert(s.isExactMatch() == false); assert(s.getAnswer(0) == ANSWER::MAYBE); assert(s.getAnswer(1) == ANSWER::RIGHT); assert(s.getAnswer(2) == ANSWER::RIGHT); assert(s.getAnswer(3) == ANSWER::MAYBE); assert(s.getAnswer(4) == ANSWER::WRONG); assert(s.to_string() == "MRRM_"); } { Move m1; m1.setPieces("caddy"); Move m2; m2.setPieces("dacha"); Score s(m1, m2); assert(s.isExactMatch() == false); assert(s.getAnswer(0) == ANSWER::MAYBE); assert(s.getAnswer(1) == ANSWER::RIGHT); assert(s.getAnswer(2) == ANSWER::MAYBE); assert(s.getAnswer(3) == ANSWER::WRONG); assert(s.getAnswer(4) == ANSWER::WRONG); assert(s.to_string() == "MRM__"); } //Test data (9) { Wordle game("happy"); assert(game.answer() == "HAPPY"); assert(game.gameIsOver() == false); assert(game.determineGameOutcome() == GAMEOUTCOME::GAMENOTOVER); } //Test data (10) { Wordle game("happy"); Move m; Score s; m = game.play("shark"); s = game.endRound(m); m = game.play("rover"); s = game.endRound(m); m = game.play("cabby"); s = game.endRound(m); m = game.play("drive"); s = game.endRound(m); m = game.play("fight"); s = game.endRound(m); m = game.play("every"); s = game.endRound(m); m = game.play("eight"); s = game.endRound(m); m = game.play("sings"); s = game.endRound(m); assert(game.answer() == "HAPPY"); assert(game.gameIsOver()); assert(game.determineGameOutcome() == GAMEOUTCOME::GAMELOST); } { Wordle game("happy"); Move m; Score s; m = game.play("shark"); s = game.endRound(m); m = game.play("rover"); s = game.endRound(m); m = game.play("cabby"); s = game.endRound(m); m = game.play("drive"); s = game.endRound(m); m = game.play("fight"); s = game.endRound(m); m = game.play("every"); s = game.endRound(m); m = game.play("eight"); s = game.endRound(m); m = game.play("happy"); s = game.endRound(m); assert(game.answer() == "HAPPY"); assert(game.gameIsOver()); assert(game.determineGameOutcome() == GAMEOUTCOME::GAMEWON); } { Wordle game("happy"); Move m; Score s; m = game.play("shark"); s = game.endRound(m); assert(game.determineGameOutcome() == GAMEOUTCOME::GAMENOTOVER); assert(game.gameIsOver() == false); m = game.play("rover"); s = game.endRound(m); assert(game.determineGameOutcome() == GAMEOUTCOME::GAMENOTOVER); assert(game.gameIsOver() == false); m = game.play("cabby"); game.endRound(m); assert(game.determineGameOutcome() == GAMEOUTCOME::GAMENOTOVER); assert(game.gameIsOver() == false); } return 0; }