1 #import "TestDateAdditions.h"
3 #import <AIUtilities/AIDateAdditions.h>
5 @implementation TestDateAdditions
7 - (void)testConvertIntervalToWeeks
9 NSCalendarDate *now = [NSCalendarDate calendarDate];
12 int weeks, days, hours, minutes;
13 NSTimeInterval seconds;
15 //Test exactly one week ago.
17 dateByAddingYears:-0 months:-0 days:-7
18 hours:-0 minutes:-0 seconds:-0];
19 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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]
34 dateByAddingYears:-0 months:-0 days:-8
35 hours:-0 minutes:-0 seconds:-0];
36 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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]
51 dateByAddingYears:-0 months:-0 days:-6
52 hours:-0 minutes:-0 seconds:-0];
53 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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];
71 int weeks, days, hours, minutes;
72 NSTimeInterval seconds;
76 dateByAddingYears:-0 months:-0 days:-1
77 hours:-0 minutes:-0 seconds:-0];
78 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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.
93 dateByAddingYears:-0 months:-0 days:-0
94 hours:-24 minutes:-0 seconds:-0];
95 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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);
108 //Test 23 hours (almost, but not quite, one day) ago.
110 dateByAddingYears:-0 months:-0 days:-0
111 hours:-24 minutes:-0 seconds:-0];
112 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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;
135 dateByAddingYears:-0 months:-0 days:-0
136 hours:-1 minutes:-0 seconds:-0];
137 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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.
152 dateByAddingYears:-0 months:-0 days:-0
153 hours:-1 minutes:-0 seconds:-0];
154 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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.
169 dateByAddingYears:-0 months:-0 days:-0
170 hours:-0 minutes:-59 seconds:-0];
171 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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.
194 dateByAddingYears:-0 months:-0 days:-0
195 hours:-0 minutes:-1 seconds:-0];
196 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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.
211 dateByAddingYears:-0 months:-0 days:-0
212 hours:-0 minutes:-0 seconds:-59];
213 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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.
236 dateByAddingYears:-0 months:-0 days:-0
237 hours:-0 minutes:-0 seconds:-1];
238 [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
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);