ascii.cpp 1.6 KB

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