herd_datetime_tests.erl 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. -module(herd_datetime_tests).
  2. -include_lib("eunit/include/eunit.hrl").
  3. -spec datetime_from_db_test() -> ok.
  4. datetime_from_db_test() ->
  5. ?assertEqual({{2016, 11, 18}, {13, 55, 12}},
  6. herd_datetime:datetime_from_db({{2016, 11, 18}, {13, 55, 12.632}})),
  7. ok.
  8. -spec timestamp_to_datetime_test() -> ok.
  9. timestamp_to_datetime_test() ->
  10. ?assertEqual({{2016,11,18},{10,57,44}},
  11. herd_datetime:timestamp_to_datetime(1479466664)),
  12. ok.
  13. -spec timestamp_to_db_datetime_test() -> ok.
  14. timestamp_to_db_datetime_test() ->
  15. {{2016,11,18},{10,57,S}} = herd_datetime:timestamp_to_db_datetime(1479466664.123456),
  16. ?assert(abs(S - 44.123456) < 0.0000001),
  17. ok.
  18. -spec datetime_to_ISO_test() -> ok.
  19. datetime_to_ISO_test() ->
  20. ?assertEqual("2016-11-18T13:55:12",
  21. herd_datetime:datetime_to_ISO({{2016, 11, 18}, {13, 55, 12}})),
  22. ok.
  23. -spec add_interval_test() -> ok.
  24. add_interval_test() ->
  25. DT = {{2016, 11, 18}, {13, 55, 12}},
  26. ?assertEqual({{2016, 11, 18}, {13, 55, 14}},
  27. herd_datetime:add_interval(DT, {2, second})),
  28. ?assertEqual({{2016, 11, 18}, {14, 2, 12}},
  29. herd_datetime:add_interval(DT, {7, minute})),
  30. ?assertEqual({{2016, 11, 18}, {15, 55, 12}},
  31. herd_datetime:add_interval(DT, {2, hour})),
  32. ?assertEqual({{2016, 11, 19}, {3, 55, 12}},
  33. herd_datetime:add_interval(DT, {14, hour})),
  34. ?assertEqual({{2016, 11, 20}, {13, 55, 12}},
  35. herd_datetime:add_interval(DT, {2, day})),
  36. ?assertEqual({{2016, 12, 8}, {13, 55, 12}},
  37. herd_datetime:add_interval(DT, {20, day})),
  38. ?assertEqual({{2016, 11, 25}, {13, 55, 12}},
  39. herd_datetime:add_interval(DT, {1, week})),
  40. ?assertEqual({{2016, 12, 2}, {13, 55, 12}},
  41. herd_datetime:add_interval(DT, {2, week})),
  42. ok.
  43. -spec subtract_interval_test() -> ok.
  44. subtract_interval_test() ->
  45. DT = {{2016, 11, 18}, {13, 55, 12}},
  46. ?assertEqual({{2016, 11, 18}, {13, 55, 10}},
  47. herd_datetime:subtract_interval(DT, {2, second})),
  48. ?assertEqual({{2016, 11, 18}, {13, 48, 12}},
  49. herd_datetime:subtract_interval(DT, {7, minute})),
  50. ?assertEqual({{2016, 11, 18}, {11, 55, 12}},
  51. herd_datetime:subtract_interval(DT, {2, hour})),
  52. ?assertEqual({{2016, 11, 17}, {23, 55, 12}},
  53. herd_datetime:subtract_interval(DT, {14, hour})),
  54. ?assertEqual({{2016, 11, 16}, {13, 55, 12}},
  55. herd_datetime:subtract_interval(DT, {2, day})),
  56. ?assertEqual({{2016, 10, 29}, {13, 55, 12}},
  57. herd_datetime:subtract_interval(DT, {20, day})),
  58. ?assertEqual({{2016, 11, 11}, {13, 55, 12}},
  59. herd_datetime:subtract_interval(DT, {1, week})),
  60. ?assertEqual({{2016, 11, 4}, {13, 55, 12}},
  61. herd_datetime:subtract_interval(DT, {2, week})),
  62. ok.