// blackbox testing #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <string.h> #include "Game.h" #define DEFAULT_DISCIPLINES {STUDENT_BQN, STUDENT_MMONEY, STUDENT_MJ, \ STUDENT_MMONEY, STUDENT_MJ, STUDENT_BPS, STUDENT_MTV, STUDENT_MTV, \ STUDENT_BPS,STUDENT_MTV, STUDENT_BQN, STUDENT_MJ, STUDENT_BQN, \ STUDENT_THD, STUDENT_MJ, STUDENT_MMONEY, STUDENT_MTV, STUDENT_BQN, \ STUDENT_BPS} #define DEFAULT_DICE {9, 10, 8, 12, 6, 5, 3, 11, 3, 11, 4, 6, 4, 7, 9, \ 2, 8, 10, 5} #define NUMBER_OF_TILES 19 void runAllTests (void); void testNewGame (void); //Nick void testDisposeGame (void); //Darren void testMakeAction (void); //Amelia void testThrowDice (void); //Jesse void testGetDiscipline (void); //Sabrina void testGetDiceValue (void); //Nick void testGetMostARCs (void); //Darren void testGetMostPublications (void); //Amelia void testGetTurnNumber (void); //Jesse void testGetWhoseTurn (void); //Sabrina void testGetCampus (void); //Nick void testGetARC (void); //Darren void testIsLegalAction (void); //Amelia void testGetKPIpoints (void); //Jesse void testGetARCs (void); //Sabrina void testGetGO8s (void); //Nick void testGetCampuses (void); //Darren void testGetIPs (void); //Amelia void testGetPublications (void); //Jesse void testGetStudents (void); //Sabrina void testGetExchangeRate (void); //Nick int main (int argc, char *argv[]) { runAllTests (); return EXIT_SUCCESS; } void runAllTests (void) { // Uncomment your when your tests are completed testNewGame (); //Nick testMakeAction (); //Amelia testThrowDice (); //Jesse testGetDiscipline (); //Sabrina testGetDiceValue (); //Nick testGetMostARCs (); //Darren testGetMostPublications (); //Amelia testGetTurnNumber (); //Jesse testGetWhoseTurn (); //Sabrina testGetCampus (); //Nick testGetARC (); //Darren testIsLegalAction (); //Amelia testGetKPIpoints (); //Jesse testGetARCs (); //Sabrina testGetGO8s (); //Nick testGetCampuses (); //Darren testGetIPs (); //Amelia testGetPublications (); //Jesse testGetStudents (); //Sabrina testGetExchangeRate (); //Nick printf ("All test passed. You are Awesome!!!\n"); } void testNewGame (void) { int disciplines[NUMBER_OF_TILES] = DEFAULT_DISCIPLINES; int dice[NUMBER_OF_TILES] = DEFAULT_DICE; Game testGame = newGame (disciplines, dice); assert (testGame != NULL); //test that each player has 2 campuses at the start of the game assert (getCampuses(testGame, UNI_A) == 2); assert (getCampuses(testGame, UNI_B) == 2); assert (getCampuses(testGame, UNI_C) == 2); //test that each player has 0 Publications at the start of the game assert (getPublications(testGame, UNI_A) == 0); assert (getPublications(testGame, UNI_B) == 0); assert (getPublications(testGame, UNI_C) == 0); //test that each player has 0 ARCs at the start of the game assert (getARCs(testGame, UNI_A) == 0); assert (getARCs(testGame, UNI_B) == 0); assert (getARCs(testGame, UNI_C) == 0); //test that each player has 0 IPs at the start of the game assert (getIPs(testGame, UNI_A) == 0); assert (getIPs(testGame, UNI_B) == 0); assert (getIPs(testGame, UNI_C) == 0); //test that each player has 3 BPS students at the start of the game assert (getStudents(testGame, UNI_A, STUDENT_BPS) == 3); assert (getStudents(testGame, UNI_B, STUDENT_BPS) == 3); assert (getStudents(testGame, UNI_C, STUDENT_BPS) == 3); //test that each player has 3 B? students at the start of the game assert (getStudents(testGame, UNI_A, STUDENT_BQN) == 3); assert (getStudents(testGame, UNI_B, STUDENT_BQN) == 3); assert (getStudents(testGame, UNI_C, STUDENT_BQN) == 3); //test that each player has 1 MTV student at the start of the game assert (getStudents(testGame, UNI_A, STUDENT_MTV) == 1); assert (getStudents(testGame, UNI_B, STUDENT_MTV) == 1); assert (getStudents(testGame, UNI_C, STUDENT_MTV) == 1); //test that each player has 1 MJ students at the start of the game assert (getStudents(testGame, UNI_A, STUDENT_MJ) == 1); assert (getStudents(testGame, UNI_B, STUDENT_MJ) == 1); assert (getStudents(testGame, UNI_C, STUDENT_MJ) == 1); //test that each player has 1 M$ students at the start of the game assert (getStudents(testGame, UNI_A, STUDENT_MMONEY) == 1); assert (getStudents(testGame, UNI_B, STUDENT_MMONEY) == 1); assert (getStudents(testGame, UNI_C, STUDENT_MMONEY) == 1); //test that each player has 0 ThD students at the start of the game assert (getStudents(testGame, UNI_A, STUDENT_THD) == 0); assert (getStudents(testGame, UNI_B, STUDENT_THD) == 0); assert (getStudents(testGame, UNI_C, STUDENT_THD) == 0); assert (getCampus (testGame, "LB") == UNI_A); assert (getCampus (testGame, "RRLRL") == UNI_B); assert (getCampus (testGame, "LRLRL") == UNI_C); } void testMakeAction (void) { } void testThrowDice (void) { int disciplines[NUMBER_OF_TILES] = DEFAULT_DISCIPLINES; int dice[NUMBER_OF_TILES] = DEFAULT_DICE; Game testingGame = newGame (disciplines, dice); // the game starts in turn -1 assert(getTurnNumber(testingGame) == -1); //Function throwDice doesnt return anything? //We just test if other funtions return the right values when we update the diceScore int count = 0; while (count < NUMBER_OF_TILES) { throwDice (testingGame, dice[count]); //turn number should have increased assert(getTurnNumber (testingGame) == count); count++; } disposeGame (testingGame); } void testGetDiscipline (void) { int testDisciplines[] = DEFAULT_DISCIPLINES; int testDice[] = DEFAULT_DICE; Game testingGame = newGame (testDisciplines, testDice); assert (getDiscipline (testingGame, 0) == STUDENT_BQN); assert (getDiscipline (testingGame, 1) == STUDENT_MMONEY); assert (getDiscipline (testingGame, 2) == STUDENT_MJ); assert (getDiscipline (testingGame, 3) == STUDENT_MMONEY); assert (getDiscipline (testingGame, 4) == STUDENT_MJ); assert (getDiscipline (testingGame, 5) == STUDENT_BPS); assert (getDiscipline (testingGame, 6) == STUDENT_MTV); assert (getDiscipline (testingGame, 7) == STUDENT_MTV); assert (getDiscipline (testingGame, 8) == STUDENT_BPS); assert (getDiscipline (testingGame, 9) == STUDENT_MTV); assert (getDiscipline (testingGame, 10) == STUDENT_BQN); assert (getDiscipline (testingGame, 11) == STUDENT_MJ); assert (getDiscipline (testingGame, 12) == STUDENT_BQN); assert (getDiscipline (testingGame, 13) == STUDENT_THD); assert (getDiscipline (testingGame, 14) == STUDENT_MJ); assert (getDiscipline (testingGame, 15) == STUDENT_MMONEY); assert (getDiscipline (testingGame, 16) == STUDENT_MTV); assert (getDiscipline (testingGame, 17) == STUDENT_BQN); assert (getDiscipline (testingGame, 18) == STUDENT_BPS); disposeGame (testingGame); int testDisciplines1[] = {STUDENT_MMONEY, STUDENT_BPS, STUDENT_MJ, STUDENT_MJ, STUDENT_MJ, STUDENT_MTV, STUDENT_MTV, STUDENT_THD, STUDENT_MTV, STUDENT_MJ, STUDENT_BQN, STUDENT_BQN, STUDENT_BQN, STUDENT_MTV, STUDENT_MTV, STUDENT_BPS, STUDENT_BPS, STUDENT_BQN, STUDENT_THD}; Game testingGame1 = newGame (testDisciplines1, testDice); assert (getDiscipline (testingGame1, 0) == STUDENT_MMONEY); assert (getDiscipline (testingGame1, 1) == STUDENT_BPS); assert (getDiscipline (testingGame1, 2) == STUDENT_MJ); assert (getDiscipline (testingGame1, 3) == STUDENT_MJ); assert (getDiscipline (testingGame1, 4) == STUDENT_MJ); assert (getDiscipline (testingGame1, 5) == STUDENT_MTV); assert (getDiscipline (testingGame1, 6) == STUDENT_MTV); assert (getDiscipline (testingGame1, 7) == STUDENT_THD); assert (getDiscipline (testingGame1, 8) == STUDENT_MTV); assert (getDiscipline (testingGame1, 9) == STUDENT_MJ); assert (getDiscipline (testingGame1, 10) == STUDENT_BQN); assert (getDiscipline (testingGame1, 11) == STUDENT_BQN); assert (getDiscipline (testingGame1, 12) == STUDENT_BQN); assert (getDiscipline (testingGame1, 13) == STUDENT_MTV); assert (getDiscipline (testingGame1, 14) == STUDENT_MTV); assert (getDiscipline (testingGame1, 15) == STUDENT_BPS); assert (getDiscipline (testingGame1, 16) == STUDENT_BPS); assert (getDiscipline (testingGame1, 17) == STUDENT_BQN); assert (getDiscipline (testingGame1, 18) == STUDENT_THD); disposeGame (testingGame1); } void testGetDiceValue (void) { int testDisciplines[] = DEFAULT_DISCIPLINES; int testDice[] = DEFAULT_DICE; Game testgame = newGame (testDisciplines, testDice); assert (getDiceValue (testgame, 0) == 9); assert (getDiceValue (testgame, 1) == 10); assert (getDiceValue (testgame, 2) == 8); assert (getDiceValue (testgame, 3) == 12); assert (getDiceValue (testgame, 4) == 6); assert (getDiceValue (testgame, 5) == 5); assert (getDiceValue (testgame, 6) == 3); assert (getDiceValue (testgame, 7) == 11); assert (getDiceValue (testgame, 8) == 3); assert (getDiceValue (testgame, 9) == 11); assert (getDiceValue (testgame, 10) == 4); assert (getDiceValue (testgame, 11) == 6); assert (getDiceValue (testgame, 12) == 4); assert (getDiceValue (testgame, 13) == 7); assert (getDiceValue (testgame, 14) == 9); assert (getDiceValue (testgame, 15) == 2); assert (getDiceValue (testgame, 16) == 8); assert (getDiceValue (testgame, 17) == 10); assert (getDiceValue (testgame, 18) == 5); disposeGame (testgame); } void testGetMostARCs (void) { //darren int disciplines[NUMBER_OF_TILES] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1}; int dice[NUMBER_OF_TILES] = {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8}; //int leader = 0; Game testingGame = newGame (disciplines, dice); assert (getMostARCs(testingGame) == NO_ONE); int counter = 0 ; while (counter < 100){ throwDice(testingGame, 8); counter ++; } //now we have 100 of each disposeGame(testingGame); // return leader; } void testGetMostPublications (void) { //Setting up test Game int disciplines[NUMBER_OF_TILES] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1}; int dice[NUMBER_OF_TILES] = {7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7}; Game testingGame = newGame (disciplines, dice); // Making sure noone is in control at the start assert (getMostPublications (testingGame) == NO_ONE); // you need to give uniA and uniB enough resources to get a // publication, or else they won't be able to. // Give UNIA a publication (Technically an illegal move) if (getWhoseTurn (testingGame) == UNI_A) { // need to create an action type // action getPublication = {OBTAIN_PUBLICATION}; // then correctly use make action - has the below prototype // void makeAction (Game g, action a) // i.e. makeAction (testingGame, getPublication); action a; a.actionCode = OBTAIN_PUBLICATION; makeAction (testingGame, a); // Test that UNIA is in control assert (getMostPublications (testingGame) == UNI_A); } // Give UNIB 2 publications if (getWhoseTurn (testingGame) == UNI_B) { // make similar changes as above action a; a.actionCode = OBTAIN_PUBLICATION; makeAction (testingGame, a); makeAction (testingGame, a); // Make sure UNIB is now in control assert (getMostPublications (testingGame) == UNI_B); } disposeGame (testingGame); } void testGetTurnNumber (void) { int disciplines[NUMBER_OF_TILES] = DEFAULT_DISCIPLINES; int dice[NUMBER_OF_TILES] = DEFAULT_DICE; Game testingGame = newGame (disciplines, dice); assert(getTurnNumber(testingGame) == -1); int count = 0; while (count < NUMBER_OF_TILES) { throwDice (testingGame, dice[count]); //turn number should have increased assert(getTurnNumber (testingGame) == count); count++; } disposeGame (testingGame); } void testGetWhoseTurn (void) { int testDisciplines[NUMBER_OF_TILES] = DEFAULT_DISCIPLINES; int testDice[NUMBER_OF_TILES] = DEFAULT_DICE; Game testingGame = newGame (testDisciplines, testDice); assert (getWhoseTurn (testingGame) == NO_ONE); int count = 0; int dice = 0; while (count < 100) { dice = rand () % 11 + 2; throwDice (testingGame, dice); int turnNumber = getTurnNumber (testingGame); if (turnNumber == 0) { assert (getWhoseTurn (testingGame) == UNI_A); } else if (turnNumber == 1) { assert (getWhoseTurn (testingGame) == UNI_B); } else if (turnNumber == 2) { assert (getWhoseTurn (testingGame) == UNI_C); } count++; } disposeGame (testingGame); } void testGetCampus (void) { } void testGetARC (void) { // input coOrdinates of the vertex int disciplines[NUMBER_OF_TILES] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1}; int dice[NUMBER_OF_TILES] = {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8}; Game testingGame = newGame (disciplines, dice); int count = 0; while (count < 180+1) { //using 180 +1 because it will go back to A throwDice (testingGame, 8); count++; }; assert(getWhoseTurn(testingGame) == UNI_A); action a; a.actionCode = OBTAIN_ARC; strcpy(a.destination, "L"); makeAction(testingGame, a); strcpy(a.destination, "LR"); makeAction(testingGame, a); strcpy(a.destination, "LRL"); makeAction(testingGame, a); strcpy(a.destination, "LRRR"); assert(getARC(testingGame, "L") == ARC_A); assert(getARC(testingGame, "LR") == ARC_A); assert(getARC(testingGame, "LRL") == ARC_A); assert(getARC(testingGame, "LRRR") == ARC_A); throwDice(testingGame, 8); strcpy(a.destination, "RRLRL"); makeAction(testingGame, a); strcpy(a.destination, "RRLRLL"); makeAction(testingGame, a); strcpy(a.destination, "RRLRLLL"); assert(getARC(testingGame, "RRLRL") == ARC_B); assert(getARC(testingGame, "RRLRLL") == ARC_B); assert(getARC(testingGame, "RRLRLLL") == ARC_B); disposeGame (testingGame); } void testIsLegalAction (void) { //someone elses test we failed action a; int disciplines[] = {2,5,3,5,3,1,4,4,1,4,2,3,2,0,3,5,4,2,1}; int dice[] = {9,10,8,12,6,5,3,11,3,11,4,6,4,7,9,2,8,10,5}; Game g = newGame(disciplines, dice); throwDice(g, 11); a.actionCode = PASS; strncpy(a.destination, "", PATH_LIMIT - 1); a.destination[PATH_LIMIT - 1] = 0; a.disciplineFrom = 0, a.disciplineTo = 0; makeAction(g, a); throwDice(g, 8); a.actionCode = PASS; strncpy(a.destination, "•dêôßp·hÂn·xÃn·ôßp·ôßp·¿·o·", PATH_LIMIT - 1); a.destination[PATH_LIMIT - 1] = 0; a.disciplineFrom = -1217458176, a.disciplineTo = 0; makeAction(g, a); throwDice(g, 5); a.actionCode = PASS; strncpy(a.destination, "4o·", PATH_LIMIT - 1); a.destination[PATH_LIMIT - 1] = 0; a.disciplineFrom = -1219197004, a.disciplineTo = -1217482040; makeAction(g, a); throwDice(g, 9); a.actionCode = OBTAIN_ARC; strncpy(a.destination, "R", PATH_LIMIT - 1); a.destination[PATH_LIMIT - 1] = 0; a.disciplineFrom = -1217482040, a.disciplineTo = -1217456695; isLegalAction(g, a); assert (isLegalAction(g, a) == FALSE); disposeGame (g); //assert(actionCode != OBTAIN_PUBLICATION); //assert(actionCode != OBTAIN_IP_PATENT); // assert(disciplineFrom => STUDENT_THD); //assert(disciplineFrom <= STUDENT_MMONEY); //assert(disciplineTo => STUDENT_THD); //assert(disciplineTo <= STUDENT_MMONEY); //assert path is always on board //assert vertex is empty //assert they have the resources //assert they have an arc next to proposed campus //assert spot to make a GO8 has a campus on it //No actions in terra nullis //disposeGame (testingGame); } void testGetKPIpoints (void) { int disciplines[NUMBER_OF_TILES] = DEFAULT_DISCIPLINES; int dice[NUMBER_OF_TILES] = DEFAULT_DICE; Game testingGame = newGame (disciplines, dice); //All players should start with 0 KPI points assert (getKPIpoints (testingGame, UNI_A) == 20); assert (getKPIpoints (testingGame, UNI_B) == 20); assert (getKPIpoints (testingGame, UNI_C) == 20); disposeGame (testingGame); } void testGetARCs (void) { // this is the prototype from Game.h // int getARCs (Game g, int player); // sets up the board int disciplines[NUMBER_OF_TILES] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1}; int dice[NUMBER_OF_TILES] = {7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7}; Game testingGame = newGame (disciplines, dice); // asserts everyone has no arcs to start with assert (getARCs (testingGame, UNI_A) == 0); assert (getARCs (testingGame, UNI_B) == 0); assert (getARCs (testingGame, UNI_C) == 0); // resource farming int count = 0; while (count < 200) { throwDice (testingGame, 7); assert (getARCs (testingGame, UNI_A) == 0); assert (getARCs (testingGame, UNI_B) == 0); assert (getARCs (testingGame, UNI_C) == 0); count++; } // building the arcs and testing - LRLRLR... crash case player 1 int numARCsUNIA = 0; action swap = {RETRAIN_STUDENTS, "", STUDENT_BPS, STUDENT_BQN}; path p = "L"; char append = 'R'; action buildARC = {OBTAIN_ARC, {*p}}; if (isLegalAction (testingGame, swap)) { makeAction (testingGame, swap); } while (isLegalAction (testingGame, buildARC)) { if (isLegalAction (testingGame, swap)) { makeAction (testingGame, swap); } if (getWhoseTurn (testingGame) == UNI_A) { makeAction (testingGame, buildARC); snprintf (p, sizeof (p), "%s%c", p, append); if (append == 'R') { append = 'L'; } else { append = 'R'; } numARCsUNIA++; } throwDice (testingGame, 7); assert (getARCs (testingGame, UNI_A) == numARCsUNIA); } // building the arcs and testing - LRLRLR... crash case player 2 int numARCsUNIB = 0; snprintf (p, sizeof (p), "%s", "LRLRLR"); append = 'R'; if (isLegalAction (testingGame, swap)) { makeAction (testingGame, swap); } while (isLegalAction (testingGame, buildARC)) { if (isLegalAction (testingGame, swap)) { makeAction (testingGame, swap); } if (getWhoseTurn (testingGame) == UNI_B) { makeAction (testingGame, buildARC); snprintf (p, sizeof (p), "%s%c", p, append); if (append == 'R') { append = 'L'; } else { append = 'R'; } numARCsUNIB++; } throwDice (testingGame, 7); assert (getARCs (testingGame, UNI_A) == numARCsUNIA); assert (getARCs (testingGame, UNI_B) == numARCsUNIB); } disposeGame (testingGame); } void testGetGO8s (void) { } void testGetCampuses (void) { int disciplines[NUMBER_OF_TILES] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1}; int dice[NUMBER_OF_TILES] = {8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8}; Game testingGame = newGame (disciplines, dice); // game start, 2 campuses each assert(getCampuses(testingGame, UNI_A) == 2); assert(getCampuses(testingGame, UNI_A) == 2); assert(getCampuses(testingGame, UNI_A) == 2); // return player.numOfCampuses; disposeGame (testingGame); } void testGetIPs (void) { int disciplines[NUMBER_OF_TILES] = {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3}; int dice[NUMBER_OF_TILES] = {6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6}; Game testingGame = newGame (disciplines, dice); // Asserting that there are no IPS at the start of the game assert(getIPs (testingGame, UNI_A) == 0); assert(getIPs (testingGame, UNI_B) == 0); assert(getIPs (testingGame, UNI_C) == 0); // resource farming int count = 0; while (count < 300) { throwDice (testingGame, 6); assert (getIPs (testingGame, UNI_A) == 0); assert (getIPs (testingGame, UNI_B) == 0); assert (getIPs (testingGame, UNI_C) == 0); count++; } // Case where Uni_A tries to get an IP //int UNI_A = 0; action swap1 = {RETRAIN_STUDENTS, "", STUDENT_MJ, STUDENT_MTV}; action swap2 = {RETRAIN_STUDENTS, "", STUDENT_MJ, STUDENT_MMONEY}; int uni = getWhoseTurn(testingGame); int i = 0; while (i < 50) { // Making some MTV's makeAction (testingGame, swap1); i++; } i = 0; while (i < 50) { // Making some MMoney's makeAction (testingGame, swap2); i++; } i = 0; while (i < 10) { action a; a.actionCode = OBTAIN_IP_PATENT; makeAction (testingGame, a); // hopefully making an ip i++; } //Assert player one has one arc assert(getIPs(testingGame, uni) == 10); disposeGame (testingGame); } void testGetPublications (void) { int disciplines[NUMBER_OF_TILES] = DEFAULT_DISCIPLINES; int dice[NUMBER_OF_TILES] = DEFAULT_DICE; Game testingGame = newGame (disciplines, dice); //All players should start with 0 publications assert (getPublications (testingGame, UNI_A) == 0); assert (getPublications (testingGame, UNI_B) == 0); assert (getPublications (testingGame, UNI_C) == 0); disposeGame (testingGame); } void testGetStudents (void) { int testDisciplines[NUMBER_OF_TILES] = DEFAULT_DISCIPLINES; int testDice[NUMBER_OF_TILES] = DEFAULT_DICE; Game testingGame = newGame (testDisciplines, testDice); int BPSforA = 3; int BQNforA = 3; int MTVforA = 1; int MJforA = 1; int MMONEYforA = 1; int THDforA = 0; int BPSforB = 3; int BQNforB = 3; int MTVforB = 1; int MJforB = 1; int MMONEYforB = 1; int THDforB = 0; int BPSforC = 3; int BQNforC = 3; int MTVforC = 1; int MJforC = 1; int MMONEYforC = 1; int THDforC = 0; assert (getStudents (testingGame, UNI_A, STUDENT_BPS) == BPSforA); assert (getStudents (testingGame, UNI_A, STUDENT_BQN) == BQNforA); assert (getStudents (testingGame, UNI_A, STUDENT_MTV) == MTVforA); assert (getStudents (testingGame, UNI_A, STUDENT_MJ) == MJforA); assert (getStudents (testingGame, UNI_A, STUDENT_THD) == THDforA); assert (getStudents (testingGame, UNI_A, STUDENT_MMONEY) == MMONEYforA); assert (getStudents (testingGame, UNI_B, STUDENT_BPS) == BPSforB); assert (getStudents (testingGame, UNI_B, STUDENT_BQN) == BQNforB); assert (getStudents (testingGame, UNI_B, STUDENT_MTV) == MTVforB); assert (getStudents (testingGame, UNI_B, STUDENT_MJ) == MJforB); assert (getStudents (testingGame, UNI_B, STUDENT_THD) == THDforB); assert (getStudents (testingGame, UNI_B, STUDENT_MMONEY) == MMONEYforB); assert (getStudents (testingGame, UNI_C, STUDENT_BPS) == BPSforC); assert (getStudents (testingGame, UNI_C, STUDENT_BQN) == BQNforC); assert (getStudents (testingGame, UNI_C, STUDENT_MTV) == MTVforC); assert (getStudents (testingGame, UNI_C, STUDENT_MJ) == MJforC); assert (getStudents (testingGame, UNI_C, STUDENT_THD) == THDforC); assert (getStudents (testingGame, UNI_C, STUDENT_MMONEY) == MMONEYforC); int turn = getTurnNumber (testingGame); int dice = 0; while (turn < 100) { dice = rand () % 11 + 2; throwDice (testingGame, dice); if (dice == 5) { BPSforB++; } else if (dice == 6) { MJforA++; } else if (dice == 7) { THDforA += MMONEYforA + MTVforA; MMONEYforA = 0; MTVforA = 0; THDforB += MMONEYforB + MTVforB; MMONEYforB = 0; MTVforB = 0; THDforC += MMONEYforC + MTVforC; MMONEYforC = 0; MTVforC = 0; } else if (dice == 8) { MTVforC++; MJforC++; } else if (dice == 9) { BQNforB++; } else if (dice == 11) { MTVforA++; } assert (getStudents (testingGame, UNI_A, STUDENT_BPS) == BPSforA); assert (getStudents (testingGame, UNI_A, STUDENT_BQN) == BQNforA); assert (getStudents (testingGame, UNI_A, STUDENT_MTV) == MTVforA); assert (getStudents (testingGame, UNI_A, STUDENT_MJ) == MJforA); assert (getStudents (testingGame, UNI_A, STUDENT_MMONEY) == MMONEYforA); assert (getStudents (testingGame, UNI_A, STUDENT_THD) == THDforA); assert (getStudents (testingGame, UNI_B, STUDENT_BPS) == BPSforB); assert (getStudents (testingGame, UNI_B, STUDENT_BQN) == BQNforB); assert (getStudents (testingGame, UNI_B, STUDENT_MTV) == MTVforB); assert (getStudents (testingGame, UNI_B, STUDENT_MJ) == MJforB); assert (getStudents (testingGame, UNI_B, STUDENT_MMONEY) == MMONEYforB); assert (getStudents (testingGame, UNI_B, STUDENT_THD) == THDforB); assert (getStudents (testingGame, UNI_C, STUDENT_BPS) == BPSforC); assert (getStudents (testingGame, UNI_C, STUDENT_BQN) == BQNforC); assert (getStudents (testingGame, UNI_C, STUDENT_MTV) == MTVforC); assert (getStudents (testingGame, UNI_C, STUDENT_MJ) == MJforC); assert (getStudents (testingGame, UNI_C, STUDENT_MMONEY) == MMONEYforC); assert (getStudents (testingGame, UNI_C, STUDENT_THD) == THDforC); turn = getTurnNumber (testingGame); } disposeGame (testingGame); } void testGetExchangeRate (void) { //someone elses test int disciplines[] = {2,5,3,5,3,1,4,4,1,4,2,3,2,0,3,5,4,2,1}; int dice[] = {9,10,8,12,6,5,3,11,3,11,4,6,4,7,9,2,8,10,5}; Game g = newGame(disciplines, dice); assert (getExchangeRate(g, UNI_A, 1, 2) == 3); }
Download file: testGame.c
(26.9 KB)