diff --git a/src/tests/test.cpp b/src/tests/test.cpp index 6960147..cddd63f 100644 --- a/src/tests/test.cpp +++ b/src/tests/test.cpp @@ -46,7 +46,22 @@ TEST_CASE("Parser parses correctly", "[Parser]") { REQUIRE(get(pop_and_front(dq)).value == "-"); REQUIRE(get(pop_and_front(dq)).value == "-."); REQUIRE(get(pop_and_front(dq)).value == ".-"); + } + SECTION("Nested lists") { + Parser p(Lexer("((((0) (1) (2) (3))))")); + auto l0 = get(*p.next()).list; + auto l1 = get(pop_and_front(l0)).list; + auto l2 = get(pop_and_front(l1)).list; + auto l20 = get(pop_and_front(l2)).list; + auto l21 = get(pop_and_front(l2)).list; + auto l22 = get(pop_and_front(l2)).list; + auto l23 = get(pop_and_front(l2)).list; + + REQUIRE(get(pop_and_front(l20)).value == 0); + REQUIRE(get(pop_and_front(l21)).value == 1); + REQUIRE(get(pop_and_front(l22)).value == 2); + REQUIRE(get(pop_and_front(l23)).value == 3); } }