summaryrefslogtreecommitdiff
path: root/test/test_date.cc
blob: 5fb0d37cb23f71417a6af434d5eeb204b89195d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include "common.hh"

#include "date.hh"

#include <gtest/gtest.h>

TEST(date, empty) {
  Date d;
  EXPECT_TRUE(d.empty());
  EXPECT_TRUE(d == d);
  EXPECT_FALSE(d < d);
  Date a(0);
  EXPECT_FALSE(a.empty());
  EXPECT_FALSE(d == a);
  EXPECT_TRUE(d < a);
}

TEST(date, compare) {
  Date a(0);
  Date b(1);

  EXPECT_TRUE(a < b);
  EXPECT_TRUE(a <= b);
  EXPECT_FALSE(a > b);
  EXPECT_FALSE(a >= b);
  EXPECT_FALSE(a == b);
  EXPECT_TRUE(a != b);

  EXPECT_FALSE(b < a);
  EXPECT_FALSE(b <= a);
  EXPECT_TRUE(b > a);
  EXPECT_TRUE(b >= a);
  EXPECT_FALSE(b == a);
  EXPECT_TRUE(b != a);

  b = a;

  EXPECT_FALSE(a < b);
  EXPECT_TRUE(a <= b);
  EXPECT_FALSE(a > b);
  EXPECT_TRUE(a >= b);
  EXPECT_TRUE(a == b);
  EXPECT_FALSE(a != b);
}

TEST(date, from_format) {
  auto a = Date::from_format("%Y-%m-%d %H:%M:%S",
                             "1970-01-01 00:00:00",
                             false);
  EXPECT_FALSE(a.empty());
  EXPECT_EQ(0, a.value());

  auto b = Date::from_format("%Y-%m-%d %H:%M:%S",
                             "1970-01-01 00:99:00",
                             false);
  EXPECT_TRUE(b.empty());

  auto c = Date::from_format("%Y-%m-%d %H:%M:%S",
                             "",
                             false);
  EXPECT_TRUE(c.empty());
}

TEST(date, day) {
  auto day = Date::from_format("%Y-%m-%d %H:%M:%S",
                               "1982-04-10 00:00:00");
  EXPECT_FALSE(day.empty());
  EXPECT_EQ(day, day.day());
  auto time = Date::from_format("%Y-%m-%d %H:%M:%S",
                                "1982-04-10 14:42:10");
  EXPECT_FALSE(time.empty());
  EXPECT_NE(day, time);
  EXPECT_EQ(day, time.day());

  Date empty;
  EXPECT_TRUE(empty.day().empty());
}

TEST(date, to_format) {
  auto a = Date::from_format("%Y-%m-%d %H:%M:%S",
                             "1970-01-01 00:00:00",
                             false);
  EXPECT_EQ("1970-01-01 00:00:00",
            a.to_format("%Y-%m-%d %H:%M:%S",
                        false));
  EXPECT_EQ("", a.to_format(""));

  Date b;
  EXPECT_EQ("", b.to_format("%Y-%m-%d %H:%M:%S"));

  auto c = Date::from_format("%Y-%m-%d %H:%M:%S",
                             "1982-04-10 14:42:10");
  EXPECT_EQ("1982-04-10 14:42:10",
            c.to_format("%Y-%m-%d %H:%M:%S"));

  EXPECT_EQ("1982-04-10 14:42:10" "1982-04-10 14:42:10" "1982-04-10 14:42:10"
            "1982-04-10 14:42:10" "1982-04-10 14:42:10" "1982-04-10 14:42:10",
            c.to_format("%Y-%m-%d %H:%M:%S" "%Y-%m-%d %H:%M:%S"
                        "%Y-%m-%d %H:%M:%S" "%Y-%m-%d %H:%M:%S"
                        "%Y-%m-%d %H:%M:%S" "%Y-%m-%d %H:%M:%S"));
}