LCOV - code coverage report
Current view: top level - unit_tests - ut_int.c (source / functions) Coverage Total Hit
Test: coverage.info Lines: 70.2 % 94 66
Test Date: 2025-08-24 13:31:38 Functions: 100.0 % 28 28

            Line data    Source code
       1              : #define CLOVE_SUITE_NAME UtilSuite
       2              : 
       3              : #include "clove-unit.h"
       4              : 
       5              : #include "../src/util/globals.h"
       6              : #include "../src/util/int.h"
       7              : #include "../src/util/strings.h"
       8              : 
       9              : // ====================== lengthInt() ========================//
      10            2 : CLOVE_TEST(lengthIntZero)
      11              : {
      12            1 :   uint32_t length = lengthInt(0);
      13            1 :   CLOVE_UINT_EQ(1, length);
      14              : }
      15              : 
      16            2 : CLOVE_TEST(lengthIntPositive)
      17              : {
      18            1 :   uint32_t length = lengthInt(12890);
      19            1 :   CLOVE_UINT_EQ(5, length);
      20              : }
      21              : 
      22            2 : CLOVE_TEST(lengthIntNegative)
      23              : {
      24            1 :   uint32_t length = lengthInt(-870);
      25            1 :   CLOVE_UINT_EQ(3, length);
      26              : }
      27              : 
      28            2 : CLOVE_TEST(lengthIntNonIntParameter)
      29              : {
      30            1 :   uint32_t length4 = lengthInt(0.0);
      31            1 :   CLOVE_INT_EQ(1, length4);
      32              : 
      33            1 :   uint32_t length5 = lengthInt(12.1099);
      34            1 :   CLOVE_INT_EQ(2, length5);
      35              : 
      36            1 :   uint32_t length6 = lengthInt(-780.001);
      37            1 :   CLOVE_INT_EQ(3, length6);
      38              : 
      39            1 :   uint32_t length7 = lengthInt(.012);
      40            1 :   CLOVE_INT_EQ(1, length7);
      41              : 
      42            1 :   uint32_t length = lengthInt(0x0);
      43            1 :   CLOVE_INT_EQ(PARAMETER_IS_HEX, length);
      44              : 
      45            1 :   uint32_t length2 = lengthInt(0xF12);
      46            1 :   CLOVE_INT_EQ(PARAMETER_IS_HEX, length2);
      47              : 
      48            0 :   uint32_t length3 = lengthInt(0X109);
      49            0 :   CLOVE_INT_EQ(PARAMETER_IS_HEX, length3);
      50              : }
      51              : 
      52              : // ====================== abs() ========================//
      53            2 : CLOVE_TEST(absZero)
      54              : {
      55            1 :   uint32_t value = abs(0);
      56            1 :   CLOVE_UINT_EQ(0, value);
      57              : }
      58              : 
      59            2 : CLOVE_TEST(absNegative)
      60              : {
      61            1 :   uint32_t value = abs(-872);
      62            1 :   CLOVE_UINT_EQ(872, value);
      63              : }
      64              : 
      65            2 : CLOVE_TEST(absPositive)
      66              : {
      67            1 :   uint32_t value = abs(103);
      68            1 :   CLOVE_UINT_EQ(103, value);
      69              : }
      70              : 
      71            2 : CLOVE_TEST(absNonIntParameter)
      72              : {
      73            1 :   uint32_t value1= abs(0x0);
      74            1 :   CLOVE_UINT_EQ(PARAMETER_IS_HEX, value1);
      75              : 
      76            1 :   uint32_t value2 = abs(0xF1);
      77            1 :   CLOVE_UINT_EQ(PARAMETER_IS_HEX, value2);
      78              : 
      79            0 :   uint32_t value3 = abs(12.1);
      80            0 :   CLOVE_UINT_EQ(PARAMETER_IS_HEX, value3);
      81              : }
      82              : 
      83              : // ====================== stringToInt() ========================//
      84            2 : CLOVE_TEST(stringToIntNULL)
      85              : {
      86            1 :   int32_t value1 = stringToInt(NULL);
      87            1 :   CLOVE_UINT_EQ(STRING_IS_NULL, value1);
      88              : 
      89            1 :   int32_t value2 = stringToInt("");
      90            1 :   CLOVE_UINT_EQ(STRING_IS_NULL, value2);
      91              : 
      92            0 :   int32_t value3 = stringToInt("  ");
      93            0 :   CLOVE_UINT_EQ(STRING_IS_NULL, value3);
      94              : }
      95              : 
      96            2 : CLOVE_TEST(stringToIntContainsNonDigits)
      97              : {
      98            1 :   uint32_t value1 = stringToInt("str1ng");
      99            1 :   CLOVE_UINT_EQ(STRING_CONTAINS_NON_DIGITS, value1);
     100              : 
     101            1 :   uint32_t value2 = stringToInt("12test");
     102            1 :   CLOVE_UINT_EQ(STRING_CONTAINS_NON_DIGITS, value2);
     103              : 
     104            0 :   uint32_t value3 = stringToInt("!86:_");
     105            0 :   CLOVE_UINT_EQ(STRING_CONTAINS_NON_DIGITS, value3);
     106              : 
     107            0 :   uint32_t value4 = stringToInt("0.1");
     108            0 :   CLOVE_UINT_EQ(STRING_IS_FLOAT, value4);
     109              : 
     110            0 :   uint32_t value5 = stringToInt("12.07");
     111            0 :   CLOVE_UINT_EQ(STRING_IS_FLOAT, value5);
     112              : 
     113            0 :   uint32_t value6 = stringToInt(".0");
     114            0 :   CLOVE_UINT_EQ(STRING_IS_FLOAT, value6);
     115              : 
     116            0 :   uint32_t value7 = stringToInt("0xF1");
     117            0 :   CLOVE_UINT_EQ(STRING_IS_HEX, value7);
     118              : 
     119            0 :   uint32_t value8 = stringToInt("0x23");
     120            0 :   CLOVE_UINT_EQ(STRING_IS_HEX, value8);
     121              : }
     122              : 
     123            2 : CLOVE_TEST(stringToIntAllDigits)
     124              : {
     125            1 :   uint32_t value1 = stringToInt("0");
     126            1 :   CLOVE_UINT_EQ(0, value1);
     127              : 
     128            1 :   uint32_t value2 = stringToInt("123");
     129            1 :   CLOVE_UINT_EQ(123, value2);
     130              : 
     131            1 :   uint32_t value3 = stringToInt("0078900");
     132            1 :   CLOVE_UINT_EQ(78900, value3);
     133              : }
     134              : 
     135              : // ====================== hexToDecimal() ========================//
     136            2 : CLOVE_TEST(hexToDecimalNULL)
     137              : {
     138            1 :   uint32_t value = hexToDecimal(NULL);
     139            1 :   CLOVE_UINT_EQ(0, value);
     140              : }
     141              : 
     142            2 : CLOVE_TEST(hexToDecimalInputHex)
     143              : {
     144            1 :   uint32_t value1 = hexToDecimal(0xFF);
     145            1 :   CLOVE_UINT_EQ(255, value1);
     146              : 
     147            1 :   uint32_t value2 = hexToDecimal(0x0);
     148            1 :   CLOVE_UINT_EQ(0, value2);
     149              : 
     150            0 :   uint32_t value3 = hexToDecimal(0XA12);
     151            0 :   CLOVE_UINT_EQ(2578, value3);
     152              : }
     153              : 
     154            2 : CLOVE_TEST(hexToDecimalInputNonHex)
     155              : {
     156            1 :   uint32_t value1 = hexToDecimal(0);
     157            1 :   CLOVE_UINT_EQ(PARAMETER_SHOULD_BE_HEX, value1);
     158              : 
     159            1 :   uint32_t value2 = hexToDecimal(12);
     160            1 :   CLOVE_UINT_EQ(PARAMETER_SHOULD_BE_HEX, value2);
     161              : 
     162            0 :   uint32_t value3 = hexToDecimal(13.1);
     163            0 :   CLOVE_UINT_EQ(PARAMETER_SHOULD_BE_HEX, value3);
     164              : 
     165            0 :   uint32_t value4 = hexToDecimal(.1);
     166            0 :   CLOVE_UINT_EQ(PARAMETER_SHOULD_BE_HEX, value3);
     167              : 
     168            0 :   uint32_t value5 = hexToDecimal(-0.012);
     169            0 :   CLOVE_UINT_EQ(PARAMETER_SHOULD_BE_HEX, value5);
     170              : 
     171            0 :   uint32_t value6 = hexToDecimal(-0.0);
     172            0 :   CLOVE_UINT_EQ(PARAMETER_SHOULD_BE_HEX, value6);
     173              : }
        

Generated by: LCOV version 2.0-1