From f1a08643f5f19e0167ae5b9d4e867d4f4ffc342b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Del=20Pino?= <stephane.delpino44@gmail.com> Date: Wed, 1 Mar 2023 01:08:09 +0100 Subject: [PATCH] Add missing tests for ASTNodeDataTypeBuilder --- tests/test_ASTNodeDataTypeBuilder.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/test_ASTNodeDataTypeBuilder.cpp b/tests/test_ASTNodeDataTypeBuilder.cpp index b6dc2cac8..2a5777b32 100644 --- a/tests/test_ASTNodeDataTypeBuilder.cpp +++ b/tests/test_ASTNodeDataTypeBuilder.cpp @@ -1180,6 +1180,30 @@ let f: R -> X, x -> x; REQUIRE_THROWS_WITH(ASTNodeDataTypeBuilder{*ast}, "invalid type identifier, 'X' was previously defined as a 'R'"); } + + SECTION("invalid tuple type domain") + { + std::string_view data = R"( +let f: (R) -> R, x -> x; +)"; + TAO_PEGTL_NAMESPACE::string_input input{data, "test.pgs"}; + auto ast = ASTBuilder::build(input); + ASTSymbolTableBuilder{*ast}; + + REQUIRE_THROWS_WITH(ASTNodeDataTypeBuilder{*ast}, "cannot use tuple (R) as a domain for user functions"); + } + + SECTION("invalid tuple type in compound domain") + { + std::string_view data = R"( +let f: N*(R^2) -> R, (x,t) -> x; +)"; + TAO_PEGTL_NAMESPACE::string_input input{data, "test.pgs"}; + auto ast = ASTBuilder::build(input); + ASTSymbolTableBuilder{*ast}; + + REQUIRE_THROWS_WITH(ASTNodeDataTypeBuilder{*ast}, "cannot use tuple (R^2) as a domain for user functions"); + } } } -- GitLab