Add more unit tests.

This commit is contained in:
Ville Pietilä
2025-08-26 09:15:50 +00:00
parent 1b858936cb
commit a26f66171b
3 changed files with 119 additions and 0 deletions

View File

@@ -33,3 +33,53 @@ TEST(Sequence, TestCreatingAccessSequence)
EXPECT_TRUE(is_valid);
}
TEST(Sequence, TestCreatingSequenceFromTuple)
{
constexpr ck::index_t I0 = 0;
constexpr ck::index_t I1 = 1;
constexpr auto seq = to_sequence(make_tuple(Number<I0>{}, Number<I1>{}));
EXPECT_EQ(seq[0], I0);
EXPECT_EQ(seq[1], I1);
}
TEST(Sequence, TestCreatingSequenceFromStaticFor)
{
constexpr ck::index_t num_pairs = 2;
constexpr auto I1 = Number<1>{};
constexpr auto I2 = Number<2>{};
static_for<0, num_pairs, 1>{}([&](auto i_pair)
{
constexpr auto idx_1d_0 = I2 * i_pair;
constexpr auto idx_1d_1 = I2 * i_pair + I1;
constexpr auto seq = to_sequence(make_tuple(idx_1d_0, idx_1d_1));
if constexpr(i_pair == 0)
{
EXPECT_EQ(seq[0], 0);
EXPECT_EQ(seq[1], 1);
}
else if constexpr(i_pair == 1)
{
EXPECT_EQ(seq[0], 2);
EXPECT_EQ(seq[1], 3);
}
});
}
TEST(Sequence, TestSumOfElements)
{
constexpr auto seq = Sequence<1, 2, 3, 4>{};
index_t sum = reduce_on_sequence(seq, math::plus<index_t>{}, Number<0>{});
EXPECT_EQ(sum, 10);
}
TEST(Sequence, TestMultiplyOfElements)
{
constexpr auto seq = Sequence<1, 2, 3, 4>{};
index_t sum = reduce_on_sequence(seq, math::multiplies{}, Number<1>{});
EXPECT_EQ(sum, 24);
}