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

            Line data    Source code
       1              : #include "../inc/lexicalAnalysis/category.h"
       2              : #include <catch2/catch_test_macros.hpp>
       3              : 
       4           36 : TEST_CASE("Pruebas de la clase Category", "[category]") {
       5           36 :   using nicole::Category;
       6           36 :   using nicole::Location;
       7           36 :   using nicole::Token;
       8           36 :   using nicole::TokenType;
       9              : 
      10           36 :   SECTION("Constructor y métodos de acceso") {
      11            9 :     const Category category{TokenType::NUMBER_INT, "\\d+", false};
      12            9 :     REQUIRE(category.type() == TokenType::NUMBER_INT);
      13            9 :     REQUIRE(category.rawPattern() == "\\d+");
      14            9 :     REQUIRE(category.skip() == false);
      15            9 :   }
      16              : 
      17           36 :   SECTION("Coincidencia de patrones con tokens") {
      18            9 :     const Category category{TokenType::ID, "[a-zA-Z_][a-zA-Z0-9_]*", false};
      19            9 :     const Token token{TokenType::ID, "variable123", Location{"archivo.cpp", 1, 1}};
      20            9 :     REQUIRE(category.matchToken(token));
      21            9 :   }
      22              : 
      23           36 :   SECTION("No coincidencia de patrones con tokens") {
      24            9 :     const Category category{TokenType::NUMBER_FLOAT, "\\d+\\.\\d+", false};
      25            9 :     const Token token{TokenType::NUMBER_FLOAT, "123", Location{"archivo.cpp", 1, 1}};
      26            9 :     REQUIRE_FALSE(category.matchToken(token));
      27            9 :   }
      28              : 
      29           36 :   SECTION("Tokens que deben ser omitidos") {
      30            9 :    const  Category category{TokenType::COMMENT, "//.*", true};
      31            9 :     REQUIRE(category.skip() == true);
      32            9 :   }
      33           36 : }
        

Generated by: LCOV version 2.0-1