2026-08-11 17:40:36 +03:00
|
|
|
#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);
|
2026-08-12 14:58:20 +03:00
|
|
|
// Breach of contract
|
|
|
|
|
EXPECT_DEATH(
|
|
|
|
|
{
|
|
|
|
|
(void)control_flow::apply_operation(control_flow::Operation::Unknown, 2, 3);
|
|
|
|
|
},
|
|
|
|
|
"contract violation");
|
2026-08-11 17:40:36 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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");
|
|
|
|
|
}
|