diff --git a/src/language/utils/ASTNodeDataType.cpp b/src/language/utils/ASTNodeDataType.cpp index 3c4420b12a0615ed1e978638a26fd0f2c72009a5..b89afd13493929a463f4585abb892e7937548906 100644 --- a/src/language/utils/ASTNodeDataType.cpp +++ b/src/language/utils/ASTNodeDataType.cpp @@ -187,7 +187,7 @@ dataTypeName(const ASTNodeDataType& data_type) name = "R^" + stringify(data_type.numberOfRows()) + "x" + stringify(data_type.numberOfColumns()); break; case ASTNodeDataType::tuple_t: - name = "(" + dataTypeName(data_type.contentType()) + "...)"; + name = "(" + dataTypeName(data_type.contentType()) + ")"; break; case ASTNodeDataType::list_t: { std::ostringstream data_type_name_list; diff --git a/tests/test_ASTNodeAffectationExpressionBuilder.cpp b/tests/test_ASTNodeAffectationExpressionBuilder.cpp index edd68ca67131579b980faa728959f854dea2dcf4..7055452b2b3e99f19fd2ec267c70477569297d4d 100644 --- a/tests/test_ASTNodeAffectationExpressionBuilder.cpp +++ b/tests/test_ASTNodeAffectationExpressionBuilder.cpp @@ -1608,7 +1608,7 @@ let s : string, s="foo"; s*=2; let s :(R), s=(1,2,3); s *= 4; )"; - std::string error_message = "undefined affectation type: (R...) *= Z"; + std::string error_message = "undefined affectation type: (R) *= Z"; CHECK_AST_THROWS_WITH(data, error_message); } @@ -1619,7 +1619,7 @@ let s : string, s="foo"; s*=2; let s : (builtin_t), s =(a,b); s *= b; )"; - std::string error_message = "undefined affectation type: (builtin_t...) *= builtin_t"; + std::string error_message = "undefined affectation type: (builtin_t) *= builtin_t"; CHECK_AST_WITH_BUILTIN_THROWS_WITH(data, error_message); } diff --git a/tests/test_ASTNodeDataType.cpp b/tests/test_ASTNodeDataType.cpp index 29ee313082bd7908699c1227d0486aa31538300f..420ca58f6b366b8d41f14eafb5b22f43b52e6c99 100644 --- a/tests/test_ASTNodeDataType.cpp +++ b/tests/test_ASTNodeDataType.cpp @@ -50,11 +50,11 @@ TEST_CASE("ASTNodeDataType", "[language]") REQUIRE(dataTypeName(builtin_function_dt) == "builtin_function"); REQUIRE(dataTypeName(list_dt) == "R*Z"); REQUIRE(dataTypeName(empty_list_dt) == "void"); - REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(bool_dt)) == "(B...)"); - REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(unsigned_int_dt)) == "(N...)"); - REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(int_dt)) == "(Z...)"); - REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(double_dt)) == "(R...)"); - REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(int_dt)) == "(Z...)"); + REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(bool_dt)) == "(B)"); + REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(unsigned_int_dt)) == "(N)"); + REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(int_dt)) == "(Z)"); + REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(double_dt)) == "(R)"); + REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::tuple_t>(int_dt)) == "(Z)"); REQUIRE(dataTypeName(ASTNodeDataType::build<ASTNodeDataType::type_name_id_t>()) == "type_name_id"); diff --git a/tests/test_ASTNodeDataTypeBuilder.cpp b/tests/test_ASTNodeDataTypeBuilder.cpp index 8b1f114bdfd74a4aff575243d5b8ff51f5b75120..5c449d7abf9bc9f083bd7c8206d377360f0f229c 100644 --- a/tests/test_ASTNodeDataTypeBuilder.cpp +++ b/tests/test_ASTNodeDataTypeBuilder.cpp @@ -432,10 +432,10 @@ let t : (B), t = (true, false); std::string_view result = R"( (root:void) `-(language::var_declaration:void) - +-(language::name:t:(B...)) - +-(language::tuple_type_specifier:(B...)) + +-(language::name:t:(B)) + +-(language::tuple_type_specifier:(B)) | `-(language::B_set:B) - +-(language::name:t:(B...)) + +-(language::name:t:(B)) `-(language::expression_list:B*B) +-(language::true_kw:B) `-(language::false_kw:B) @@ -453,10 +453,10 @@ let t : (N), t = (1, 2, 3, 5); std::string_view result = R"( (root:void) `-(language::var_declaration:void) - +-(language::name:t:(N...)) - +-(language::tuple_type_specifier:(N...)) + +-(language::name:t:(N)) + +-(language::tuple_type_specifier:(N)) | `-(language::N_set:N) - +-(language::name:t:(N...)) + +-(language::name:t:(N)) `-(language::expression_list:Z*Z*Z*Z) +-(language::integer:1:Z) +-(language::integer:2:Z) @@ -482,10 +482,10 @@ let t : (Z), t = (2, n, true); | +-(language::name:n:N) | `-(language::integer:3:Z) `-(language::var_declaration:void) - +-(language::name:t:(Z...)) - +-(language::tuple_type_specifier:(Z...)) + +-(language::name:t:(Z)) + +-(language::tuple_type_specifier:(Z)) | `-(language::Z_set:Z) - +-(language::name:t:(Z...)) + +-(language::name:t:(Z)) `-(language::expression_list:Z*N*B) +-(language::integer:2:Z) +-(language::name:n:N) @@ -504,10 +504,10 @@ let t : (R), t = (2, 3.1, 5); std::string_view result = R"( (root:void) `-(language::var_declaration:void) - +-(language::name:t:(R...)) - +-(language::tuple_type_specifier:(R...)) + +-(language::name:t:(R)) + +-(language::tuple_type_specifier:(R)) | `-(language::R_set:R) - +-(language::name:t:(R...)) + +-(language::name:t:(R)) `-(language::expression_list:Z*R*Z) +-(language::integer:2:Z) +-(language::real:3.1:R) @@ -538,12 +538,12 @@ let t3 : (R^2), t3 = ([1,2], a, 0); | +-(language::integer:2:Z) | `-(language::real:3.1:R) +-(language::var_declaration:void) - | +-(language::name:t1:(R^2...)) - | +-(language::tuple_type_specifier:(R^2...)) + | +-(language::name:t1:(R^2)) + | +-(language::tuple_type_specifier:(R^2)) | | `-(language::vector_type:R^2) | | +-(language::R_set:R) | | `-(language::integer:2:Z) - | +-(language::name:t1:(R^2...)) + | +-(language::name:t1:(R^2)) | `-(language::expression_list:R^2*R^2*Z) | +-(language::name:a:R^2) | +-(language::vector_expression:R^2) @@ -551,22 +551,22 @@ let t3 : (R^2), t3 = ([1,2], a, 0); | | `-(language::integer:2:Z) | `-(language::integer:0:Z) +-(language::var_declaration:void) - | +-(language::name:t2:(R^3...)) - | +-(language::tuple_type_specifier:(R^3...)) + | +-(language::name:t2:(R^3)) + | +-(language::tuple_type_specifier:(R^3)) | | `-(language::vector_type:R^3) | | +-(language::R_set:R) | | `-(language::integer:3:Z) - | +-(language::name:t2:(R^3...)) + | +-(language::name:t2:(R^3)) | `-(language::expression_list:Z*Z) | +-(language::integer:0:Z) | `-(language::integer:0:Z) `-(language::var_declaration:void) - +-(language::name:t3:(R^2...)) - +-(language::tuple_type_specifier:(R^2...)) + +-(language::name:t3:(R^2)) + +-(language::tuple_type_specifier:(R^2)) | `-(language::vector_type:R^2) | +-(language::R_set:R) | `-(language::integer:2:Z) - +-(language::name:t3:(R^2...)) + +-(language::name:t3:(R^2)) `-(language::expression_list:R^2*R^2*Z) +-(language::vector_expression:R^2) | +-(language::integer:1:Z) @@ -605,13 +605,13 @@ let t3 : (R^2x2), t3 = ([[1,2],[1,3]], a, 0); | | `-(language::real:1.2:R) | `-(language::integer:4:Z) +-(language::var_declaration:void) - | +-(language::name:t1:(R^2x2...)) - | +-(language::tuple_type_specifier:(R^2x2...)) + | +-(language::name:t1:(R^2x2)) + | +-(language::tuple_type_specifier:(R^2x2)) | | `-(language::matrix_type:R^2x2) | | +-(language::R_set:R) | | +-(language::integer:2:Z) | | `-(language::integer:2:Z) - | +-(language::name:t1:(R^2x2...)) + | +-(language::name:t1:(R^2x2)) | `-(language::expression_list:R^2x2*R^2x2*Z) | +-(language::name:a:R^2x2) | +-(language::matrix_expression:R^2x2) @@ -623,24 +623,24 @@ let t3 : (R^2x2), t3 = ([[1,2],[1,3]], a, 0); | | `-(language::integer:3:Z) | `-(language::integer:0:Z) +-(language::var_declaration:void) - | +-(language::name:t2:(R^3x3...)) - | +-(language::tuple_type_specifier:(R^3x3...)) + | +-(language::name:t2:(R^3x3)) + | +-(language::tuple_type_specifier:(R^3x3)) | | `-(language::matrix_type:R^3x3) | | +-(language::R_set:R) | | +-(language::integer:3:Z) | | `-(language::integer:3:Z) - | +-(language::name:t2:(R^3x3...)) + | +-(language::name:t2:(R^3x3)) | `-(language::expression_list:Z*Z) | +-(language::integer:0:Z) | `-(language::integer:0:Z) `-(language::var_declaration:void) - +-(language::name:t3:(R^2x2...)) - +-(language::tuple_type_specifier:(R^2x2...)) + +-(language::name:t3:(R^2x2)) + +-(language::tuple_type_specifier:(R^2x2)) | `-(language::matrix_type:R^2x2) | +-(language::R_set:R) | +-(language::integer:2:Z) | `-(language::integer:2:Z) - +-(language::name:t3:(R^2x2...)) + +-(language::name:t3:(R^2x2)) `-(language::expression_list:R^2x2*R^2x2*Z) +-(language::matrix_expression:R^2x2) | +-(language::row_expression:void) @@ -665,10 +665,10 @@ let t : (string), t = ("foo", "bar"); std::string_view result = R"( (root:void) `-(language::var_declaration:void) - +-(language::name:t:(string...)) - +-(language::tuple_type_specifier:(string...)) + +-(language::name:t:(string)) + +-(language::tuple_type_specifier:(string)) | `-(language::string_type:string) - +-(language::name:t:(string...)) + +-(language::name:t:(string)) `-(language::expression_list:string*string) +-(language::literal:"foo":string) `-(language::literal:"bar":string) @@ -687,10 +687,10 @@ let t : (builtin_t), t= (1,2,3); std::string_view result = R"( (root:void) `-(language::var_declaration:void) - +-(language::name:t:(builtin_t...)) - +-(language::tuple_type_specifier:(builtin_t...)) + +-(language::name:t:(builtin_t)) + +-(language::tuple_type_specifier:(builtin_t)) | `-(language::type_name_id:builtin_t) - +-(language::name:t:(builtin_t...)) + +-(language::name:t:(builtin_t)) `-(language::expression_list:Z*Z*Z) +-(language::integer:1:Z) +-(language::integer:2:Z) diff --git a/tests/test_ASTNodeNaturalConversionChecker.cpp b/tests/test_ASTNodeNaturalConversionChecker.cpp index 7823664a1319f7699c3264805ac4c4fb68085e4a..0d6dbd3d60550dcfae86e32398c987f8b2d4583b 100644 --- a/tests/test_ASTNodeNaturalConversionChecker.cpp +++ b/tests/test_ASTNodeNaturalConversionChecker.cpp @@ -774,7 +774,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(1, 1)}), - "invalid implicit conversion: (N...) -> R^1x1"); + "invalid implicit conversion: (N) -> R^1x1"); } SECTION("tuple(R) -> R^1x1") @@ -783,7 +783,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(1, 1)}), - "invalid implicit conversion: (R...) -> R^1x1"); + "invalid implicit conversion: (R) -> R^1x1"); } SECTION("tuple(R) -> R^2x2") @@ -792,7 +792,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(2, 2)}), - "invalid implicit conversion: (R...) -> R^2x2"); + "invalid implicit conversion: (R) -> R^2x2"); } SECTION("tuple(B) -> R^2x2") @@ -801,7 +801,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(2, 2)}), - "invalid implicit conversion: (B...) -> R^2x2"); + "invalid implicit conversion: (B) -> R^2x2"); } SECTION("tuple(Z) -> R^3x2") @@ -810,7 +810,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(3, 3)}), - "invalid implicit conversion: (Z...) -> R^3x3"); + "invalid implicit conversion: (Z) -> R^3x3"); } SECTION("tuple(R) -> R^3x3") @@ -819,7 +819,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::matrix_t>(3, 3)}), - "invalid implicit conversion: (R...) -> R^3x3"); + "invalid implicit conversion: (R) -> R^3x3"); } SECTION("tuple(R^1) -> tuple(R^3x3)") @@ -1189,7 +1189,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(unsigned_int_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::vector_t>(1)}), - "invalid implicit conversion: (N...) -> R^1"); + "invalid implicit conversion: (N) -> R^1"); } SECTION("tuple(R) -> R^1") @@ -1197,7 +1197,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(double_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::vector_t>(1)}), - "invalid implicit conversion: (R...) -> R^1"); + "invalid implicit conversion: (R) -> R^1"); } SECTION("tuple(R) -> R^2") @@ -1205,7 +1205,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(double_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::vector_t>(2)}), - "invalid implicit conversion: (R...) -> R^2"); + "invalid implicit conversion: (R) -> R^2"); } SECTION("tuple(B) -> R^2") @@ -1213,7 +1213,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(bool_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::vector_t>(2)}), - "invalid implicit conversion: (B...) -> R^2"); + "invalid implicit conversion: (B) -> R^2"); } SECTION("tuple(Z) -> R^3") @@ -1221,7 +1221,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(int_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::vector_t>(3)}), - "invalid implicit conversion: (Z...) -> R^3"); + "invalid implicit conversion: (Z) -> R^3"); } SECTION("tuple(R) -> R^3") @@ -1229,7 +1229,7 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(double_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, ASTNodeDataType::build<ASTNodeDataType::vector_t>(3)}), - "invalid implicit conversion: (R...) -> R^3"); + "invalid implicit conversion: (R) -> R^3"); } SECTION("tuple(R^1x1) -> tuple(R^3)") @@ -1576,14 +1576,14 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") { data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(unsigned_int_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, double_dt}), - "invalid implicit conversion: (N...) -> R"); + "invalid implicit conversion: (N) -> R"); } SECTION("tuple(R) -> R") { data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(double_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, double_dt}), - "invalid implicit conversion: (R...) -> R"); + "invalid implicit conversion: (R) -> R"); } } @@ -1628,14 +1628,14 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") { data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(unsigned_int_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, int_dt}), - "invalid implicit conversion: (N...) -> Z"); + "invalid implicit conversion: (N) -> Z"); } SECTION("tuple(Z) -> Z") { data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(int_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, int_dt}), - "invalid implicit conversion: (Z...) -> Z"); + "invalid implicit conversion: (Z) -> Z"); } } @@ -1680,14 +1680,14 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") { data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(int_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, unsigned_int_dt}), - "invalid implicit conversion: (Z...) -> N"); + "invalid implicit conversion: (Z) -> N"); } SECTION("tuple(N) -> N") { data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(unsigned_int_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, unsigned_int_dt}), - "invalid implicit conversion: (N...) -> N"); + "invalid implicit conversion: (N) -> N"); } } @@ -1746,14 +1746,14 @@ TEST_CASE("ASTNodeNaturalConversionChecker", "[language]") { data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(int_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, bool_dt}), - "invalid implicit conversion: (Z...) -> B"); + "invalid implicit conversion: (Z) -> B"); } SECTION("tuple(B) -> B") { data_node->m_data_type = ASTNodeDataType::build<ASTNodeDataType::tuple_t>(bool_dt); REQUIRE_THROWS_WITH((ASTNodeNaturalConversionChecker{*data_node, bool_dt}), - "invalid implicit conversion: (B...) -> B"); + "invalid implicit conversion: (B) -> B"); } } diff --git a/tests/test_BuiltinFunctionEmbedderUtils.cpp b/tests/test_BuiltinFunctionEmbedderUtils.cpp index ebb0195dc01ed45a25085b8f3150d71de08005ac..3dee7e0092ab8e6a725fcf671fdedb45a8dc6a74 100644 --- a/tests/test_BuiltinFunctionEmbedderUtils.cpp +++ b/tests/test_BuiltinFunctionEmbedderUtils.cpp @@ -731,7 +731,7 @@ foo(3.1,[[1, 2.3, 4], [0.3, 2.5, 4.6], [2.7, 8.1, -9]]); SECTION("using tuple arguments") { - SECTION("builtin function (R...) -> N (from (N...))") + SECTION("builtin function (R) -> N (from (N...))") { std::string_view data = R"( let v:(N); @@ -754,7 +754,7 @@ foo(v); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType() == ASTNodeDataType::double_t); } - SECTION("builtin function (R...) -> N (from Z)") + SECTION("builtin function (R) -> N (from Z)") { std::string_view data = R"( foo(-4); @@ -776,7 +776,7 @@ foo(-4); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType() == ASTNodeDataType::double_t); } - SECTION("builtin function (R^1...) -> N (from (N...))") + SECTION("builtin function (R^1) -> N (from (N...))") { std::string_view data = R"( let v:(N); @@ -800,7 +800,7 @@ foo(v); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().dimension() == 1); } - SECTION("builtin function (R^1...) -> N (from 0)") + SECTION("builtin function (R^1) -> N (from 0)") { std::string_view data = R"( foo(0); @@ -823,7 +823,7 @@ foo(0); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().dimension() == 1); } - SECTION("builtin function (R...) -> N (from list)") + SECTION("builtin function (R) -> N (from list)") { std::string_view data = R"( foo((1,2,3,5)); @@ -845,7 +845,7 @@ foo((1,2,3,5)); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType() == ASTNodeDataType::double_t); } - SECTION("builtin function (R^1...) -> N (from castable list)") + SECTION("builtin function (R^1) -> N (from castable list)") { std::string_view data = R"( foo((1,2,3,5)); @@ -868,7 +868,7 @@ foo((1,2,3,5)); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().dimension() == 1); } - SECTION("builtin function (R^1...) -> N (from list)") + SECTION("builtin function (R^1) -> N (from list)") { std::string_view data = R"( let x:R^1; @@ -892,7 +892,7 @@ foo((x,2*x)); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().dimension() == 1); } - SECTION("builtin function (R^1x1...) -> N (from castable list)") + SECTION("builtin function (R^1x1) -> N (from castable list)") { std::string_view data = R"( foo((1,2,3,5)); @@ -915,7 +915,7 @@ foo((1,2,3,5)); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().numberOfRows() == 1); } - SECTION("builtin function (R^1x1...) -> N (from 0)") + SECTION("builtin function (R^1x1) -> N (from 0)") { std::string_view data = R"( foo(0); @@ -938,7 +938,7 @@ foo(0); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().numberOfRows() == 1); } - SECTION("builtin function (R^1x1...) -> N (from list)") + SECTION("builtin function (R^1x1) -> N (from list)") { std::string_view data = R"( let x:R^1x1; @@ -962,7 +962,7 @@ foo((x,2*x)); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().numberOfRows() == 1); } - SECTION("builtin function (R^2...) -> N (from list)") + SECTION("builtin function (R^2) -> N (from list)") { std::string_view data = R"( let x:R^2; @@ -986,7 +986,7 @@ foo((x,2*x)); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().dimension() == 2); } - SECTION("builtin function (R^2...) -> N (from 0)") + SECTION("builtin function (R^2) -> N (from 0)") { std::string_view data = R"( foo(0); @@ -1009,7 +1009,7 @@ foo(0); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().dimension() == 2); } - SECTION("builtin function (R^2x2...) -> N (from 0)") + SECTION("builtin function (R^2x2) -> N (from 0)") { std::string_view data = R"( foo(0); @@ -1032,7 +1032,7 @@ foo(0); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().numberOfRows() == 2); } - SECTION("builtin function (R^2x2...) -> N (from list)") + SECTION("builtin function (R^2x2) -> N (from list)") { std::string_view data = R"( let x:R^2x2; @@ -1056,7 +1056,7 @@ foo((x,2*x)); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().numberOfRows() == 2); } - SECTION("builtin function (R^3...) -> N (from list)") + SECTION("builtin function (R^3) -> N (from list)") { std::string_view data = R"( let x:R^3; @@ -1080,7 +1080,7 @@ foo((x,2*x)); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().dimension() == 3); } - SECTION("builtin function (R^3...) -> N (from 0)") + SECTION("builtin function (R^3) -> N (from 0)") { std::string_view data = R"( foo(0); @@ -1103,7 +1103,7 @@ foo(0); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().dimension() == 3); } - SECTION("builtin function (R^3x3...) -> N (from 0)") + SECTION("builtin function (R^3x3) -> N (from 0)") { std::string_view data = R"( foo(0); @@ -1126,7 +1126,7 @@ foo(0); REQUIRE(function_embedder->getParameterDataTypes()[0].contentType().numberOfRows() == 3); } - SECTION("builtin function (R^3x3...) -> N (from list)") + SECTION("builtin function (R^3x3) -> N (from list)") { std::string_view data = R"( let x:R^3x3; @@ -1541,7 +1541,7 @@ foo(1,2,3,4); error_msg); } - SECTION("(N...) invalid cast") + SECTION("(N) invalid cast") { std::string_view data = R"( foo(1.34); @@ -1549,7 +1549,7 @@ foo(1.34); std::string error_msg = "no matching function to call foo: R\n" "note: candidates are\n" - " foo: (N...) -> N"; + " foo: (N) -> N"; TAO_PEGTL_NAMESPACE::string_input input{data, "test.pgs"}; auto root_node = ASTBuilder::build(input); @@ -1572,7 +1572,7 @@ foo(1); std::string error_msg = "ambiguous function call foo: Z\n" "note: candidates are\n" - " foo: (R...) -> R\n" + " foo: (R) -> R\n" " foo: R -> R\n" " foo: R^1 -> R"; diff --git a/tests/test_BuiltinFunctionRegister.hpp b/tests/test_BuiltinFunctionRegister.hpp index e87ab4994369d74a1280c451d75af435624965b4..03a847bc2f805d4d883a060709b232c6f64e4a3a 100644 --- a/tests/test_BuiltinFunctionRegister.hpp +++ b/tests/test_BuiltinFunctionRegister.hpp @@ -104,7 +104,7 @@ class test_BuiltinFunctionRegister [](const FunctionSymbolId&) -> double { return 0; }))); m_name_builtin_function_map.insert( - std::make_pair("fidTupleToR:(function...)", + std::make_pair("fidTupleToR:(function)", std::make_shared<BuiltinFunctionEmbedder<double(const std::vector<FunctionSymbolId>)>>( [](const std::vector<FunctionSymbolId>&) -> double { return 0; }))); @@ -115,15 +115,15 @@ class test_BuiltinFunctionRegister [](std::shared_ptr<const double> x) -> std::shared_ptr<const double> { return x; }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_BtoR:(B...)", std::make_shared<BuiltinFunctionEmbedder<double(std::vector<bool>)>>( + std::make_pair("tuple_BtoR:(B)", std::make_shared<BuiltinFunctionEmbedder<double(std::vector<bool>)>>( [](const std::vector<bool>&) -> double { return 0.5; }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_NtoR:(N...)", std::make_shared<BuiltinFunctionEmbedder<double(std::vector<uint64_t>)>>( + std::make_pair("tuple_NtoR:(N)", std::make_shared<BuiltinFunctionEmbedder<double(std::vector<uint64_t>)>>( [](const std::vector<uint64_t>&) -> double { return 0.5; }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_ZtoR:(Z...)", std::make_shared<BuiltinFunctionEmbedder<double(std::vector<int64_t>)>>( + std::make_pair("tuple_ZtoR:(Z)", std::make_shared<BuiltinFunctionEmbedder<double(std::vector<int64_t>)>>( [](const std::vector<int64_t>& v) -> double { int64_t sum = 0; for (auto vi : v) { @@ -133,41 +133,41 @@ class test_BuiltinFunctionRegister }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_RtoB:(R...)", std::make_shared<BuiltinFunctionEmbedder<bool(std::vector<double>)>>( + std::make_pair("tuple_RtoB:(R)", std::make_shared<BuiltinFunctionEmbedder<bool(std::vector<double>)>>( [](const std::vector<double>&) -> bool { return false; }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_stringtoB:(string...)", + std::make_pair("tuple_stringtoB:(string)", std::make_shared<BuiltinFunctionEmbedder<bool(std::vector<std::string>)>>( [](const std::vector<std::string>&) -> bool { return true; }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_builtinToB:(builtin_t...)", + std::make_pair("tuple_builtinToB:(builtin_t)", std::make_shared<BuiltinFunctionEmbedder<bool(std::vector<std::shared_ptr<const double>>)>>( [](const std::vector<std::shared_ptr<const double>>&) -> bool { return true; }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_R1ToR:(R^1...)", + std::make_pair("tuple_R1ToR:(R^1)", std::make_shared<BuiltinFunctionEmbedder<double(const std::vector<TinyVector<1>>&)>>( [](const std::vector<TinyVector<1>>&) -> double { return 1; }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_R2ToR:(R^2...)", + std::make_pair("tuple_R2ToR:(R^2)", std::make_shared<BuiltinFunctionEmbedder<double(const std::vector<TinyVector<2>>&)>>( [](const std::vector<TinyVector<2>>&) -> double { return 1; }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_R3ToR:(R^3...)", + std::make_pair("tuple_R3ToR:(R^3)", std::make_shared<BuiltinFunctionEmbedder<double(const std::vector<TinyVector<3>>)>>( [](const std::vector<TinyVector<3>>&) -> double { return 0; }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_R11ToR:(R^1x1...)", + std::make_pair("tuple_R11ToR:(R^1x1)", std::make_shared<BuiltinFunctionEmbedder<double(const std::vector<TinyMatrix<1>>&)>>( [](const std::vector<TinyMatrix<1>>&) -> double { return 1; }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_R22ToR:(R^2x2...)", + std::make_pair("tuple_R22ToR:(R^2x2)", std::make_shared<BuiltinFunctionEmbedder<double(const std::vector<TinyMatrix<2>>&)>>( [](const std::vector<TinyMatrix<2>>&) -> double { return 1; }))); @@ -180,7 +180,7 @@ class test_BuiltinFunctionRegister }))); m_name_builtin_function_map.insert( - std::make_pair("tuple_R33ToR:(R^3x3...)", + std::make_pair("tuple_R33ToR:(R^3x3)", std::make_shared<BuiltinFunctionEmbedder<double(const std::vector<TinyMatrix<3>>)>>( [](const std::vector<TinyMatrix<3>>&) -> double { return 0; })));