@@ -29,6 +29,14 @@ TEST(JSONBinPack_Encoder, FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED_foo_0_foo_3) {
2929 EXPECT_BYTES (stream, {0x04 , 0x66 , 0x6f , 0x6f , 0x00 , 0x01 , 0x05 });
3030}
3131
32+ TEST (JSONBinPack_Encoder, FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED_unicode_1) {
33+ const sourcemeta::jsontoolkit::JSON document{" foø" };
34+ OutputByteStream stream{};
35+ sourcemeta::jsonbinpack::Encoder encoder{stream};
36+ encoder.FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED (document, {1 });
37+ EXPECT_BYTES (stream, {0x04 , 0x66 , 0x6f , 0xc3 , 0xb8 });
38+ }
39+
3240TEST (JSONBinPack_Encoder, ROOF_VARINT_PREFIX_UTF8_STRING_SHARED_foo_4) {
3341 const sourcemeta::jsontoolkit::JSON document{" foo" };
3442 OutputByteStream stream{};
@@ -46,6 +54,14 @@ TEST(JSONBinPack_Encoder, ROOF_VARINT_PREFIX_UTF8_STRING_SHARED_foo_3_foo_5) {
4654 EXPECT_BYTES (stream, {0x01 , 0x66 , 0x6f , 0x6f , 0x00 , 0x03 , 0x05 });
4755}
4856
57+ TEST (JSONBinPack_Encoder, ROOF_VARINT_PREFIX_UTF8_STRING_SHARED_unicode_4) {
58+ const sourcemeta::jsontoolkit::JSON document{" foø" };
59+ OutputByteStream stream{};
60+ sourcemeta::jsonbinpack::Encoder encoder{stream};
61+ encoder.ROOF_VARINT_PREFIX_UTF8_STRING_SHARED (document, {4 });
62+ EXPECT_BYTES (stream, {0x01 , 0x66 , 0x6f , 0xc3 , 0xb8 });
63+ }
64+
4965TEST (JSONBinPack_Encoder, BOUNDED_8BIT_PREFIX_UTF8_STRING_SHARED_foo_3_5) {
5066 const sourcemeta::jsontoolkit::JSON document{" foo" };
5167 OutputByteStream stream{};
@@ -72,6 +88,14 @@ TEST(JSONBinPack_Encoder,
7288 EXPECT_BYTES (stream, {0x04 , 0x66 , 0x6f , 0x6f , 0x00 , 0x01 , 0x05 });
7389}
7490
91+ TEST (JSONBinPack_Encoder, BOUNDED_8BIT_PREFIX_UTF8_STRING_SHARED_unicode_0_6) {
92+ const sourcemeta::jsontoolkit::JSON document{" foø" };
93+ OutputByteStream stream{};
94+ sourcemeta::jsonbinpack::Encoder encoder{stream};
95+ encoder.BOUNDED_8BIT_PREFIX_UTF8_STRING_SHARED (document, {0 , 6 });
96+ EXPECT_BYTES (stream, {0x05 , 0x66 , 0x6f , 0xc3 , 0xb8 });
97+ }
98+
7599TEST (JSONBinPack_Encoder, RFC3339_DATE_INTEGER_TRIPLET_2014_10_01) {
76100 const sourcemeta::jsontoolkit::JSON document{" 2014-10-01" };
77101 OutputByteStream stream{};
@@ -144,3 +168,11 @@ TEST(JSONBinPack_Encoder,
144168 0x05 // Pointer (6 - 1 = 5)
145169 });
146170}
171+
172+ TEST (JSONBinPack_Encoder, PREFIX_VARINT_LENGTH_STRING_SHARED_unicode) {
173+ const sourcemeta::jsontoolkit::JSON document{" foø" };
174+ OutputByteStream stream{};
175+ sourcemeta::jsonbinpack::Encoder encoder{stream};
176+ encoder.PREFIX_VARINT_LENGTH_STRING_SHARED (document, {});
177+ EXPECT_BYTES (stream, {0x05 , 0x66 , 0x6f , 0xc3 , 0xb8 });
178+ }
0 commit comments