| 1 | // Copyright (c) 2023 Bela Schaum, X-Ryl669, Denis Mikhailov, Antony Polukhin. |
| 2 | // |
| 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying |
| 4 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| 5 | |
| 6 | // Generated by misc/generate_fields_names_big.cpp.py |
| 7 | |
| 8 | #include <boost/pfr/core_name.hpp> |
| 9 | #include <type_traits> |
| 10 | |
| 11 | #include <boost/core/lightweight_test.hpp> |
| 12 | |
| 13 | namespace testing { |
| 14 | |
| 15 | template <class... Types> |
| 16 | auto make_stdarray(const Types&... t) { |
| 17 | return std::array<std::common_type_t<Types...>, sizeof...(Types)>{t...}; |
| 18 | } |
| 19 | |
| 20 | struct Aggregate1 { |
| 21 | int EXuT_0EBItazIzOuovbOSyOYGqbJw1uQ; |
| 22 | |
| 23 | }; |
| 24 | struct Aggregate2 { |
| 25 | int SnihXdx4VbVTcwKm2PGOy8gBYi; |
| 26 | int l_hKC0UCDgf9akyA6pr1IG; |
| 27 | |
| 28 | }; |
| 29 | struct Aggregate3 { |
| 30 | int GWYXwjwOCC5uOWkmZjrjk95yaOQbVfUbSJRCoQoRyPXjzp7x2c7WMwvck0JeOg; |
| 31 | int xdtwasd3bFi2mErdk64LyyWKcOb5gudT50eCBMUHraYYmd8Yxp9M0pO1DmDHWQZ4LEshxseqUjzoTeuwnVwA6uvStNpN0ZtZ; |
| 32 | int shqTJk7vA32s2DQB5o7TyecNLMHLUogzWYO_NwRsgX; |
| 33 | |
| 34 | }; |
| 35 | struct Aggregate4 { |
| 36 | int ofYcwHz8V6YMDPsHqyIB5TVZckFc3cK0Da; |
| 37 | int HiGE0sOlKCO; |
| 38 | int F5Nrv0LUdUSmrzLgPmtENIEe5uJQyRXC0owDVh9IjRBdA_aSEqiMx_EhWXEkbddK5MCgCv223s9EXlMc55ByxpG6XYbXS6nHywEy; |
| 39 | int emjjbXYK; |
| 40 | |
| 41 | }; |
| 42 | struct Aggregate5 { |
| 43 | int M0u7SIZSVWJ0KqQygT_6npmZv1XzZI5dJcwjQuqq6lIdlSJSpnAKhOg82qyVywwNq3cvvmnmAv7; |
| 44 | int SXEUFB6z; |
| 45 | int tDxT; |
| 46 | int sV2m6xg3MxKN1Xln2dXyBh8rkF7lUUfHIK8nK4FRzru2DXeT; |
| 47 | int ycEXe3x03PvbXqFJzOKMq8i4XLAZfyY2i4HONhv1Wx_; |
| 48 | |
| 49 | }; |
| 50 | |
| 51 | |
| 52 | void test_get_name_1() { |
| 53 | BOOST_TEST_EQ( ((boost::pfr::get_name<0, Aggregate1>())), "EXuT_0EBItazIzOuovbOSyOYGqbJw1uQ" ); |
| 54 | |
| 55 | } |
| 56 | void test_get_name_2() { |
| 57 | BOOST_TEST_EQ( ((boost::pfr::get_name<0, Aggregate2>())), "SnihXdx4VbVTcwKm2PGOy8gBYi" ); |
| 58 | BOOST_TEST_EQ( ((boost::pfr::get_name<1, Aggregate2>())), "l_hKC0UCDgf9akyA6pr1IG" ); |
| 59 | |
| 60 | } |
| 61 | void test_get_name_3() { |
| 62 | BOOST_TEST_EQ( ((boost::pfr::get_name<0, Aggregate3>())), "GWYXwjwOCC5uOWkmZjrjk95yaOQbVfUbSJRCoQoRyPXjzp7x2c7WMwvck0JeOg" ); |
| 63 | BOOST_TEST_EQ( ((boost::pfr::get_name<1, Aggregate3>())), "xdtwasd3bFi2mErdk64LyyWKcOb5gudT50eCBMUHraYYmd8Yxp9M0pO1DmDHWQZ4LEshxseqUjzoTeuwnVwA6uvStNpN0ZtZ" ); |
| 64 | BOOST_TEST_EQ( ((boost::pfr::get_name<2, Aggregate3>())), "shqTJk7vA32s2DQB5o7TyecNLMHLUogzWYO_NwRsgX" ); |
| 65 | |
| 66 | } |
| 67 | void test_get_name_4() { |
| 68 | BOOST_TEST_EQ( ((boost::pfr::get_name<0, Aggregate4>())), "ofYcwHz8V6YMDPsHqyIB5TVZckFc3cK0Da" ); |
| 69 | BOOST_TEST_EQ( ((boost::pfr::get_name<1, Aggregate4>())), "HiGE0sOlKCO" ); |
| 70 | BOOST_TEST_EQ( ((boost::pfr::get_name<2, Aggregate4>())), "F5Nrv0LUdUSmrzLgPmtENIEe5uJQyRXC0owDVh9IjRBdA_aSEqiMx_EhWXEkbddK5MCgCv223s9EXlMc55ByxpG6XYbXS6nHywEy" ); |
| 71 | BOOST_TEST_EQ( ((boost::pfr::get_name<3, Aggregate4>())), "emjjbXYK" ); |
| 72 | |
| 73 | } |
| 74 | void test_get_name_5() { |
| 75 | BOOST_TEST_EQ( ((boost::pfr::get_name<0, Aggregate5>())), "M0u7SIZSVWJ0KqQygT_6npmZv1XzZI5dJcwjQuqq6lIdlSJSpnAKhOg82qyVywwNq3cvvmnmAv7" ); |
| 76 | BOOST_TEST_EQ( ((boost::pfr::get_name<1, Aggregate5>())), "SXEUFB6z" ); |
| 77 | BOOST_TEST_EQ( ((boost::pfr::get_name<2, Aggregate5>())), "tDxT" ); |
| 78 | BOOST_TEST_EQ( ((boost::pfr::get_name<3, Aggregate5>())), "sV2m6xg3MxKN1Xln2dXyBh8rkF7lUUfHIK8nK4FRzru2DXeT" ); |
| 79 | BOOST_TEST_EQ( ((boost::pfr::get_name<4, Aggregate5>())), "ycEXe3x03PvbXqFJzOKMq8i4XLAZfyY2i4HONhv1Wx_" ); |
| 80 | |
| 81 | } |
| 82 | |
| 83 | |
| 84 | void test_names_as_array_1() { |
| 85 | const auto expected = make_stdarray( |
| 86 | t: std::string_view{"EXuT_0EBItazIzOuovbOSyOYGqbJw1uQ" } |
| 87 | |
| 88 | ); |
| 89 | const auto value = boost::pfr::names_as_array<Aggregate1>(); |
| 90 | BOOST_TEST_EQ(expected.size(), value.size()); |
| 91 | for (std::size_t i=0;i<expected.size();++i) { |
| 92 | BOOST_TEST_EQ(value[i], expected[i]); |
| 93 | } |
| 94 | } |
| 95 | void test_names_as_array_2() { |
| 96 | const auto expected = make_stdarray( |
| 97 | t: std::string_view{"SnihXdx4VbVTcwKm2PGOy8gBYi" } |
| 98 | , t: std::string_view{"l_hKC0UCDgf9akyA6pr1IG" } |
| 99 | |
| 100 | ); |
| 101 | const auto value = boost::pfr::names_as_array<Aggregate2>(); |
| 102 | BOOST_TEST_EQ(expected.size(), value.size()); |
| 103 | for (std::size_t i=0;i<expected.size();++i) { |
| 104 | BOOST_TEST_EQ(value[i], expected[i]); |
| 105 | } |
| 106 | } |
| 107 | void test_names_as_array_3() { |
| 108 | const auto expected = make_stdarray( |
| 109 | t: std::string_view{"GWYXwjwOCC5uOWkmZjrjk95yaOQbVfUbSJRCoQoRyPXjzp7x2c7WMwvck0JeOg" } |
| 110 | , t: std::string_view{"xdtwasd3bFi2mErdk64LyyWKcOb5gudT50eCBMUHraYYmd8Yxp9M0pO1DmDHWQZ4LEshxseqUjzoTeuwnVwA6uvStNpN0ZtZ" } |
| 111 | , t: std::string_view{"shqTJk7vA32s2DQB5o7TyecNLMHLUogzWYO_NwRsgX" } |
| 112 | |
| 113 | ); |
| 114 | const auto value = boost::pfr::names_as_array<Aggregate3>(); |
| 115 | BOOST_TEST_EQ(expected.size(), value.size()); |
| 116 | for (std::size_t i=0;i<expected.size();++i) { |
| 117 | BOOST_TEST_EQ(value[i], expected[i]); |
| 118 | } |
| 119 | } |
| 120 | void test_names_as_array_4() { |
| 121 | const auto expected = make_stdarray( |
| 122 | t: std::string_view{"ofYcwHz8V6YMDPsHqyIB5TVZckFc3cK0Da" } |
| 123 | , t: std::string_view{"HiGE0sOlKCO" } |
| 124 | , t: std::string_view{"F5Nrv0LUdUSmrzLgPmtENIEe5uJQyRXC0owDVh9IjRBdA_aSEqiMx_EhWXEkbddK5MCgCv223s9EXlMc55ByxpG6XYbXS6nHywEy" } |
| 125 | , t: std::string_view{"emjjbXYK" } |
| 126 | |
| 127 | ); |
| 128 | const auto value = boost::pfr::names_as_array<Aggregate4>(); |
| 129 | BOOST_TEST_EQ(expected.size(), value.size()); |
| 130 | for (std::size_t i=0;i<expected.size();++i) { |
| 131 | BOOST_TEST_EQ(value[i], expected[i]); |
| 132 | } |
| 133 | } |
| 134 | void test_names_as_array_5() { |
| 135 | const auto expected = make_stdarray( |
| 136 | t: std::string_view{"M0u7SIZSVWJ0KqQygT_6npmZv1XzZI5dJcwjQuqq6lIdlSJSpnAKhOg82qyVywwNq3cvvmnmAv7" } |
| 137 | , t: std::string_view{"SXEUFB6z" } |
| 138 | , t: std::string_view{"tDxT" } |
| 139 | , t: std::string_view{"sV2m6xg3MxKN1Xln2dXyBh8rkF7lUUfHIK8nK4FRzru2DXeT" } |
| 140 | , t: std::string_view{"ycEXe3x03PvbXqFJzOKMq8i4XLAZfyY2i4HONhv1Wx_" } |
| 141 | |
| 142 | ); |
| 143 | const auto value = boost::pfr::names_as_array<Aggregate5>(); |
| 144 | BOOST_TEST_EQ(expected.size(), value.size()); |
| 145 | for (std::size_t i=0;i<expected.size();++i) { |
| 146 | BOOST_TEST_EQ(value[i], expected[i]); |
| 147 | } |
| 148 | } |
| 149 | |
| 150 | |
| 151 | |
| 152 | } // namespace testing |
| 153 | |
| 154 | int main() { |
| 155 | testing::test_get_name_1(); |
| 156 | testing::test_get_name_2(); |
| 157 | testing::test_get_name_3(); |
| 158 | testing::test_get_name_4(); |
| 159 | testing::test_get_name_5(); |
| 160 | |
| 161 | testing::test_names_as_array_1(); |
| 162 | testing::test_names_as_array_2(); |
| 163 | testing::test_names_as_array_3(); |
| 164 | testing::test_names_as_array_4(); |
| 165 | testing::test_names_as_array_5(); |
| 166 | |
| 167 | |
| 168 | return boost::report_errors(); |
| 169 | } |
| 170 | |
| 171 | |