ascii.cpp 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifndef __VIC_USE_MODULES
  2. #include<__vic/ascii.h>
  3. #include<exception>
  4. #include<iostream>
  5. #endif
  6. #include<cassert>
  7. #ifdef __VIC_USE_MODULES
  8. import std;
  9. import __vic;
  10. #endif
  11. #ifdef isascii
  12. #undef isascii
  13. #endif
  14. namespace tests {
  15. namespace ascii = __vic::ascii;
  16. void run()
  17. {
  18. assert( ascii::islower('a'));
  19. assert(!ascii::islower('A'));
  20. assert(!ascii::islower('.'));
  21. assert(!ascii::isupper('x'));
  22. assert( ascii::isupper('X'));
  23. assert(!ascii::isupper('.'));
  24. assert( ascii::isascii('A'));
  25. assert(!ascii::isascii('\x80'));
  26. assert(!ascii::isascii('\xFF'));
  27. assert(ascii::tolower('Z') == 'z');
  28. assert(ascii::tolower('z') == 'z');
  29. assert(ascii::tolower('1') == '1');
  30. assert(ascii::tolower('\xF0') == '\xF0');
  31. assert(ascii::toupper('z') == 'Z');
  32. assert(ascii::toupper('Z') == 'Z');
  33. assert(ascii::toupper('1') == '1');
  34. assert(ascii::toupper('\xF0') == '\xF0');
  35. assert( ascii::equal_icase('a', 'a'));
  36. assert( ascii::equal_icase('a', 'A'));
  37. assert(!ascii::equal_icase('a', 'b'));
  38. assert(!ascii::equal_icase('.', ','));
  39. assert(ascii::todigit(1) == '1');
  40. assert(ascii::toxdigit_upper(1) == '1');
  41. assert(ascii::toxdigit_lower(1) == '1');
  42. assert(ascii::toxdigit_upper(10) == 'A');
  43. assert(ascii::toxdigit_lower(10) == 'a');
  44. assert(ascii::digit_to_number('5') == 5);
  45. assert(ascii::digit_to_number('A') == -1);
  46. for(int i = 0; i < 256; i++)
  47. std::cout << ascii::xdigit_to_number(i) << ' ';
  48. std::cout << '\n';
  49. }
  50. } // namespace
  51. int main()
  52. {
  53. try
  54. {
  55. tests::run();
  56. return 0;
  57. }
  58. catch(const std::exception &ex)
  59. {
  60. std::cerr << ex.what() << '\n';
  61. }
  62. return 1;
  63. }