Preparing for debian package
[ACL.git] / test / hour_arithmetic.cpp
1 /*******************************************************
2  *  Unit test for the hour class
3  *
4  * test hour add and subtract expressions
5  ******************************************************
6  *
7  */
8
9 #include "date.h"
10 #include <assert.h>
11
12 int main()
13 {
14    hour   h0(14, 22, 45);
15    hour   period0(11, 45, 30);
16
17    hour h2;
18    h2 = h0 + period0;
19
20    std::cout << h0 << " + " << period0 << " = " << h2 << "\n";
21    assert(h2 == hour(26, 8, 15));
22
23    std::cout << h0 << " += " << period0 << " = ";
24    h0 += period0;
25    std::cout << h0 << "\n";
26    assert(h0 == hour(26, 8, 15));
27
28    // 11:05:30 - 1:20:40 =  9:44:50
29    hour h1(11, 5, 30);
30    hour period1(1, 20, 40);
31    h2 = h1 - period1;
32
33    std::cout << h1 << " - " << period1 << " = " << h2 << "\n";
34    assert(h2 == hour(9, 44, 50));
35
36    std::cout << h1 << " -= " << period1 << " = ";
37    h1 -= period1;
38    std::cout << h1 << "\n";
39    std::cout.flush();
40    assert(h1 == hour(9, 44, 50));
41
42    // The increment operator
43
44    hour h3(22, 59, 59);
45    std::cout << h3 << "++ = ";
46    h3++;
47    std::cout << h3 << "\n";
48    assert(h3 == hour(23, 0, 0));
49
50    hour h4(22, 59, 59);
51    std::cout << "++" << h4 << " = ";
52    ++h4;
53    std::cout << h4 << "\n";
54    assert(h4 == hour(23, 0, 0));
55
56    // The decrement operator
57
58    hour h5(22, 0, 0);
59    std::cout << h5 << "-- = ";
60    h5--;
61    std::cout << h5 << "\n";
62    assert(h5 == hour(21, 59, 59));
63
64    hour h6(22, 0, 0);
65    std::cout << "--" << h6 << " = ";
66    --h6;
67    std::cout << h6 << "\n";
68    assert(h6 == hour(21, 59, 59));
69
70    // Adding an integer number of seconds
71
72    hour   h7(14, 22, 45);
73    long   s7 = 7000;
74    hour   h8;
75
76    h8 = h7 + s7;
77    std::cout << h7 << " + " << s7 << " seconds = " << h8 << "\n";
78    assert(h8 == hour(16, 19, 25));
79
80    std::cout << h7 << " += " << s7 << " seconds = ";
81    h7 += s7;
82    std::cout << h7 << "\n";
83    assert(h7 == hour(16, 19, 25));
84
85    // Subtracting an integer number of seconds
86
87    hour   h11(14, 22, 45);
88    long   s11 = 7000;
89    hour   h12;
90
91    h12 = h11 - s11;
92    std::cout << h11 << " - " << s11 << " seconds = " << h12 << "\n";
93    assert(h12 == hour(12, 26, 05));
94
95    std::cout << h11 << " -= " << s11 << " seconds = ";
96    h11 -= s11;
97    std::cout << h11 << "\n";
98    assert(h11 == hour(12, 26, 05));
99
100    return 0;
101 }
102