tchar.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include<__vic/tchar.h>
  2. #include<iostream>
  3. #include<exception>
  4. #include<cassert>
  5. #include<cctype>
  6. namespace tests {
  7. namespace tchar = __vic::tchar;
  8. struct is_upper
  9. {
  10. bool operator()(char c) const { return std::isupper(c); }
  11. };
  12. void run()
  13. {
  14. assert(tchar::length("abc") == 3);
  15. assert(tchar::length(L"abc") == 3);
  16. assert(*tchar::end("abc") == '\x0');
  17. assert(tchar::compare("ab", "ab") == 0);
  18. assert(tchar::compare("ab", "ac") < 0);
  19. assert(tchar::compare("ab", "aa") > 0);
  20. assert(tchar::compare("a", "ab") < 0);
  21. char st[32] = "a";
  22. tchar::concat(st, "b");
  23. assert(tchar::compare(st, "ab") == 0);
  24. const char *p;
  25. p = tchar::find("abc", 'b');
  26. assert(p && *p == 'b');
  27. p = tchar::find("abcd", "cd");
  28. assert(p && *p == 'c');
  29. p = tchar::find_if("abCd", is_upper());
  30. assert(p && *p == 'C');
  31. p = tchar::find_first_of("abcd", "bc");
  32. assert(p && *p == 'b');
  33. p = tchar::find_last_of("abcd", "bc");
  34. assert(p && *p == 'c');
  35. p = tchar::find_first_not_of("abcd", "ab");
  36. assert(p && *p == 'c');
  37. p = tchar::find_last_not_of("abcda", "ab");
  38. assert(p && *p == 'd');
  39. assert(*tchar::skip(" ab", ' ') == 'a');
  40. assert(*tchar::skip("ab", ' ') == 'a');
  41. }
  42. } // namespace
  43. int main()
  44. {
  45. try
  46. {
  47. tests::run();
  48. return 0;
  49. }
  50. catch(const std::exception &ex)
  51. {
  52. std::cerr << ex.what() << '\n';
  53. }
  54. return 1;
  55. }