Implemented class UTC.
[libacl.git] / test / utc_assign.cpp
1 /*******************************************************
2  *  Unit test for the UTC class
3  *
4  * test contrustor and assignment of UTC objects
5  ******************************************************
6  *
7  */
8
9 #include "date.h"
10 #include <assert.h>
11
12 int main()
13 {
14    // Default contructor: all zero
15    UTC  u0;
16    date d0;
17    hour h0;
18
19    d0 = date(u0);
20    h0 = hour(u0);
21
22    std::cout << "The default contructor makes a zero date:and time " << u0 << "\n";
23    assert(d0.Day() == 0);
24    assert(d0.Month() == 0);
25    assert(d0.Year() == 0);
26    assert(h0.Hour() == 0);
27    assert(h0.Minute() == 0);
28    assert(h0.Second() == 0);
29
30    date d1(15, 9, 2002);
31    hour h1(15, 23, 46);
32
33    UTC  u1(d1, h1);
34
35    std::cout << "Contructor with date = 15-9-2002, hour = 15:23:46: " << u1 << "\n";
36    date d2(u1);
37    hour h2(u1);
38
39    assert(d2.Day() == 15);
40    assert(d2.Month() == 9);
41    assert(d2.Year() == 2002);
42    assert(h2.Hour() == 15);
43    assert(h2.Minute() == 23);
44    assert(h2.Second() == 46);
45
46    String s3("23-10-2019 23:45:16");
47    UTC    u3(s3);
48
49    std::cout << "Contructor from String " << s3 << " : " << u3 << "\n";
50
51    date d3(u3);
52    hour h3(u3);
53
54    assert(d3.Day() == 23);
55    assert(d3.Month() == 10);
56    assert(d3.Year() == 2019);
57    assert(h3.Hour() == 23);
58    assert(h3.Minute() == 45);
59    assert(h3.Second() == 16);
60
61    String s4("Thu Oct  3 22:38:38 CEST 2019");
62    UTC    u4(s4);
63
64    std::cout << "Contructor from String " << s4 << " : " << u4 << "\n";
65
66    date d4(u4);
67    hour h4(u4);
68
69    assert(d4.Day() == 3);
70    assert(d4.Month() == 10);
71    assert(d4.Year() == 2019);
72    assert(h4.Hour() == 22);
73    assert(h4.Minute() == 38);
74    assert(h4.Second() == 38);
75
76    return 0;
77 }
78