28 lines
680 B
C++
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);
|
|
}
|