def test_parse_with_many0_and_unnamed_fields(self):
        # -- ENSURE: Cardinality.zero_or_more.group_count is correct
        # REQUIRES: ParserExt := parse_type.Parser with group_count support
        parse_many0_numbers = TypeBuilder.with_many0(parse_number)
        parse_many0_numbers.name = "Number*"

        type_dict = build_type_dict([parse_many0_numbers, parse_number])
        schema = "Numbers: {:Number*} {:Number}"
        parser = ParserExt(schema, type_dict)

        # -- CASE: Optional numbers are present
        result = parser.parse("Numbers: 1, 2, 3 42")
        expected = ([1, 2, 3], 42)
        self.assertIsNotNone(result)
        self.assertEqual(result.fixed, tuple(expected))

        # -- CASE: Optional numbers are missing := EMPTY-LIST
        result = parser.parse("Numbers:  43")
        expected = ([ ], 43)
        self.assertIsNotNone(result)
        self.assertEqual(result.fixed, tuple(expected))
 def test_with_many0(self):
     # -- ALIAS FOR: one_or_more
     parse_numbers = TypeBuilder.with_many0(parse_number)
     self.check_parse_number_with_many0(parse_numbers)