From 5b330b41e505327a852b5c7276cfe8534f19e54a Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Fri, 18 Oct 2019 19:40:05 +0200 Subject: [PATCH] Add tests for module import and `let` declaration --- tests/test_ASTNodeDataTypeBuilder.cpp | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/tests/test_ASTNodeDataTypeBuilder.cpp b/tests/test_ASTNodeDataTypeBuilder.cpp index a39f3f834..5faacdbf3 100644 --- a/tests/test_ASTNodeDataTypeBuilder.cpp +++ b/tests/test_ASTNodeDataTypeBuilder.cpp @@ -25,6 +25,21 @@ TEST_CASE("ASTNodeDataTypeBuilder", "[language]") { + SECTION("module") + { + std::string_view data = R"( +import a_module_name; +)"; + + std::string_view result = R"( +(root:void) + `-(language::import_instruction:void) + `-(language::module_name:string) +)"; + + CHECK_AST(data, result); + } + SECTION("integer") { std::string_view data = R"( @@ -100,6 +115,42 @@ false; CHECK_AST(data, result); } + SECTION("let declaration") + { + SECTION("scalar functions") + { + std::string_view data = R"( +let f : R -> R, x -> x; +let g : R*R -> R, (x,y) -> x+y; +)"; + + std::string_view result = R"( +(root:void) + +-(language::let_declaration:void) + | `-(language::name:f:function) + `-(language::let_declaration:void) + `-(language::name:g:function) +)"; + + CHECK_AST(data, result); + } + + SECTION("scalar functions") + { + std::string_view data = R"( +let f : R -> R, (x) -> x; +)"; + + std::string_view result = R"( +(root:void) + `-(language::let_declaration:void) + `-(language::name:f:function) +)"; +#warning finish this test + // CHECK_AST(data, result); + } + } + SECTION("ostream") { std::string_view data = R"( -- GitLab