@@ -239,3 +239,41 @@ TEST_CASE("group sequence inside sequence encoder_V2/decoder_v2","[group_sequenc
239239 REQUIRE (test_case.decoding (" \xC0\x86\x81\xD0\xB2\x82\xB2 " ,test_6.cref (),true ));
240240 }
241241}
242+
243+ TEST_CASE (" sequence with optional group encoder_V2/decoder_v2" ," [sequence_optional_group_encoder_v2_decoder_v2]" )
244+ {
245+ fast_test_coding_case_v2<simple14::templates_description> test_case;
246+
247+ SECTION (" group not present" )
248+ {
249+ simple14::Test_7 test_7;
250+ simple14::Test_7_mref test_7_mref = test_7.mref ();
251+
252+ auto sequence_7_mref = test_7_mref.set_sequence_7 ();
253+ sequence_7_mref.resize (1 );
254+
255+ auto element_sequence = sequence_7_mref.front ();
256+ element_sequence.set_field_7_3 ().as (50 );
257+
258+ REQUIRE (test_case.encoding (test_7.cref ()," \xC0\x87\x81\xC0\xB2 " ,true ));
259+ REQUIRE (test_case.decoding (" \xC0\x87\x81\xC0\xB2 " ,test_7.cref (),true ));
260+ }
261+
262+ SECTION (" group present" )
263+ {
264+ simple14::Test_7 test_7;
265+ simple14::Test_7_mref test_7_mref = test_7.mref ();
266+
267+ auto sequence_7_mref = test_7_mref.set_sequence_7 ();
268+ sequence_7_mref.resize (1 );
269+
270+ auto element_sequence = sequence_7_mref.front ();
271+ element_sequence.set_field_7_3 ().as (50 );
272+
273+ auto group_7 = element_sequence.set_group_7 ();
274+ group_7.set_field_7_4 ().as (20 );
275+
276+ REQUIRE (test_case.encoding (test_7.cref ()," \xC0\x87\x81\xE0\xB2\x94 " ,true ));
277+ REQUIRE (test_case.decoding (" \xC0\x87\x81\xE0\xB2\x94 " ,test_7.cref (),true ));
278+ }
279+ }
0 commit comments