LCOV - code coverage report
Current view: top level - test/parsingAnalysis - test_ast_literals.cc (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 60 60
Test Date: 2025-04-18 15:53:49 Functions: 100.0 % 8 8

            Line data    Source code
       1              : #include "../../inc/parsingAnalysis/builder.h"
       2              : #include <catch2/catch_test_macros.hpp>
       3              : #include <memory>
       4              : 
       5              : using namespace nicole;
       6              : 
       7           18 : TEST_CASE("AST class methods", "[AST]") {
       8           18 :   Location loc{"file", 0, 0};
       9           18 :   Token token{TokenType::OPERATOR_ADD, "+", loc};
      10           18 :   auto ast = *Builder::createBool(SourceLocation{token, token}, true);
      11              : 
      12           18 :   SECTION("Constructor and accessors") {
      13            9 :     REQUIRE(ast->type() == AST_TYPE::BOOL);
      14            9 :   }
      15              : 
      16           18 :   SECTION("Father management") {
      17            9 :     ast->setFather(ast);
      18            9 :     REQUIRE(ast->father() == ast);
      19            9 :   }
      20           18 : }
      21              : 
      22            9 : TEST_CASE("AST_BOOL class methods", "[AST_BOOL]") {
      23            9 :   Location loc{"file", 0, 0};
      24            9 :   Token token{TokenType::OPERATOR_ADD, "+", loc};
      25            9 :   AST_BOOL astBool{0, SourceLocation{token, token}, true};
      26              : 
      27            9 :   REQUIRE(astBool.type() == AST_TYPE::BOOL);
      28            9 :   REQUIRE(astBool.value() == true);
      29            9 : }
      30              : 
      31            9 : TEST_CASE("AST_CHAR class methods", "[AST_CHAR]") {
      32            9 :   Location loc{"file", 0, 0};
      33            9 :   Token token{TokenType::OPERATOR_ADD, "+", loc};
      34            9 :   AST_CHAR astChar{0, SourceLocation{token, token}, 'a'};
      35              : 
      36            9 :   REQUIRE(astChar.type() == AST_TYPE::CHAR);
      37            9 :   REQUIRE(astChar.value() == 'a');
      38            9 : }
      39              : 
      40            9 : TEST_CASE("AST_DOUBLE class methods", "[AST_DOUBLE]") {
      41            9 :   Location loc{"file", 0, 0};
      42            9 :   Token token{TokenType::OPERATOR_ADD, "+", loc};
      43            9 :   AST_DOUBLE astDouble{0, SourceLocation{token, token}, 3.14};
      44              : 
      45            9 :   REQUIRE(astDouble.type() == AST_TYPE::DOUBLE);
      46            9 :   REQUIRE(astDouble.value() == 3.14);
      47            9 : }
      48              : 
      49            9 : TEST_CASE("AST_FLOAT class methods", "[AST_FLOAT]") {
      50            9 :   Location loc{"file", 0, 0};
      51            9 :   Token token{TokenType::OPERATOR_ADD, "+", loc};
      52            9 :   AST_FLOAT astFloat{0, SourceLocation{token, token}, 2.71f};
      53              : 
      54            9 :   REQUIRE(astFloat.type() == AST_TYPE::FLOAT);
      55            9 :   REQUIRE(astFloat.value() == 2.71f);
      56            9 : }
      57              : 
      58            9 : TEST_CASE("AST_INT class methods", "[AST_INT]") {
      59            9 :   Location loc{"file", 0, 0};
      60            9 :   Token token{TokenType::OPERATOR_ADD, "+", loc};
      61            9 :   AST_INT astInt{0, SourceLocation{token, token}, 42};
      62              : 
      63            9 :   REQUIRE(astInt.type() == AST_TYPE::INT);
      64            9 :   REQUIRE(astInt.value() == 42);
      65            9 : }
      66              : 
      67            9 : TEST_CASE("AST_NULL class methods", "[AST_NULL]") {
      68            9 :   Location loc{"file", 0, 0};
      69            9 :   Token token{TokenType::OPERATOR_ADD, "+", loc};
      70            9 :   AST_NULL astNull{0, SourceLocation{token, token}};
      71              : 
      72            9 :   REQUIRE(astNull.type() == AST_TYPE::NULLPTR);
      73            9 : }
      74              : 
      75            9 : TEST_CASE("AST_STRING class methods", "[AST_STRING]") {
      76            9 :   Location loc{"file", 0, 0};
      77            9 :   Token token{TokenType::OPERATOR_ADD, "+", loc};
      78            9 :   AST_STRING astString{0, SourceLocation{token, token}, "hello"};
      79              : 
      80            9 :   REQUIRE(astString.type() == AST_TYPE::STRING);
      81            9 :   REQUIRE(astString.value() == "hello");
      82            9 : }
        

Generated by: LCOV version 2.0-1