|
5 | 5 |
|
6 | 6 | #include <catch2/catch_template_test_macros.hpp>
|
7 | 7 | #include <catch2/catch_test_macros.hpp>
|
| 8 | +#include <fmt/format.h> |
8 | 9 |
|
9 | 10 | using pseudo_pext_direct = lookup::pseudo_pext_lookup<>;
|
10 | 11 | using pseudo_pext_indirect_1 = lookup::pseudo_pext_lookup<true, 1>;
|
@@ -98,3 +99,39 @@ TEMPLATE_TEST_CASE("lookup with scoped enum entries", "[pseudo pext lookup]",
|
98 | 99 | CHECK(lookup[some_key_t::KAPPA] == 87);
|
99 | 100 | CHECK(lookup[some_key_t::GAMMA] == 4);
|
100 | 101 | }
|
| 102 | + |
| 103 | +TEST_CASE("pbt regression 0", "[pseudo pext lookup]") { |
| 104 | + constexpr auto lookup = lookup::pseudo_pext_lookup<true, 2>::make( |
| 105 | + CX_VALUE(lookup::input<std::uint16_t, std::uint16_t, 5>{ |
| 106 | + 0, std::array<lookup::entry<std::uint16_t, std::uint16_t>, 5>{ |
| 107 | + lookup::entry<std::uint16_t, std::uint16_t>{1, 0}, |
| 108 | + lookup::entry<std::uint16_t, std::uint16_t>{3, 0}, |
| 109 | + lookup::entry<std::uint16_t, std::uint16_t>{11, 0}, |
| 110 | + lookup::entry<std::uint16_t, std::uint16_t>{16, 0}, |
| 111 | + lookup::entry<std::uint16_t, std::uint16_t>{0, 1}}})); |
| 112 | + |
| 113 | + CHECK(lookup[1] == 0); |
| 114 | + CHECK(lookup[3] == 0); |
| 115 | + CHECK(lookup[11] == 0); |
| 116 | + CHECK(lookup[16] == 0); |
| 117 | + CHECK(lookup[0] == 1); |
| 118 | +} |
| 119 | + |
| 120 | +TEST_CASE("pbt regression 1", "[pseudo pext lookup]") { |
| 121 | + constexpr auto lookup = lookup::pseudo_pext_lookup<true, 2>::make( |
| 122 | + CX_VALUE(lookup::input<std::uint16_t, std::uint16_t, 6>{ |
| 123 | + 0, std::array<lookup::entry<std::uint16_t, std::uint16_t>, 6>{ |
| 124 | + lookup::entry<std::uint16_t, std::uint16_t>{1, 0}, |
| 125 | + lookup::entry<std::uint16_t, std::uint16_t>{3, 0}, |
| 126 | + lookup::entry<std::uint16_t, std::uint16_t>{4, 0}, |
| 127 | + lookup::entry<std::uint16_t, std::uint16_t>{15, 0}, |
| 128 | + lookup::entry<std::uint16_t, std::uint16_t>{30, 0}, |
| 129 | + lookup::entry<std::uint16_t, std::uint16_t>{31, 1}}})); |
| 130 | + |
| 131 | + CHECK(lookup[1] == 0); |
| 132 | + CHECK(lookup[3] == 0); |
| 133 | + CHECK(lookup[4] == 0); |
| 134 | + CHECK(lookup[15] == 0); |
| 135 | + CHECK(lookup[30] == 0); |
| 136 | + CHECK(lookup[31] == 1); |
| 137 | +} |
0 commit comments