LCOV - code coverage report
Current view: top level - estd/examples - string.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 47 47 100.0 %
Date: 2025-01-20 13:53:09 Functions: 14 21 66.7 %

          Line data    Source code
       1             : // Copyright 2024 Accenture.
       2             : 
       3             : #include "estd/string.h"
       4             : 
       5             : #include "estd/assert.h"
       6             : 
       7             : #include <gtest/gtest.h>
       8             : 
       9           3 : TEST(StringExample, assign)
      10             : {
      11             :     // [EXAMPLE_STRING_ASSIGN_START]
      12           1 :     estd::declare::string<10> s;
      13           1 :     s = "Hello";
      14           1 :     ASSERT_EQ('H', s[0]);
      15           1 :     ASSERT_EQ('e', s[1]);
      16           1 :     ASSERT_EQ('\0', s[5]);
      17           1 :     ASSERT_EQ(5U, s.size());
      18           2 :     ASSERT_EQ(10U, s.max_size());
      19             :     // [EXAMPLE_STRING_ASSIGN_END]
      20             : }
      21             : 
      22           3 : TEST(StringExample, append)
      23             : {
      24             :     // [EXAMPLE_STRING_APPEND_START]
      25           1 :     estd::declare::string<10> s("Hello");
      26             : 
      27           1 :     s.append("1234", 4);
      28           2 :     ASSERT_EQ("Hello1234", s);
      29             :     // [EXAMPLE_STRING_APPEND_END]
      30             : }
      31             : 
      32           3 : TEST(StringExample, append_char)
      33             : {
      34             :     // [EXAMPLE_STRING_APPEND_CHAR_START]
      35           1 :     estd::declare::string<10> s;
      36           1 :     s += "Hello";
      37           1 :     ASSERT_EQ('H', s[0]);
      38           1 :     ASSERT_EQ('e', s[1]);
      39           1 :     ASSERT_EQ('\0', s[5]);
      40           1 :     ASSERT_EQ(5U, s.size());
      41           2 :     ASSERT_EQ(10U, s.max_size());
      42             :     // [EXAMPLE_STRING_APPEND_CHAR_END]
      43             : }
      44             : 
      45           3 : TEST(StringExample, resize)
      46             : {
      47             :     // [EXAMPLE_STRING_RESIZE_START]
      48           1 :     estd::declare::string<10> s("Hello");
      49           1 :     ASSERT_EQ(5U, s.size());
      50             : 
      51           1 :     s.resize(7, 'c');
      52           1 :     ASSERT_EQ(7U, s.size());
      53             : 
      54           1 :     ASSERT_EQ('H', s[0]);
      55           1 :     ASSERT_EQ('e', s[1]);
      56           1 :     ASSERT_EQ('l', s[2]);
      57           1 :     ASSERT_EQ('l', s[3]);
      58           1 :     ASSERT_EQ('o', s[4]);
      59           1 :     ASSERT_EQ('c', s[5]);
      60           1 :     ASSERT_EQ('c', s[6]);
      61           2 :     ASSERT_EQ('\0', s[7]);
      62             :     // [EXAMPLE_STRING_RESIZE_END]
      63             : }
      64             : 
      65           3 : TEST(StringExample, string_equal)
      66             : {
      67             :     // [EXAMPLE_STRING_EQUAL_START]
      68           1 :     estd::declare::string<10> s("Hello");
      69           1 :     ASSERT_FALSE(s == "ABC");
      70           2 :     ASSERT_TRUE(s == "Hello");
      71             :     // [EXAMPLE_STRING_EQUAL_END]
      72             : }
      73             : 
      74           3 : TEST(StringExample, length)
      75             : {
      76             :     // [EXAMPLE_STRING_LENGTH_START]
      77           1 :     estd::declare::string<10> s("Hello");
      78           1 :     ASSERT_EQ(5U, s.length());
      79           1 :     ASSERT_EQ(5U, s.size());
      80           2 :     ASSERT_EQ(10U, s.max_size());
      81             :     // [EXAMPLE_STRING_LENGTH_END]
      82             : }
      83             : 
      84           3 : TEST(StringExample, strtonum)
      85             : {
      86             :     // [EXAMPLE_STRING_TO_NUM_START]
      87           1 :     uint8_t const bytes[] = {'0', 'x', 'F'};
      88           1 :     auto const res        = ::estd::strtonum<uint8_t>(bytes, 16);
      89           2 :     EXPECT_EQ(res.get(), 0xFU);
      90             :     // [EXAMPLE_STRING_TO_NUM_END]
      91           1 : }

Generated by: LCOV version 1.14