Echo Writes Code

test_string.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "crucible/core.hpp"
#include "crucible/test.hpp"

namespace crucible::core
{
  String const EMPTY_STRING;

  String const SMALL_STRING { "g\U000000e2teau \U0001f382 \U00002713" };

  constexpr String_View SMALL_STRING_VIEW { "g\U000000e2teau \U0001f382 \U00002713" };

  CRUCIBLE_TEST_SCENARIO(empty_string)
  {
    CRUCIBLE_CORE_ASSERT_PROPERTY(EMPTY_STRING, EMPTY_STRING.is_empty());
  }

  CRUCIBLE_TEST_SCENARIO(string_has_prefix)
  {
    CRUCIBLE_CORE_ASSERT_PROPERTY(SMALL_STRING, SMALL_STRING.has_prefix("g\U000000e2"));
  }

  CRUCIBLE_TEST_SCENARIO(string_has_suffix)
  {
    CRUCIBLE_CORE_ASSERT_PROPERTY(SMALL_STRING, SMALL_STRING.has_suffix(" \U0001f382 \U00002713"));
  }

  CRUCIBLE_TEST_SCENARIO(string_view_has_prefix)
  {
    CRUCIBLE_CORE_ASSERT_PROPERTY(SMALL_STRING_VIEW, SMALL_STRING_VIEW.has_prefix("g\U000000e2"));
  }

  CRUCIBLE_TEST_SCENARIO(string_view_has_suffix)
  {
    CRUCIBLE_CORE_ASSERT_PROPERTY(SMALL_STRING_VIEW, SMALL_STRING_VIEW.has_suffix(" \U0001f382 \U00002713"));
  }
}

CRUCIBLE_TEST_MAIN