@@ -219,6 +219,39 @@ TEST_CASE("write uint32_t", "[byterator]") {
219219 CHECK ((i == std::end (a)));
220220}
221221
222+ TEST_CASE (" peek uint64_t" , " [byterator]" ) {
223+ auto const a = std::array{
224+ stdx::to_be<std::uint16_t >(0x0102 ), stdx::to_be<std::uint16_t >(0x0304 ),
225+ stdx::to_be<std::uint16_t >(0x0506 ), stdx::to_be<std::uint16_t >(0x0708 )};
226+ auto i = stdx::byterator{std::begin (a)};
227+ static_assert (std::is_same_v<decltype (i.readu64 ()), std::uint64_t >);
228+ CHECK (i.peeku64 () == stdx::to_be<std::uint64_t >(0x0102030405060708 ));
229+ CHECK ((i == std::begin (a)));
230+ }
231+
232+ TEST_CASE (" read uint64_t" , " [byterator]" ) {
233+ auto const a = std::array{
234+ stdx::to_be<std::uint16_t >(0x0102 ), stdx::to_be<std::uint16_t >(0x0304 ),
235+ stdx::to_be<std::uint16_t >(0x0506 ), stdx::to_be<std::uint16_t >(0x0708 )};
236+ auto i = stdx::byterator{std::begin (a)};
237+ static_assert (std::is_same_v<decltype (i.readu64 ()), std::uint64_t >);
238+ CHECK (i.readu64 () == stdx::to_be<std::uint64_t >(0x0102030405060708 ));
239+ CHECK ((i == std::end (a)));
240+ }
241+
242+ TEST_CASE (" write uint64_t" , " [byterator]" ) {
243+ auto a = std::array{
244+ stdx::to_be<std::uint16_t >(0x0102 ), stdx::to_be<std::uint16_t >(0x0304 ),
245+ stdx::to_be<std::uint16_t >(0x0506 ), stdx::to_be<std::uint16_t >(0x0708 )};
246+ auto i = stdx::byterator{std::begin (a)};
247+ i.writeu64 (stdx::to_be<std::uint64_t >(0x05060708090A0B0C ));
248+ CHECK (a[0 ] == stdx::to_be<std::uint16_t >(0x0506 ));
249+ CHECK (a[1 ] == stdx::to_be<std::uint16_t >(0x0708 ));
250+ CHECK (a[2 ] == stdx::to_be<std::uint16_t >(0x090A ));
251+ CHECK (a[3 ] == stdx::to_be<std::uint16_t >(0x0B0C ));
252+ CHECK ((i == std::end (a)));
253+ }
254+
222255namespace {
223256enum struct E : std::uint8_t { A = 1 , B = 2 , C = 3 };
224257}
0 commit comments