algorithm.cpp 984 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include<__vic/algorithm.h>
  2. #include<__vic/tchar.h>
  3. #include<iostream>
  4. #include<exception>
  5. #include<cassert>
  6. namespace tests {
  7. //////////////////////////////////////////////////////////////////////////////
  8. class is_eq_char
  9. {
  10. char c;
  11. public:
  12. explicit is_eq_char(char ch) : c(ch) {}
  13. bool operator()(char ch) const { return ch == c; }
  14. };
  15. //////////////////////////////////////////////////////////////////////////////
  16. void skip_if_tests()
  17. {
  18. const char src[] = "..abc...";
  19. const char * const end = __vic::tchar::end(src);
  20. const char *b = __vic::skip_if_front(src, end, is_eq_char('.'));
  21. assert(*b == 'a');
  22. const char *e = __vic::skip_if_back(src, end, is_eq_char('.'));
  23. assert(e > src);
  24. assert(*(e - 1) == 'c');
  25. }
  26. void run()
  27. {
  28. skip_if_tests();
  29. }
  30. } // namespace
  31. int main()
  32. {
  33. try
  34. {
  35. tests::run();
  36. return 0;
  37. }
  38. catch(const std::exception &ex)
  39. {
  40. std::cerr << ex.what() << '\n';
  41. }
  42. return 1;
  43. }