Guest User

Untitled

a guest
May 23rd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.50 KB | None | 0 0
  1. #include "Defines.h"
  2.  
  3. #include "UnitTest++.h"
  4.  
  5. #include "TBString2.h"
  6.  
  7. namespace
  8. {
  9.  
  10.     UnitTest::MemoryOutStream& operator << (UnitTest::MemoryOutStream& a_Target, const wchar_t* a_Value)
  11.     {
  12.         size_t len = wcslen(a_Value);
  13.         char* result = new char[len + 1];
  14.         char* dst = result;
  15.         const wchar_t* src = a_Value;
  16.         for (size_t i = 0; i < len; i++)
  17.         {
  18.             *dst++ = (char)(*src++ & 0xFF);
  19.         }
  20.         *dst++ = 0;
  21.  
  22.         a_Target << result;
  23.         delete result;
  24.         return a_Target;
  25.     }
  26.  
  27.     UnitTest::MemoryOutStream& operator << (UnitTest::MemoryOutStream& a_Target, const tb::StringBase<wchar_t>& a_Value)
  28.     {
  29.         a_Target << a_Value.GetData();
  30.         return a_Target;
  31.     }
  32.  
  33.     TEST(CheckBasicA)
  34.     {
  35.         tb::StringBase<char> str("Hello World!");
  36.         tb::StringBase<char> str_fixed("Hello World!", 256);
  37.  
  38.         CHECK(!strcmp("Hello World!", str.GetData()));
  39.         CHECK(!strcmp("Hello World!", str_fixed.GetData()));
  40.     }
  41.  
  42.     TEST(CheckBasicW)
  43.     {
  44.         tb::StringBase<wchar_t> str(L"Hello World!");
  45.         tb::StringBase<wchar_t> str_fixed(L"Hello World!", 256);
  46.  
  47.         CHECK(!wcscmp(L"Hello World!", str.GetData()));
  48.         CHECK(!wcscmp(L"Hello World!", str_fixed.GetData()));
  49.     }
  50.  
  51.     TEST(CheckFixedA)
  52.     {
  53.         tb::StringBase<char> str("Hello World!", 8);
  54.  
  55.         CHECK(!strcmp("Hello W", str.GetData()));
  56.     }
  57.  
  58.     TEST(CheckFixedW)
  59.     {
  60.         tb::StringBase<wchar_t> str(L"Hello World!", 8);
  61.  
  62.         CHECK(!wcscmp(L"Hello W", str.GetData()));
  63.     }
  64.  
  65.     TEST(CheckAssignmentA)
  66.     {
  67.         tb::StringBase<char> str;
  68.        
  69.         str = "Hello";
  70.         CHECK(!strcmp("Hello", str.GetData()));
  71.         str = L"Hello";
  72.         CHECK_EQUAL("Hello", str);
  73.         str = tb::StringBase<char>(L"Hello");
  74.         CHECK_EQUAL("Hello", str);
  75.         str = tb::StringBase<wchar_t>("Hello");
  76.         CHECK_EQUAL("Hello", str);
  77.     }
  78.  
  79.     TEST(CheckAssignmentW)
  80.     {
  81.         tb::StringBase<wchar_t> str;
  82.        
  83.         str = L"Hello";
  84.         CHECK_EQUAL(L"Hello", str);
  85.         str = "Hello";
  86.         CHECK_EQUAL(L"Hello", str);
  87.         str = tb::StringBase<wchar_t>(L"Hello");
  88.         CHECK_EQUAL(L"Hello", str);
  89.         str = tb::StringBase<char>("Hello");
  90.         CHECK_EQUAL(L"Hello", str);
  91.     }
  92.  
  93.     TEST(CheckAppend)
  94.     {
  95.         tb::StringBase<char> str = tb::StringBase<char>("Hello");
  96.         str += " World!";
  97.         CHECK_EQUAL("Hello World!", str.GetData());
  98.     }
  99.  
  100.     TEST(CheckCompareOperatorA)
  101.     {
  102.         tb::StringBase<char> str = "Hello World!";
  103.         tb::StringBase<wchar_t> strw = L"Hello World!";
  104.  
  105.         CHECK(str == "Hello World!");
  106.         CHECK(str == L"Hello World!");
  107.         CHECK(!(str == "hello world!"));
  108.         CHECK(!(str == L"hello world!"));
  109.         CHECK(str == str);
  110.         CHECK(str == strw);
  111.     }
  112.    
  113.     TEST(CheckCompareOperatorW)
  114.     {
  115.         tb::StringBase<wchar_t> str = L"Hello World!";
  116.         tb::StringBase<char> stra = "Hello World!";
  117.  
  118.         CHECK(str == L"Hello World!");
  119.         CHECK(str == "Hello World!");
  120.         CHECK(!(str == L"hello world!"));
  121.         CHECK(!(str == "hello world!"));
  122.         CHECK(str == str);
  123.         CHECK(str == stra);
  124.     }
  125.  
  126.     TEST(CheckCompareA)
  127.     {
  128.         tb::StringBase<char> str = "Hello World!";
  129.  
  130.         CHECK(str.Compare("Hello World!", eCompareMode_CaseSensitive));
  131.         CHECK(!str.Compare("hello world!", eCompareMode_CaseSensitive));
  132.         CHECK(str.Compare("Hello World!", eCompareMode_CaseInsensitive));
  133.         CHECK(str.Compare("hello world!", eCompareMode_CaseInsensitive));
  134.     }
  135.  
  136.     TEST(CheckCompareW)
  137.     {
  138.         tb::StringBase<wchar_t> str = L"Hello World!";
  139.  
  140.         CHECK(str.Compare(L"Hello World!", eCompareMode_CaseSensitive));
  141.         CHECK(!str.Compare(L"hello world!", eCompareMode_CaseSensitive));
  142.         CHECK(str.Compare(L"Hello World!", eCompareMode_CaseInsensitive));
  143.         CHECK(str.Compare(L"hello world!", eCompareMode_CaseInsensitive));
  144.     }
  145.  
  146. }
Add Comment
Please, Sign In to add comment