validate_date_time.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include<__vic/date_time.h>
  2. #include<iostream>
  3. #include<exception>
  4. #include<cassert>
  5. void run_tests()
  6. {
  7. __vic::validate_date(2016, 12, 31);
  8. __vic::validate_time(11, 32, 15);
  9. __vic::validate_time(0, 0, 0);
  10. assert(__vic::is_leap_year(2016));
  11. __vic::validate_date_time(2016, 2, 29, 12, 0, 0);
  12. try
  13. {
  14. __vic::validate_date(0, 1, 1);
  15. assert(false); // NOTREACHED
  16. }
  17. catch(const __vic::invalid_date & ) {} // OK
  18. try
  19. {
  20. __vic::validate_date(1, 0, 1);
  21. assert(false); // NOTREACHED
  22. }
  23. catch(const __vic::invalid_date & ) {} // OK
  24. try
  25. {
  26. __vic::validate_date(1, 13, 1);
  27. assert(false); // NOTREACHED
  28. }
  29. catch(const __vic::invalid_date & ) {} // OK
  30. try
  31. {
  32. assert(!__vic::is_leap_year(2015));
  33. __vic::validate_date(2015, 2, 29);
  34. assert(false); // NOTREACHED
  35. }
  36. catch(const __vic::invalid_date & ) {} // OK
  37. try
  38. {
  39. __vic::validate_time(25, 0, 0);
  40. assert(false); // NOTREACHED
  41. }
  42. catch(const __vic::invalid_date & ) {} // OK
  43. }
  44. int main()
  45. {
  46. try
  47. {
  48. run_tests();
  49. return 0;
  50. }
  51. catch(const std::exception &ex)
  52. {
  53. std::cerr << ex.what() << '\n';
  54. }
  55. return 1;
  56. }