@@ -72,81 +72,78 @@ auto decode_error(const std::string &what, std::size_t offset) {
7272}
7373
7474template <typename InType, typename Builder, typename Callable>
75- auto decode_tests (Builder &_, Callable &&do_decode) {
76- using OutType = fixture_type_t <decltype (_)>;
75+ auto decode_tests (Builder &_, Callable &&decode) {
7776 using boost::get;
7877 using std::get;
7978
80- _.test (" integer" , [do_decode]() {
79+ using OutType = fixture_type_t <decltype (_)>;
80+ using Integer = typename OutType::integer;
81+ using String = typename OutType::string;
82+ using List = typename OutType::list;
83+ using Dict = typename OutType::dict;
84+
85+ _.test (" integer" , [decode]() {
8186 auto pos = make_data<InType>(" i42e" );
82- auto pos_value = do_decode (pos);
83- expect (get<typename OutType::integer >(pos_value), equal_to (42 ));
87+ auto pos_value = decode (pos);
88+ expect (get<Integer >(pos_value), equal_to (42 ));
8489
8590 auto neg = make_data<InType>(" i-42e" );
86- auto neg_value = do_decode (neg);
87- expect (get<typename OutType::integer >(neg_value), equal_to (-42 ));
91+ auto neg_value = decode (neg);
92+ expect (get<Integer >(neg_value), equal_to (-42 ));
8893 });
8994
90- _.test (" string" , [do_decode ]() {
95+ _.test (" string" , [decode ]() {
9196 auto data = make_data<InType>(" 4:spam" );
9297 // Silence GCC < 10.
9398 [[maybe_unused]] auto within_data_memory = within_memory (data);
9499
95- auto value = do_decode (data);
96- auto str = get<typename OutType::string >(value);
100+ auto value = decode (data);
101+ auto str = get<String >(value);
97102 expect (str, equal_to (" spam" ));
98- if constexpr (std::ranges::view<typename OutType::string >) {
103+ if constexpr (std::ranges::view<String >) {
99104 expect (&*str.begin (), within_data_memory);
100105 expect (&*str.end (), within_data_memory);
101106 }
102107 });
103108
104- _.test (" list" , [do_decode ]() {
109+ _.test (" list" , [decode ]() {
105110 auto data = make_data<InType>(" li42ee" );
106- auto value = do_decode (data);
107- auto list = get<typename OutType::list >(value);
108- expect (get<typename OutType::integer >(list[0 ]), equal_to (42 ));
111+ auto value = decode (data);
112+ auto list = get<List >(value);
113+ expect (get<Integer >(list[0 ]), equal_to (42 ));
109114 });
110115
111- _.test (" dict" , [do_decode ]() {
116+ _.test (" dict" , [decode ]() {
112117 auto data = make_data<InType>(" d4:spami42ee" );
113118 // Silence GCC < 10.
114119 [[maybe_unused]] auto within_data_memory = within_memory (data);
115120
116- auto value = do_decode (data);
117- auto dict = get<typename OutType::dict >(value);
118- expect (get<typename OutType::integer >(dict[" spam" ]), equal_to (42 ));
121+ auto value = decode (data);
122+ auto dict = get<Dict >(value);
123+ expect (get<Integer >(dict[" spam" ]), equal_to (42 ));
119124
120125 auto str = dict.find (" spam" )->first ;
121126 expect (str, equal_to (" spam" ));
122- if constexpr (std::ranges::view<typename OutType::string >) {
127+ if constexpr (std::ranges::view<String >) {
123128 expect (&*str.begin (), within_data_memory);
124129 expect (&*str.end (), within_data_memory);
125130 }
126131 });
127132
128- _.test (" nested" , [do_decode ]() {
133+ _.test (" nested" , [decode ]() {
129134 auto data = make_data<InType>(
130135 " d"
131136 " 3:one" " i1e"
132137 " 5:three" " l" " d" " 3:bar" " i0e" " 3:foo" " i0e" " e" " e"
133138 " 3:two" " l" " i3e" " 3:foo" " i4e" " e"
134139 " e"
135140 );
136- auto value = do_decode (data);
137-
138- auto dict = get<typename OutType::dict>(value);
139- expect (get<typename OutType::integer>(dict[" one" ]), equal_to (1 ));
140-
141- expect (get<typename OutType::string>(
142- get<typename OutType::list>(dict[" two" ])[1 ]
143- ), equal_to (" foo" ));
144-
145- expect (get<typename OutType::integer>(
146- get<typename OutType::dict>(
147- get<typename OutType::list>(dict[" three" ])[0 ]
148- )[" foo" ]
149- ), equal_to (0 ));
141+ auto value = decode (data);
142+ auto dict = get<Dict>(value);
143+ expect (get<Integer>(dict[" one" ]), equal_to (1 ));
144+ expect (get<String>(get<List>(dict[" two" ])[1 ]), equal_to (" foo" ));
145+ expect (get<Integer>(get<Dict>(get<List>(dict[" three" ])[0 ])[" foo" ]),
146+ equal_to (0 ));
150147 });
151148}
152149
0 commit comments