#include #include #include #include int test_beating() { Card a, b; a.suit = HEARTS; a.rank = R2; b.suit = HEARTS; b.rank = ACE; if (rank_higher(a.rank, b.rank) != false) return 1; if (rank_higher(b.rank, a.rank) != true) return 2; if (can_beat(a, b, DIAMONDS) != true) return 3; if (can_beat(b, a, DIAMONDS) != false) return 4; a.suit = DIAMONDS; if (can_beat(a, b, DIAMONDS) != false) return 5; if (can_beat(b, a, DIAMONDS) != true) return 6; if (can_beat(a, b, CLUBS) != false) return 7; if (can_beat(b, a, CLUBS) != false) return 8; return 0; } int test_random() { int values[7] = {0}; Random rg; int result; for (int i = 0; i < 10000; i++) { result = rg.random_in_range(0, 6); values[result] += 1; } std::cout << "Random results:"; for (int i = 0; i < 7; i++) { std::cout << " " << values[i]; } std::cout << std::endl; return 0; } int main() { int result = 0; bool status = true; result = test_beating(); if (result != 0) { status = false; std::cout << "Test_beating failed with " << result << std::endl; } test_random(); if (status) { std::cout << "Unit tests OK!" << std::endl; return EXIT_SUCCESS; } else { return EXIT_FAILURE; } }