You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
3.9 KiB
118 lines
3.9 KiB
#ifdef TEST
|
|
|
|
#include "unity.h"
|
|
#include "timequiz.h"
|
|
|
|
void setUp(void) {
|
|
}
|
|
|
|
void tearDown(void) {
|
|
}
|
|
|
|
void test_getRandomQuestionIndex(void) {
|
|
int askedQuestions[10] = {0};
|
|
int totalQuestions = 10;
|
|
int index = getRandomQuestionIndex(askedQuestions, totalQuestions);
|
|
TEST_ASSERT_TRUE(index >= 0 && index < totalQuestions);
|
|
}
|
|
|
|
void test_displayQuestion(void) {
|
|
const char* question = "Test Question";
|
|
const char* answers[] = {"A", "B", "C", "D"};
|
|
int correctIndex = 0;
|
|
printf("\nExpected Output:\n");
|
|
printf("Question: %s\n", question);
|
|
for (int i = 0; i < 4; i++) {
|
|
printf("%d. %s\n", i + 1, answers[i]);
|
|
}
|
|
printf("\n");
|
|
printf("Actual Output:\n");
|
|
displayQuestion(question, answers, correctIndex);
|
|
}
|
|
|
|
void test_processUserAnswer_correct(void) {
|
|
int score = 0;
|
|
int totalCorrectAnswers = 0;
|
|
const char* answers[] = {"Paris", "London", "Berlin", "Madrid"};
|
|
int correctIndex = 0;
|
|
int userAnswer = 1;
|
|
|
|
processUserAnswer(userAnswer, correctIndex, &score, &totalCorrectAnswers, answers);
|
|
TEST_ASSERT_EQUAL_INT(1, score);
|
|
TEST_ASSERT_EQUAL_INT(1, totalCorrectAnswers);
|
|
}
|
|
|
|
void test_processUserAnswer_wrong(void) {
|
|
int score = 0;
|
|
int totalCorrectAnswers = 0;
|
|
const char* answers[] = {"Paris", "London", "Berlin", "Madrid"};
|
|
int correctIndex = 0;
|
|
int userAnswer = 2; // Assuming user selects the second option
|
|
processUserAnswer(userAnswer, correctIndex, &score, &totalCorrectAnswers, answers);
|
|
TEST_ASSERT_EQUAL_INT(0, score);
|
|
TEST_ASSERT_EQUAL_INT(0, totalCorrectAnswers);
|
|
}
|
|
|
|
void test_processUserAnswer_correctAnswer_index3(void) {
|
|
int score = 0;
|
|
int totalCorrectAnswers = 0;
|
|
const char* answers[] = {"A", "B", "C", "D"};
|
|
processUserAnswer(4, 3, &score, &totalCorrectAnswers, answers);
|
|
TEST_ASSERT_EQUAL_INT(1, score);
|
|
TEST_ASSERT_EQUAL_INT(1, totalCorrectAnswers);
|
|
}
|
|
|
|
void test_processUserAnswer_correctAnswer_index0(void) {
|
|
int score = 0;
|
|
int totalCorrectAnswers = 0;
|
|
const char* answers[] = {"A", "B", "C", "D"};
|
|
processUserAnswer(1, 0, &score, &totalCorrectAnswers, answers);
|
|
TEST_ASSERT_EQUAL_INT(1, score);
|
|
TEST_ASSERT_EQUAL_INT(1, totalCorrectAnswers);
|
|
}
|
|
|
|
void test_processUserAnswer_wrongAnswer_index3(void) {
|
|
int score = 0;
|
|
int totalCorrectAnswers = 0;
|
|
const char* answers[] = {"Paris", "London", "Berlin", "Madrid"};
|
|
int correctIndex = 0;
|
|
int userAnswer = 4; // Assuming user selects the fourth option
|
|
processUserAnswer(userAnswer, correctIndex, &score, &totalCorrectAnswers, answers);
|
|
TEST_ASSERT_EQUAL_INT(0, score);
|
|
TEST_ASSERT_EQUAL_INT(0, totalCorrectAnswers);
|
|
}
|
|
|
|
void test_processUserAnswer_correctAnswer_index1(void) {
|
|
int score = 0;
|
|
int totalCorrectAnswers = 0;
|
|
const char* answers[] = {"Paris", "London", "Berlin", "Madrid"};
|
|
int correctIndex = 1;
|
|
int userAnswer = 2; // Assuming user selects the second option
|
|
processUserAnswer(userAnswer, correctIndex, &score, &totalCorrectAnswers, answers);
|
|
TEST_ASSERT_EQUAL_INT(1, score);
|
|
TEST_ASSERT_EQUAL_INT(1, totalCorrectAnswers);
|
|
}
|
|
|
|
void test_processUserAnswer_correctAnswer_index2(void) {
|
|
int score = 0;
|
|
int totalCorrectAnswers = 0;
|
|
const char* answers[] = {"Paris", "London", "Berlin", "Madrid"};
|
|
int correctIndex = 2;
|
|
int userAnswer = 3; // Assuming user selects the third option
|
|
processUserAnswer(userAnswer, correctIndex, &score, &totalCorrectAnswers, answers);
|
|
TEST_ASSERT_EQUAL_INT(1, score);
|
|
TEST_ASSERT_EQUAL_INT(1, totalCorrectAnswers);
|
|
}
|
|
|
|
void test_processUserAnswer_wrongAnswer_index1(void) {
|
|
int score = 0;
|
|
int totalCorrectAnswers = 0;
|
|
const char* answers[] = {"Paris", "London", "Berlin", "Madrid"};
|
|
int correctIndex = 2;
|
|
int userAnswer = 2; // Assuming user selects the second option
|
|
processUserAnswer(userAnswer, correctIndex, &score, &totalCorrectAnswers, answers);
|
|
TEST_ASSERT_EQUAL_INT(0, score);
|
|
TEST_ASSERT_EQUAL_INT(0, totalCorrectAnswers);
|
|
}
|
|
|
|
#endif //TEST
|