! Generated by cart. DO NOT EDIT
program main
    implicit none

    if (.not.run()) stop 1
contains
    function run() result(passed)
        use drop_then_test, only: &
                drop_then_drop_then => &
                    test_drop_then
        use either_test, only: &
                either_either => &
                    test_either
        use many1_test, only: &
                many1_many1 => &
                    test_many1
        use many1_with_separator_test, only: &
                many1_with_separator_many1_with_separator => &
                    test_many1_with_separator
        use many_test, only: &
                many_many => &
                    test_many
        use many_with_separator_test, only: &
                many_with_separator_many_with_separator => &
                    test_many_with_separator
        use optionally_test, only: &
                optionally_optionally => &
                    test_optionally
        use parse_character_test, only: &
                parse_character_parse_character => &
                    test_parse_character
        use parse_digit_test, only: &
                parse_digit_parse_digit => &
                    test_parse_digit
        use parse_end_of_input_test, only: &
                parse_end_of_input_parse_end_of_input => &
                    test_parse_end_of_input
        use parse_integer_test, only: &
                parse_integer_parse_integer => &
                    test_parse_integer
        use parse_rational_test, only: &
                parse_rational_parse_rational => &
                    test_parse_rational
        use parse_string_test, only: &
                parse_string_parse_string => &
                    test_parse_string
        use parse_whitespace_test, only: &
                parse_whitespace_parse_whitespace => &
                    test_parse_whitespace
        use parse_with_test, only: &
                parse_with_parse_with => &
                    test_parse_with
        use position_test, only: &
                position_position => &
                    test_position
        use repeat_test, only: &
                repeat_repeat => &
                    test_repeat
        use sequence_test, only: &
                sequence_sequence => &
                    test_sequence
        use then_drop_test, only: &
                then_drop_then_drop => &
                    test_then_drop
        use veggies, only: test_item_t, test_that, run_tests



        logical :: passed

        type(test_item_t) :: tests
        type(test_item_t) :: individual_tests(19)

        individual_tests(1) = drop_then_drop_then()
        individual_tests(2) = either_either()
        individual_tests(3) = many1_many1()
        individual_tests(4) = many1_with_separator_many1_with_separator()
        individual_tests(5) = many_many()
        individual_tests(6) = many_with_separator_many_with_separator()
        individual_tests(7) = optionally_optionally()
        individual_tests(8) = parse_character_parse_character()
        individual_tests(9) = parse_digit_parse_digit()
        individual_tests(10) = parse_end_of_input_parse_end_of_input()
        individual_tests(11) = parse_integer_parse_integer()
        individual_tests(12) = parse_rational_parse_rational()
        individual_tests(13) = parse_string_parse_string()
        individual_tests(14) = parse_whitespace_parse_whitespace()
        individual_tests(15) = parse_with_parse_with()
        individual_tests(16) = position_position()
        individual_tests(17) = repeat_repeat()
        individual_tests(18) = sequence_sequence()
        individual_tests(19) = then_drop_then_drop()
        tests = test_that(individual_tests)


        passed = run_tests(tests)

    end function
end program
