Untitled
unknown
plain_text
2 years ago
7.1 kB
11
Indexable
#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;
}Editor is loading...