19GTEST_TEST(testIntegerSequenceAlgorithms, theFrontListAlgorithmReturnsTheFirstElementOfAnIntegerSequence)
21 using ExpectedResult = std::integral_constant<std::size_t, 5>;
22 using ActualResultSimplified = DryChem::front_list_t<std::index_sequence<5, 10, 15, 20, 25>>;
23 using ActualResultExplicit =
typename DryChem::front_list<std::index_sequence<5, 10, 15, 20, 25>>::type;
25 static_assert((ExpectedResult {} == ActualResultSimplified {}),
26 "front_list_t did not return the first element of the index_sequence.");
28 static_assert((ExpectedResult {} == ActualResultExplicit {}),
29 "front_list did not return the first element of the index_sequence.");
32GTEST_TEST(testIntegerSequenceAlgorithms, theIsEmptyAlgorithmChecksIfAnIntegerSequenceIsEmpty)
34 using EmptyList = std::index_sequence<>;
35 using NonEmptyList = std::index_sequence<5, 10, 15, 20, 25>;
37 static_assert((!DryChem::is_empty_list_v<NonEmptyList>),
"is_empty_list_v was not false on a non-empty list.");
38 static_assert((!DryChem::is_empty_list<NonEmptyList>::value),
"is_empty_list was not false on a non-empty list.");
40 static_assert((DryChem::is_empty_list_v<EmptyList>),
"is_empty_list_v was not true on an empty list.");
41 static_assert((DryChem::is_empty_list<EmptyList>::value),
"is_empty_list was not true on an empty list.");
44GTEST_TEST(testIntegerSequenceAlgorithms, thePopFrontAlgorithmRemovesAnElementFromTheFrontOfAnIntegerSequence)
46 using ExpectedResult = std::index_sequence<10, 15, 20, 25>;
47 using ActualResultSimplified = DryChem::pop_front_list_t<std::index_sequence<5, 10, 15, 20, 25>>;
48 using ActualResultExplicit =
typename DryChem::pop_front_list<std::index_sequence<5, 10, 15, 20, 25>>::type;
50 static_assert((std::is_same_v<ExpectedResult, ActualResultSimplified>),
51 "pop_front_list_t did not remove the first element of the index_sequence.");
53 static_assert((std::is_same_v<ExpectedResult, ActualResultExplicit>),
54 "pop_front_list did not remove the first element of the index_sequence.");
57GTEST_TEST(testIntegerSequenceAlgorithms, thePushBackAlgorithmAddsANewElementToTheBackOfAnIntegerSequence)
59 using CT30 = std::integral_constant<std::size_t, 30>;
60 using ExpectedResult = std::index_sequence<5, 10, 15, 20, 25, 30>;
61 using ActualResultSimplified = DryChem::push_back_list_t<std::index_sequence<5, 10, 15, 20, 25>, CT30>;
62 using ActualResultExplicit =
typename DryChem::push_back_list<std::index_sequence<5, 10, 15, 20, 25>, CT30>::type;
64 static_assert((std::is_same_v<ExpectedResult, ActualResultSimplified>),
65 "push_back_list_t did not add a new element to the back of the index_sequence.");
67 static_assert((std::is_same_v<ExpectedResult, ActualResultExplicit>),
68 "push_back_list did not add a new element to the back of the index_sequence.");
71GTEST_TEST(testIntegerSequenceAlgorithms, thePushFrontAlgorithmAddsANewElementToTheFrontOfAnIntegerSequence)
73 using CT0 = std::integral_constant<std::size_t, 0>;
74 using ExpectedResult = std::index_sequence<0, 5, 10, 15, 20, 25>;
75 using ActualResultSimplified = DryChem::push_front_list_t<std::index_sequence<5, 10, 15, 20, 25>, CT0>;
76 using ActualResultExplicit =
typename DryChem::push_front_list<std::index_sequence<5, 10, 15, 20, 25>, CT0>::type;
78 static_assert((std::is_same_v<ExpectedResult, ActualResultSimplified>),
79 "push_front_list_t did not add a new element to the front of the index_sequence.");
81 static_assert((std::is_same_v<ExpectedResult, ActualResultExplicit>),
82 "push_front_list did not add a new element to the front of the index_sequence.");
85GTEST_TEST(testIntegerSequenceAlgorithms, theReverseAlgorithmReversesTheSuppliedIntegerSequence)
87 using ExpectedResult = std::index_sequence<25, 20, 15, 10, 5>;
88 using ActualResultSimplified = DryChem::reverse_list_t<std::index_sequence<5, 10, 15, 20, 25>>;
89 using ActualResultExplicit =
typename DryChem::reverse_list<std::index_sequence<5, 10, 15, 20, 25>>::type;
92 (std::is_same_v<ExpectedResult, ActualResultSimplified>),
"reverse_list_t did not reverse the index_sequence.");
95 (std::is_same_v<ExpectedResult, ActualResultExplicit>),
"reverse_list did not reverse the index_sequence.");
GTEST_TEST(testIntegerSequenceAlgorithms, theFrontListAlgorithmReturnsTheFirstElementOfAnIntegerSequence)
Definition testIntegerSequenceAlgorithms.hpp:19