Files
cpp-course/modules/02_control_flow/test/switch_statements_test.cpp
T
David Gil de Gómez Pérez 626b01cf8a Solved: 08 - Switch Statements
Added a contract precondition to apply_operation
2026-08-12 14:58:20 +03:00

25 lines
851 B
C++

#include "switch_statements.hpp"
#include <gtest/gtest.h>
TEST(SwitchStatements, ParseOperation) {
EXPECT_EQ(control_flow::parse_operation('+'), control_flow::Operation::Add);
EXPECT_EQ(control_flow::parse_operation('?'), control_flow::Operation::Unknown);
}
TEST(SwitchStatements, ApplyOperation) {
EXPECT_EQ(control_flow::apply_operation(control_flow::Operation::Add, 2, 3), 5);
EXPECT_EQ(control_flow::apply_operation(control_flow::Operation::Multiply, 4, 5), 20);
// Breach of contract
EXPECT_DEATH(
{
(void)control_flow::apply_operation(control_flow::Operation::Unknown, 2, 3);
},
"contract violation");
}
TEST(SwitchStatements, DayName) {
EXPECT_EQ(control_flow::day_name(1), "Monday");
EXPECT_EQ(control_flow::day_name(7), "Sunday");
EXPECT_EQ(control_flow::day_name(0), "Invalid");
}