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
|
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
|
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
|
#include "config.h"
#include <time.h>
#import "TestsAppDelegate.h"
static OFString *module = @"OFDate";
static OFString *const module = @"OFDate";
@implementation TestsAppDelegate (OFDateTests)
- (void)dateTests
{
void *pool = objc_autoreleasePoolPush();
OFDate *d1, *d2;
OFDate *date1, *date2;
struct tm tm;
int16_t tz;
const char *dstr = "Wed, 09 Jun 2021 +0200x";
TEST(@"of_strptime()",
of_strptime(dstr, "%a, %d %b %Y %z", &tm, &tz) == dstr + 22 &&
TEST(@"OFStrPTime()",
OFStrPTime(dstr, "%a, %d %b %Y %z", &tm, &tz) == dstr + 22 &&
tm.tm_wday == 3 && tm.tm_mday == 9 && tm.tm_mon == 5 &&
tm.tm_year == 2021 - 1900 && tz == 2 * 60)
TEST(@"+[dateWithTimeIntervalSince1970:]",
(d1 = [OFDate dateWithTimeIntervalSince1970: 0]))
(date1 = [OFDate dateWithTimeIntervalSince1970: 0]))
TEST(@"-[dateByAddingTimeInterval:]",
(d2 = [d1 dateByAddingTimeInterval: 3600 * 25 + 5.000002]))
(date2 = [date1 dateByAddingTimeInterval: 3600 * 25 + 5.000002]))
TEST(@"-[description]",
[d1.description isEqual: @"1970-01-01T00:00:00Z"] &&
[d2.description isEqual: @"1970-01-02T01:00:05Z"])
[date1.description isEqual: @"1970-01-01T00:00:00Z"] &&
[date2.description isEqual: @"1970-01-02T01:00:05Z"])
TEST(@"+[dateWithDateString:format:]",
[[[OFDate dateWithDateString: @"2000-06-20T12:34:56+0200"
format: @"%Y-%m-%dT%H:%M:%S%z"] description]
isEqual: @"2000-06-20T10:34:56Z"]);
EXPECT_EXCEPTION(@"Detection of unparsed in "
|
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
102
103
104
105
106
107
108
109
|
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
102
103
104
105
106
107
108
109
110
111
|
-
-
+
+
-
+
-
+
-
+
+
-
+
-
+
-
+
-
+
+
-
+
-
+
-
+
-
+
-
+
|
EXPECT_EXCEPTION(@"Detection of unparsed in "
@"+[dateWithLocalDateString:format:] #2", OFInvalidFormatException,
[OFDate dateWithLocalDateString: @"2000-06-20T12:34:56+0200x"
format: @"%Y-%m-%dT%H:%M:%S%z"])
TEST(@"-[isEqual:]",
[d1 isEqual: [OFDate dateWithTimeIntervalSince1970: 0]] &&
![d1 isEqual: [OFDate dateWithTimeIntervalSince1970: 0.0000001]])
[date1 isEqual: [OFDate dateWithTimeIntervalSince1970: 0]] &&
![date1 isEqual: [OFDate dateWithTimeIntervalSince1970: 0.0000001]])
TEST(@"-[compare:]", [d1 compare: d2] == OF_ORDERED_ASCENDING)
TEST(@"-[compare:]", [date1 compare: date2] == OFOrderedAscending)
TEST(@"-[second]", d1.second == 0 && d2.second == 5)
TEST(@"-[second]", date1.second == 0 && date2.second == 5)
TEST(@"-[microsecond]", d1.microsecond == 0 && d2.microsecond == 2)
TEST(@"-[microsecond]",
date1.microsecond == 0 && date2.microsecond == 2)
TEST(@"-[minute]", d1.minute == 0 && d2.minute == 0)
TEST(@"-[minute]", date1.minute == 0 && date2.minute == 0)
TEST(@"-[hour]", d1.hour == 0 && d2.hour == 1)
TEST(@"-[hour]", date1.hour == 0 && date2.hour == 1)
TEST(@"-[dayOfMonth]", d1.dayOfMonth == 1 && d2.dayOfMonth == 2)
TEST(@"-[dayOfMonth]", date1.dayOfMonth == 1 && date2.dayOfMonth == 2)
TEST(@"-[monthOfYear]", d1.monthOfYear == 1 && d2.monthOfYear == 1)
TEST(@"-[monthOfYear]",
date1.monthOfYear == 1 && date2.monthOfYear == 1)
TEST(@"-[year]", d1.year == 1970 && d2.year == 1970)
TEST(@"-[year]", date1.year == 1970 && date2.year == 1970)
TEST(@"-[dayOfWeek]", d1.dayOfWeek == 4 && d2.dayOfWeek == 5)
TEST(@"-[dayOfWeek]", date1.dayOfWeek == 4 && date2.dayOfWeek == 5)
TEST(@"-[dayOfYear]", d1.dayOfYear == 1 && d2.dayOfYear == 2)
TEST(@"-[dayOfYear]", date1.dayOfYear == 1 && date2.dayOfYear == 2)
TEST(@"-[earlierDate:]", [[d1 earlierDate: d2] isEqual: d1])
TEST(@"-[earlierDate:]", [[date1 earlierDate: date2] isEqual: date1])
TEST(@"-[laterDate:]", [[d1 laterDate: d2] isEqual: d2])
TEST(@"-[laterDate:]", [[date1 laterDate: date2] isEqual: date2])
objc_autoreleasePoolPop(pool);
}
@end
|