Files
cpp-course/modules/02_control_flow/test/loops_test.cpp
T
David Gil de Gómez Pérez 88cc7728a6 Solved: 07 - Loops
Added a contract precondition to factorial
2026-08-12 14:47:10 +03:00

28 lines
680 B
C++

#include "loops.hpp"
#include <gtest/gtest.h>
TEST(Loops, SumRange) {
EXPECT_EQ(control_flow::sum_range(1, 5), 15);
EXPECT_EQ(control_flow::sum_range(5, 5), 5);
}
TEST(Loops, Factorial) {
EXPECT_EQ(control_flow::factorial(0), 1);
EXPECT_EQ(control_flow::factorial(5), 120);
// Breach of contract
EXPECT_DEATH(
{
(void)control_flow::factorial(-1);
},
"contract violation");
}
TEST(Loops, CountOccurrences) {
EXPECT_EQ(control_flow::count_occurrences({1, 2, 2, 3}, 2), 2);
}
TEST(Loops, FirstIndexOf) {
EXPECT_EQ(control_flow::first_index_of({4, 5, 6}, 5), 1);
EXPECT_EQ(control_flow::first_index_of({4, 5, 6}, 9), -1);
}