diff --git a/tests/test_ASTNodeDataType.cpp b/tests/test_ASTNodeDataType.cpp index 21f5c08bfbe6399b8d5a27ea2c33b56e84f78232..3d4ea9b6954363cdd9007679e425d5f4f4c74c36 100644 --- a/tests/test_ASTNodeDataType.cpp +++ b/tests/test_ASTNodeDataType.cpp @@ -31,6 +31,9 @@ TEST_CASE("ASTNodeDataType", "[language]") const ASTNodeDataType list_dt = ASTNodeDataType::build<ASTNodeDataType::list_t>(type_list); + const ASTNodeDataType empty_list_dt = + ASTNodeDataType::build<ASTNodeDataType::list_t>(std::vector<std::shared_ptr<const ASTNodeDataType>>{}); + SECTION("dataTypeName") { REQUIRE(dataTypeName(undefined_dt) == "undefined"); @@ -44,6 +47,7 @@ TEST_CASE("ASTNodeDataType", "[language]") REQUIRE(dataTypeName(function_dt) == "function"); REQUIRE(dataTypeName(builtin_function_dt) == "builtin_function"); REQUIRE(dataTypeName(list_dt) == "list(R*Z)"); + REQUIRE(dataTypeName(empty_list_dt) == "list(void)"); REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(bool_dt)) == "tuple(B)"); REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(unsigned_int_dt)) == "tuple(N)"); REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(int_dt)) == "tuple(Z)"); @@ -57,6 +61,10 @@ TEST_CASE("ASTNodeDataType", "[language]") REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::vector_t>(1)) == "R^1"); REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::vector_t>(2)) == "R^2"); REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::vector_t>(3)) == "R^3"); + + REQUIRE(dataTypeName(std::vector<ASTNodeDataType>{}) == "void"); + REQUIRE(dataTypeName(std::vector<ASTNodeDataType>{bool_dt}) == "B"); + REQUIRE(dataTypeName(std::vector<ASTNodeDataType>{bool_dt, unsigned_int_dt}) == "(B,N)"); } SECTION("promotion")