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