workpattern 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,396 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper.rb'
2
-
3
- class TestHour < MiniTest::Unit::TestCase #:nodoc:
4
-
5
- def setup
6
- @working_hour = Workpattern::WORKING_HOUR
7
- @resting_hour = Workpattern::RESTING_HOUR
8
- @pattern_hour = @working_hour
9
- @pattern_hour = @pattern_hour.wp_workpattern(0,0,0)
10
- @pattern_hour = @pattern_hour.wp_workpattern(59,59,0)
11
- @pattern_hour = @pattern_hour.wp_workpattern(11,30,0)
12
-
13
- end
14
-
15
- def test_for_default_working_hour_of_60_minutes
16
- assert_equal 60, @working_hour.wp_total,"working total minutes"
17
- assert_equal 0, @working_hour.wp_first,"first minute of the working hour"
18
- assert_equal 59, @working_hour.wp_last, "last minute of the working hour"
19
- end
20
-
21
- def test_for_default_resting_hour_of_0_minutes
22
- assert_equal 0, @resting_hour.wp_total,"resting total minutes"
23
- assert_equal nil, @resting_hour.wp_first,"first minute of the resting hour"
24
- assert_equal nil, @resting_hour.wp_last, "last minute of the resting hour"
25
- end
26
-
27
- def test_for_creating_a_workpattern_in_an_hour
28
- assert_equal 38,@pattern_hour.wp_total, "total working minutes in pattern"
29
- assert_equal 1, @pattern_hour.wp_first, "first minute of the pattern hour"
30
- assert_equal 58, @pattern_hour.wp_last, "last minute of the pattern hour"
31
- refute @pattern_hour.wp_working?(0)
32
- assert @pattern_hour.wp_working?(1)
33
- end
34
-
35
- def test_for_creating_8_33_that_failed_in_test_day
36
- test_hour=@working_hour.wp_workpattern(0,33,0)
37
- assert_equal 26, test_hour.wp_total
38
- end
39
-
40
- def test_can_add_more_than_the_available_minutes_in_a_working_hour
41
- start_date=DateTime.new(2013,1,1,1,8)
42
- result, remainder=@working_hour.wp_calc(start_date,53)
43
- assert_equal DateTime.new(2013,1,1,2,0), result
44
- assert_equal 1,remainder
45
- end
46
-
47
- def test_can_add_exact_amount_of_available_minutes_in_working_hour
48
- start_date=DateTime.new(2013,1,1,1,8)
49
- result, remainder=@working_hour.wp_calc(start_date,52)
50
- assert_equal DateTime.new(2013,1,1,2,0), result
51
- assert_equal 0,remainder
52
- end
53
-
54
- def test_can_add_when_more_available_minutes_in_working_hour
55
- start_date=DateTime.new(2013,1,1,1,8)
56
- result, remainder=@working_hour.wp_calc(start_date,51)
57
- assert_equal DateTime.new(2013,1,1,1,59), result
58
- assert_equal 0,remainder
59
- end
60
-
61
- def test_can_add_1_minute_to_59_seconds_in_working_hour
62
- start_date=DateTime.new(2013,1,1,1,59)
63
- result, remainder=@working_hour.wp_calc(start_date,1)
64
- assert_equal DateTime.new(2013,1,1,2,0), result
65
- assert_equal 0,remainder
66
- end
67
-
68
- def test_can_add_2_minute_to_59_seconds_in_working_hour
69
- start_date=DateTime.new(2013,1,1,1,59)
70
- result, remainder=@working_hour.wp_calc(start_date,2)
71
- assert_equal DateTime.new(2013,1,1,2,0), result
72
- assert_equal 1,remainder
73
- end
74
-
75
- def test_can_subtract_more_than_the_available_minutes_in_a_working_hour
76
- start_date=DateTime.new(2013,1,1,1,31)
77
- result, remainder=@working_hour.wp_calc(start_date,-32)
78
- assert_equal DateTime.new(2013,1,1,1,0), result
79
- assert_equal -1,remainder
80
- end
81
-
82
- def test_can_subtract_exact_amount_of_available_minutes_in_working_hour
83
- start_date=DateTime.new(2013,1,1,1,31)
84
- result, remainder=@working_hour.wp_calc(start_date,-31)
85
- assert_equal DateTime.new(2013,1,1,1,0), result
86
- assert_equal 0,remainder
87
- end
88
-
89
- def test_can_subtract_1_second_less_than_available_minutes_in_working_hour
90
- start_date=DateTime.new(2013,1,1,1,31)
91
- result, remainder=@working_hour.wp_calc(start_date,-30)
92
- assert_equal DateTime.new(2013,1,1,1,1), result
93
- assert_equal 0,remainder
94
- end
95
-
96
- def test_can_subtract_when_more_available_minutes_in_working_hour
97
- start_date=DateTime.new(2013,1,1,1,31)
98
- result, remainder=@working_hour.wp_calc(start_date,-30)
99
- assert_equal DateTime.new(2013,1,1,1,1), result
100
- assert_equal 0,remainder
101
- end
102
-
103
- def test_can_subtract_1_minute_from_0_seconds_in_working_hour
104
- start_date=DateTime.new(2013,1,1,1,0)
105
- result, remainder=@working_hour.wp_calc(start_date,-1)
106
- assert_equal DateTime.new(2013,1,1,1,0), result
107
- assert_equal -1,remainder
108
- end
109
-
110
- def test_can_subtract_2_minute_to_0_seconds_in_working_hour
111
- start_date=DateTime.new(2013,1,1,1,0)
112
- result, remainder=@working_hour.wp_calc(start_date,-2)
113
- assert_equal DateTime.new(2013,1,1,1,0), result
114
- assert_equal -2,remainder
115
- end
116
-
117
- def test_can_subtract_exact_minutes_from_start_of_a_working_hour
118
- start_date=DateTime.new(2013,1,1,1,0)
119
- result, remainder=@working_hour.wp_calc(start_date,-60,true)
120
- assert_equal DateTime.new(2013,1,1,1,0), result
121
- assert_equal 0,remainder
122
- end
123
-
124
- def test_can_subtract_less_than_available_minutes_from_start_of_a_working_hour
125
- start_date=DateTime.new(2013,1,1,1,0)
126
- result, remainder=@working_hour.wp_calc(start_date,-59,true)
127
- assert_equal DateTime.new(2013,1,1,1,1), result
128
- assert_equal 0,remainder
129
- end
130
-
131
- def test_can_subtract_more_than_available_minutes_from_start_of_a_working_hour
132
- start_date=DateTime.new(2013,1,1,1,0)
133
- result, remainder=@working_hour.wp_calc(start_date,-61,true)
134
- assert_equal DateTime.new(2013,1,1,1,0), result
135
- assert_equal -1,remainder
136
- end
137
-
138
- def test_can_subtract_1_minute_from_end_of_a_working_hour
139
- start_date=DateTime.new(2013,1,1,1,0)
140
- result, remainder=@working_hour.wp_calc(start_date,-1,true)
141
- assert_equal DateTime.new(2013,1,1,1,59), result
142
- assert_equal 0,remainder
143
- end
144
-
145
- def test_can_zero_minutes_in_a_working_hour
146
- start_date=DateTime.new(2013,1,1,1,8)
147
- result, remainder=@working_hour.wp_calc(start_date,0)
148
- assert_equal DateTime.new(2013,1,1,1,8), result
149
- assert_equal 0,remainder
150
- end
151
-
152
- def test_can_add_1_minute_to_a_resting_hour
153
- start_date=DateTime.new(2013,1,1,1,30)
154
- result, remainder=@resting_hour.wp_calc(start_date,1)
155
- assert_equal DateTime.new(2013,1,1,2,0), result
156
- assert_equal 1,remainder
157
- end
158
-
159
- def test_can_add_1_minute_to_59_seconds_of_resting_hour
160
- start_date=DateTime.new(2013,1,1,1,59)
161
- result, remainder=@resting_hour.wp_calc(start_date,1)
162
- assert_equal DateTime.new(2013,1,1,2,0), result
163
- assert_equal 1,remainder
164
- end
165
-
166
- def test_can_add_1_minute_to_0_seconds_of_resting_hour
167
- start_date=DateTime.new(2013,1,1,1,0)
168
- result, remainder=@resting_hour.wp_calc(start_date,1)
169
- assert_equal DateTime.new(2013,1,1,2,0), result
170
- assert_equal 1,remainder
171
- end
172
-
173
- def test_can_subtract_0_minutes_from_start_of_a_resting_hour
174
- start_date=DateTime.new(2013,1,1,1,0)
175
- result, remainder=@resting_hour.wp_calc(start_date,0,true)
176
- assert_equal DateTime.new(2013,1,1,1,0), result
177
- assert_equal 0,remainder
178
- end
179
-
180
- def test_can_subtract_1_minute_from_end_of_a_resting_hour
181
- start_date=DateTime.new(2013,1,1,1,0)
182
- result, remainder=@resting_hour.wp_calc(start_date,-1,true)
183
- assert_equal DateTime.new(2013,1,1,1,0), result
184
- assert_equal -1,remainder
185
- end
186
-
187
- def test_can_zero_minutes_in_a_resting_hour
188
- start_date=DateTime.new(2013,1,1,1,8)
189
- result, remainder=@resting_hour.wp_calc(start_date,0)
190
- assert_equal DateTime.new(2013,1,1,1,8), result
191
- assert_equal 0,remainder
192
- end
193
-
194
- def test_can_add_more_than_the_available_minutes_in_a_patterned_hour
195
- start_date=DateTime.new(2013,1,1,1,8)
196
- result, remainder=@pattern_hour.wp_calc(start_date,32)
197
- assert_equal DateTime.new(2013,1,1,2,0), result
198
- assert_equal 1,remainder
199
- end
200
-
201
- def test_can_add_exact_amount_of_available_minutes_in_patterned_hour
202
- start_date=DateTime.new(2013,1,1,1,8)
203
- result, remainder=@pattern_hour.wp_calc(start_date,31)
204
- assert_equal DateTime.new(2013,1,1,1,59), result
205
- assert_equal 0,remainder
206
- end
207
-
208
- def test_can_add_when_more_available_minutes_in_patterned_hour
209
- start_date=DateTime.new(2013,1,1,1,8)
210
- result, remainder=@pattern_hour.wp_calc(start_date,30)
211
- assert_equal DateTime.new(2013,1,1,1,58), result
212
- assert_equal 0,remainder
213
- end
214
-
215
- def test_can_add_from_resting_period_in_patterned_hour
216
- start_date=DateTime.new(2013,1,1,1,15)
217
- result, remainder=@pattern_hour.wp_calc(start_date,1)
218
- assert_equal DateTime.new(2013,1,1,1,32), result
219
- assert_equal 0,remainder
220
- end
221
-
222
- def test_can_add_1_subtract_1_to_find_next_working_period_in_patterned_hour
223
- start_date=DateTime.new(2013,1,1,1,15)
224
- start_date, remainder=@pattern_hour.wp_calc(start_date,1)
225
- result, remainder=@pattern_hour.wp_calc(start_date,-1)
226
- assert_equal DateTime.new(2013,1,1,1,31), result
227
- assert_equal 0,remainder
228
- end
229
-
230
- def test_can_add_zero_minutes_in_a_working_period_patterned_hour
231
- start_date=DateTime.new(2013,1,1,1,8)
232
- result, remainder=@pattern_hour.wp_calc(start_date,0)
233
- assert_equal DateTime.new(2013,1,1,1,8), result
234
- assert_equal 0,remainder
235
- end
236
-
237
- def test_can_zero_minutes_in_a_resting_period_patterned_hour
238
- start_date=DateTime.new(2013,1,1,1,15)
239
- result, remainder=@pattern_hour.wp_calc(start_date,0)
240
- assert_equal DateTime.new(2013,1,1,1,15), result
241
- assert_equal 0,remainder
242
- end
243
-
244
- def test_minutes_in_slice_of_working_hour
245
- assert_equal 8,@working_hour.wp_minutes(8,15)
246
- end
247
-
248
- def test_minutes_in_slice_of_resting_hour
249
- assert_equal 0,@resting_hour.wp_minutes(8,15)
250
- end
251
-
252
- def test_minutes_in_slice_of_working_hour
253
- assert_equal 3,@pattern_hour.wp_minutes(8,15)
254
- assert_equal 4,@pattern_hour.wp_minutes(8,31)
255
- end
256
-
257
- def test_can_subtract_more_than_the_available_minutes_in_a_pattern_hour
258
- start_date=DateTime.new(2013,1,1,1,31)
259
- result, remainder=@pattern_hour.wp_calc(start_date,-11)
260
- assert_equal DateTime.new(2013,1,1,1,0), result
261
- assert_equal -1,remainder
262
- end
263
-
264
- def test_can_subtract_exact_amount_of_available_minutes_in_pattern_hour
265
- start_date=DateTime.new(2013,1,1,1,31)
266
- result, remainder=@pattern_hour.wp_calc(start_date,-10)
267
- assert_equal DateTime.new(2013,1,1,1,1), result
268
- assert_equal 0,remainder
269
- end
270
-
271
- def test_can_subtract_1_second_less_than_available_minutes_in_pattern_hour
272
- start_date=DateTime.new(2013,1,1,1,31)
273
- result, remainder=@pattern_hour.wp_calc(start_date,-9)
274
- assert_equal DateTime.new(2013,1,1,1,2), result
275
- assert_equal 0,remainder
276
- end
277
- ######
278
- def test_can_subtract_using_next_hour_and_non_working_59_in_patterned_hour
279
- start_date=DateTime.new(2013,1,1,0,0)
280
- result, remainder=@pattern_hour.wp_calc(start_date,-9,true)
281
- assert_equal DateTime.new(2013,1,1,0,50), result
282
- assert_equal 0,remainder
283
- end
284
-
285
- def test_can_change_working_to_resting
286
- new_hour=@working_hour.wp_workpattern(0,59,0)
287
- assert_equal 0,new_hour.wp_total
288
- assert_nil new_hour.wp_first
289
- assert_nil new_hour.wp_last
290
- end
291
-
292
- def test_must_create_complex_patterns
293
- new_hour=@working_hour.wp_workpattern(0,0,0)
294
- new_hour=new_hour.wp_workpattern(8,23,0)
295
- new_hour=new_hour.wp_workpattern(12,12,1)
296
- new_hour=new_hour.wp_workpattern(58,58,0)
297
- new_hour=new_hour.wp_workpattern(6,8,1)
298
- assert_equal 44, new_hour.wp_total
299
- assert_equal 1, new_hour.wp_first
300
- assert_equal 59, new_hour.wp_last
301
- end
302
-
303
- def test_difference_between_first_and_last_minute_in_working_hour
304
- assert_equal 59, @working_hour.wp_diff(0,59)
305
- end
306
-
307
- def test_difference_between_first_and_first_minute_in_working_hour
308
- assert_equal 0, @working_hour.wp_diff(0,0)
309
- end
310
-
311
- def test_difference_between_last_and_last_minute_in_working_hour
312
- assert_equal 0, @working_hour.wp_diff(59,59)
313
- end
314
-
315
- def test_difference_between_two_minutes_in_working_hour
316
- assert_equal 13, @working_hour.wp_diff(3,16)
317
- end
318
-
319
- def test_difference_between_first_minute_and_first_minute_in_next_hour_in_working_hour
320
- assert_equal 60, @working_hour.wp_diff(0,60)
321
- end
322
-
323
- def test_difference_between_a_minute_and_last_minute_in_working_hour
324
- assert_equal 43, @working_hour.wp_diff(16,59)
325
- end
326
-
327
- def test_differences_work_in_reverse_for_working_hour
328
- assert_equal 59, @working_hour.wp_diff(59,0)
329
- assert_equal 13, @working_hour.wp_diff(16,3)
330
- assert_equal 60, @working_hour.wp_diff(60,0)
331
- assert_equal 43, @working_hour.wp_diff(59,16)
332
- end
333
-
334
- def test_difference_between_first_and_last_minute_in_resting_hour
335
- assert_equal 0, @resting_hour.wp_diff(0,59)
336
- end
337
-
338
- def test_difference_between_first_and_first_minute_in_resting_hour
339
- assert_equal 0, @resting_hour.wp_diff(0,0)
340
- end
341
-
342
- def test_difference_between_last_and_last_minute_in_resting_hour
343
- assert_equal 0, @resting_hour.wp_diff(59,59)
344
- end
345
-
346
- def test_difference_between_two_minutes_in_resting_hour
347
- assert_equal 0, @resting_hour.wp_diff(3,16)
348
- end
349
-
350
- def test_difference_between_first_minute_and_first_minute_in_next_hour_in_resting_hour
351
- assert_equal 0, @resting_hour.wp_diff(0,60)
352
- end
353
-
354
- def test_difference_between_a_minute_and_last_minute_in_resting_hour
355
- assert_equal 0, @resting_hour.wp_diff(16,59)
356
- end
357
-
358
- def test_differences_work_in_reverse_for_resting_hour
359
- assert_equal 0, @resting_hour.wp_diff(59,0)
360
- assert_equal 0, @resting_hour.wp_diff(16,3)
361
- assert_equal 0, @resting_hour.wp_diff(60,0)
362
- assert_equal 0, @resting_hour.wp_diff(59,16)
363
- end
364
-
365
- def test_difference_between_first_and_last_minute_in_pattern_hour
366
- assert_equal 38, @pattern_hour.wp_diff(0,59)
367
- end
368
-
369
- def test_difference_between_first_and_first_minute_in_pattern_hour
370
- assert_equal 0, @pattern_hour.wp_diff(0,0)
371
- end
372
-
373
- def test_difference_between_last_and_last_minute_in_pattern_hour
374
- assert_equal 0, @pattern_hour.wp_diff(59,59)
375
- end
376
-
377
- def test_difference_between_two_minutes_in_pattern_hour
378
- assert_equal 8, @pattern_hour.wp_diff(3,16)
379
- end
380
-
381
- def test_difference_between_first_minute_and_first_minute_in_next_hour_in_pattern_hour
382
- assert_equal 38, @pattern_hour.wp_diff(0,60)
383
- end
384
-
385
- def test_difference_between_a_minute_and_last_minute_in_pattern_hour
386
- assert_equal 28, @pattern_hour.wp_diff(16,59)
387
- end
388
-
389
- def test_differences_work_in_reverse_for_pattern_hour
390
- assert_equal 38, @pattern_hour.wp_diff(59,0)
391
- assert_equal 8, @pattern_hour.wp_diff(16,3)
392
- assert_equal 38, @pattern_hour.wp_diff(60,0)
393
- assert_equal 28, @pattern_hour.wp_diff(59,16)
394
- end
395
-
396
- end