validate_date_time.cpp 1.3 KB

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