Now, groups can retrieve a list of the contacts in that group. I probably should...
[adiumx.git] / UnitTests / TestDateAdditions.m
blob7bea6e7e7e0acd9a917b0d0e7925a416c95fbb9d
1 #import "TestDateAdditions.h"
3 #import <AIUtilities/AIDateAdditions.h>
5 @implementation TestDateAdditions
7 - (void)testConvertIntervalToWeeks
9         NSCalendarDate *now = [NSCalendarDate calendarDate];
10         NSCalendarDate *then;
12         int weeks, days, hours, minutes;
13         NSTimeInterval seconds;
15         //Test exactly one week ago.
16         then = [now
17                 dateByAddingYears:-0  months:-0    days:-7
18                                         hours:-0 minutes:-0 seconds:-0];
19         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
20                                                 toWeeks:&weeks
21                                                    days:&days
22                                                   hours:&hours
23                                                 minutes:&minutes
24                                                 seconds:&seconds];
25         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
26         STAssertEquals(weeks, 1, @"Expected the difference between now and 7 days ago to be 1 week; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
27         STAssertEquals( days, 0, @"Expected the difference between now and 7 days ago to be 1 week, 0 days; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
28         STAssertEquals(hours, 0, @"Expected the difference between now and 7 days ago to be 1 week, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
29         STAssertEquals(minutes, 0, @"Expected the difference between now and 7 days ago to be 1 week, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
30         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 7 days ago to be 1 week, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
32         //Test eight days ago. [Insert obligatory Beatles reference]
33         then = [now
34                 dateByAddingYears:-0  months:-0    days:-8
35                                         hours:-0 minutes:-0 seconds:-0];
36         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
37                                                 toWeeks:&weeks
38                                                    days:&days
39                                                   hours:&hours
40                                                 minutes:&minutes
41                                                 seconds:&seconds];
42         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
43         STAssertEquals(weeks, 1, @"Expected the difference between now and 8 days ago to be 1 week, 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
44         STAssertEquals( days, 1, @"Expected the difference between now and 8 days ago to be 1 week, 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
45         STAssertEquals(hours, 0, @"Expected the difference between now and 8 days ago to be 1 week, 1 day, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
46         STAssertEquals(minutes, 0, @"Expected the difference between now and 8 days ago to be 1 week, 1 day, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
47         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 8 days ago to be 1 week, 1 day, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
49         //Test six days (almost, but not quite, one week) ago. [Insert obligatory DJ Shadow reference]
50         then = [now
51                 dateByAddingYears:-0  months:-0    days:-6
52                                         hours:-0 minutes:-0 seconds:-0];
53         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
54                                                 toWeeks:&weeks
55                                                    days:&days
56                                                   hours:&hours
57                                                 minutes:&minutes
58                                                 seconds:&seconds];
59         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
60         STAssertEquals(weeks, 0, @"Expected the difference between now and 6 days ago to be 0 weeks, 6 days; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
61         STAssertEquals( days, 6, @"Expected the difference between now and 8 days ago to be 6 days; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
62         STAssertEquals(hours, 0, @"Expected the difference between now and 8 days ago to be 6 days, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
63         STAssertEquals(minutes, 0, @"Expected the difference between now and 8 days ago to be 6 days, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
64         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 8 days ago to be 6 days, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
66 - (void)testConvertIntervalToDays
68         NSCalendarDate *now = [NSCalendarDate calendarDate];
69         NSCalendarDate *then;
71         int weeks, days, hours, minutes;
72         NSTimeInterval seconds;
74         //Test one day ago.
75         then = [now
76                 dateByAddingYears:-0  months:-0    days:-1
77                                         hours:-0 minutes:-0 seconds:-0];
78         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
79                                                 toWeeks:&weeks
80                                                    days:&days
81                                                   hours:&hours
82                                                 minutes:&minutes
83                                                 seconds:&seconds];
84         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
85         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 day ago to be 0 weeks, 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
86         STAssertEquals( days, 1, @"Expected the difference between now and 1 day ago to be 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
87         STAssertEquals(hours, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
88         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
89         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 day ago to be 1 day, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
91         //Test one day ago, expressed as hours.
92         then = [now
93                 dateByAddingYears:-0   months:-0    days:-0
94                                         hours:-24 minutes:-0 seconds:-0];
95         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
96                                                 toWeeks:&weeks
97                                                    days:&days
98                                                   hours:&hours
99                                                 minutes:&minutes
100                                                 seconds:&seconds];
101         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
102         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 day ago to be 0 weeks, 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
103         STAssertEquals( days, 1, @"Expected the difference between now and 1 day ago to be 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
104         STAssertEquals(hours, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
105         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
106         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 day ago to be 1 day, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
107         
108         //Test 23 hours (almost, but not quite, one day) ago.
109         then = [now
110                 dateByAddingYears:-0   months:-0    days:-0
111                                         hours:-24 minutes:-0 seconds:-0];
112         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
113                                                 toWeeks:&weeks
114                                                    days:&days
115                                                   hours:&hours
116                                                 minutes:&minutes
117                                                 seconds:&seconds];
118         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
119         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 day ago to be 0 weeks, 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
120         STAssertEquals( days, 1, @"Expected the difference between now and 1 day ago to be 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
121         STAssertEquals(hours, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
122         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
123         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 day ago to be 1 day, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
125 - (void)testConvertIntervalToHours
127         NSCalendarDate *now = [NSCalendarDate calendarDate];
128         NSCalendarDate *then;
130         int weeks, days, hours, minutes;
131         NSTimeInterval seconds;
133         //Test one hour ago.
134         then = [now
135                 dateByAddingYears:-0  months:-0    days:-0
136                                         hours:-1 minutes:-0 seconds:-0];
137         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
138                                                 toWeeks:&weeks
139                                                    days:&days
140                                                   hours:&hours
141                                                 minutes:&minutes
142                                                 seconds:&seconds];
143         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
144         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 hour ago to be 0 weeks, 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
145         STAssertEquals( days, 0, @"Expected the difference between now and 1 hour ago to be 0 days, 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
146         STAssertEquals(hours, 1, @"Expected the difference between now and 1 hour ago to be 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
147         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 hour ago to be 1 hour, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
148         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 hour ago to be 1 hour, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
150         //Test one hour ago, expressed as minutes.
151         then = [now
152                 dateByAddingYears:-0  months:-0    days:-0
153                                         hours:-1 minutes:-0 seconds:-0];
154         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
155                                                 toWeeks:&weeks
156                                                    days:&days
157                                                   hours:&hours
158                                                 minutes:&minutes
159                                                 seconds:&seconds];
160         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
161         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 hour ago to be 0 weeks, 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
162         STAssertEquals( days, 0, @"Expected the difference between now and 1 hour ago to be 0 days, 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
163         STAssertEquals(hours, 1, @"Expected the difference between now and 1 hour ago to be 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
164         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 hour ago to be 1 hour, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
165         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 hour ago to be 1 hour, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
167         //Test 59 minutes (almost, but not quite, one hour) ago.
168         then = [now
169                 dateByAddingYears:-0  months:-0     days:-0
170                                         hours:-0 minutes:-59 seconds:-0];
171         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
172                                                 toWeeks:&weeks
173                                                    days:&days
174                                                   hours:&hours
175                                                 minutes:&minutes
176                                                 seconds:&seconds];
177         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
178         STAssertEquals(weeks, 0, @"Expected the difference between now and 59 minutes ago to be 0 weeks, 59 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
179         STAssertEquals( days, 0, @"Expected the difference between now and 59 minutes ago to be 0 days, 59 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
180         STAssertEquals(hours, 0, @"Expected the difference between now and 59 minutes ago to be 0 hours, 59 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
181         STAssertEquals(minutes, 59, @"Expected the difference between now and 59 minutes ago to be 59 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
182         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 59 minutes ago to be 59 minutes, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
184 - (void)testConvertIntervalToMinutes
186         NSCalendarDate *now = [NSCalendarDate calendarDate];
187         NSCalendarDate *then;
189         int weeks, days, hours, minutes;
190         NSTimeInterval seconds;
192         //Test one minute ago.
193         then = [now
194                 dateByAddingYears:-0  months:-0    days:-0
195                                         hours:-0 minutes:-1 seconds:-0];
196         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
197                                                 toWeeks:&weeks
198                                                    days:&days
199                                                   hours:&hours
200                                                 minutes:&minutes
201                                                 seconds:&seconds];
202         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
203         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 minute ago to be 0 weeks, 1 minute; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
204         STAssertEquals( days, 0, @"Expected the difference between now and 1 minute ago to be 0 days, 1 minute; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
205         STAssertEquals(hours, 0, @"Expected the difference between now and 1 minute ago to be 0 hours, 1 minute; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
206         STAssertEquals(minutes, 1, @"Expected the difference between now and 1 minute ago to be 1 minute; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
207         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 minute ago to be 1 minute, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
209         //Test 59 seconds (almost, but not quite, one minute) ago.
210         then = [now
211                 dateByAddingYears:-0  months:-0    days:-0
212                                         hours:-0 minutes:-0 seconds:-59];
213         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
214                                                 toWeeks:&weeks
215                                                    days:&days
216                                                   hours:&hours
217                                                 minutes:&minutes
218                                                 seconds:&seconds];
219         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
220         STAssertEquals(weeks, 0, @"Expected the difference between now and 59 seconds ago to be 0 weeks, 59 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
221         STAssertEquals( days, 0, @"Expected the difference between now and 59 seconds ago to be 0 days, 59 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
222         STAssertEquals(hours, 0, @"Expected the difference between now and 59 seconds ago to be 0 hours, 59 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
223         STAssertEquals(minutes, 0, @"Expected the difference between now and 59 seconds ago to be 0 minutes, 59 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
224         STAssertEquals(seconds, 59.0, @"Expected the difference between now and 59 seconds ago to be 59 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
226 - (void)testConvertIntervalToSeconds
228         NSCalendarDate *now = [NSCalendarDate calendarDate];
229         NSCalendarDate *then;
231         int weeks, days, hours, minutes;
232         NSTimeInterval seconds;
234         //Test one second ago.
235         then = [now
236                 dateByAddingYears:-0  months:-0    days:-0
237                                         hours:-0 minutes:-0 seconds:-1];
238         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
239                                                 toWeeks:&weeks
240                                                    days:&days
241                                                   hours:&hours
242                                                 minutes:&minutes
243                                                 seconds:&seconds];
244         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
245         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 second ago to be 0 weeks, 1 second; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
246         STAssertEquals( days, 0, @"Expected the difference between now and 1 second ago to be 0 days, 1 second; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
247         STAssertEquals(hours, 0, @"Expected the difference between now and 1 second ago to be 0 hours, 1 second; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
248         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 second ago to be 0 minutes, 1 second; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
249         STAssertEquals(seconds, 1.0, @"Expected the difference between now and 1 second ago to be 1 second; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
252 @end