@@ 14-114 (lines=101) @@ | ||
11 | * @author Kristjan Siimson <[email protected]> |
|
12 | * @package Shifter\Test |
|
13 | */ |
|
14 | class IsochronicDecrementTest extends \PHPUnit_Framework_TestCase |
|
15 | { |
|
16 | /** |
|
17 | * @var array |
|
18 | */ |
|
19 | private $fixture = array( |
|
20 | ||
21 | // Shift down by four weeks |
|
22 | array( |
|
23 | '2015-07-01', // Day of reference |
|
24 | '2015-07-01', // Starting time |
|
25 | '2015-06-03' // Expected time |
|
26 | ), |
|
27 | ||
28 | // Discard time of the day |
|
29 | array( |
|
30 | '2015-07-01', // Day of reference |
|
31 | '2015-07-01 15:12:24', // Starting time |
|
32 | '2015-06-03' // Expected time |
|
33 | ), |
|
34 | ||
35 | // Reference date in future |
|
36 | array( |
|
37 | '2015-07-02', // Day of reference |
|
38 | '2015-07-01', // Starting time |
|
39 | '2015-06-04' // Expected time |
|
40 | ), |
|
41 | ||
42 | // Reference date on the previous day |
|
43 | array( |
|
44 | '2015-06-30', // Day of reference |
|
45 | '2015-07-01', // Starting time |
|
46 | '2015-06-30' // Expected time |
|
47 | ), |
|
48 | ||
49 | // Reference date on the next day |
|
50 | array( |
|
51 | '2015-06-26 15:12:24', // Day of reference |
|
52 | '2015-06-25', // Starting time |
|
53 | '2015-05-29' // Expected time |
|
54 | ), |
|
55 | ||
56 | // February with 28 days |
|
57 | array( |
|
58 | '2015-03-28', // Day of reference |
|
59 | '2015-03-15', // Starting time |
|
60 | '2015-02-28' // Expected time |
|
61 | ), |
|
62 | ||
63 | // February with 29 days |
|
64 | array( |
|
65 | '2016-03-28', // Day of reference |
|
66 | '2016-03-15', // Starting time |
|
67 | '2016-02-29' // Expected time |
|
68 | ), |
|
69 | ||
70 | // Decrement with DST difference |
|
71 | array( |
|
72 | '2015-04-05 10:26:20', // Day of reference |
|
73 | '2015-04-01', // Starting time |
|
74 | '2015-03-08' // Expected time |
|
75 | ), |
|
76 | ||
77 | // Decrement with DST difference |
|
78 | array( |
|
79 | '2015-04-05 10:26:20', // Day of reference |
|
80 | '2015-11-12', // Starting time |
|
81 | '2015-10-18' // Expected time |
|
82 | ) |
|
83 | ); |
|
84 | ||
85 | /** |
|
86 | * @dataProvider shiftProvider |
|
87 | * @param integer $reference |
|
88 | * @param string $start |
|
89 | * @param string $expected |
|
90 | */ |
|
91 | public function testShiftDown($reference, $start, $expected) |
|
92 | { |
|
93 | $shifter = new ChronoShifter(new Isochronic($start, $reference, 28), new Specific(new Decreasing(), 1)); |
|
94 | $result = $shifter->shift($start); |
|
95 | ||
96 | $this->assertEquals( |
|
97 | $expected, |
|
98 | $result, |
|
99 | sprintf( |
|
100 | 'From %s to previous four weeks referencing %s', |
|
101 | $start, |
|
102 | $reference |
|
103 | ) |
|
104 | ); |
|
105 | } |
|
106 | ||
107 | /** |
|
108 | * @return array |
|
109 | */ |
|
110 | public function shiftProvider() |
|
111 | { |
|
112 | return $this->fixture; |
|
113 | } |
|
114 | } |
|
115 |
@@ 14-112 (lines=99) @@ | ||
11 | * @author Kristjan Siimson <[email protected]> |
|
12 | * @package Shifter\Test |
|
13 | */ |
|
14 | class IsochronicIncrementTest extends \PHPUnit_Framework_TestCase |
|
15 | { |
|
16 | /** |
|
17 | * @var array |
|
18 | */ |
|
19 | private $fixture = array( |
|
20 | ||
21 | // Shift up by four weeks |
|
22 | array( |
|
23 | '2015-06-02', // Day of reference |
|
24 | '2015-06-02', // Starting time |
|
25 | '2015-06-30' // Expected time |
|
26 | ), |
|
27 | ||
28 | // Discard time of the day |
|
29 | array( |
|
30 | '2015-06-02', // Day of reference |
|
31 | '2015-06-02 15:12:24', // Starting time |
|
32 | '2015-06-30' // Expected time |
|
33 | ), |
|
34 | ||
35 | // Reference date in past |
|
36 | array( |
|
37 | '2015-06-10 15:12:24', // Day of reference |
|
38 | '2015-06-29', // Starting time |
|
39 | '2015-07-08' // Expected time |
|
40 | ), |
|
41 | ||
42 | // Reference date in future |
|
43 | array( |
|
44 | '2015-07-01', // Day of reference |
|
45 | '2015-06-15', // Starting time |
|
46 | '2015-07-01' // Expected time |
|
47 | ), |
|
48 | ||
49 | // Reference date on the next day |
|
50 | array( |
|
51 | '2015-07-02', // Day of reference |
|
52 | '2015-06-15', // Starting time |
|
53 | '2015-07-02' // Expected time |
|
54 | ), |
|
55 | ||
56 | // February with 28 days |
|
57 | array( |
|
58 | '2015-02-01', // Day of reference |
|
59 | '2015-02-15', // Starting time |
|
60 | '2015-03-01' // Expected time |
|
61 | ), |
|
62 | ||
63 | // February with 29 days |
|
64 | array( |
|
65 | '2016-02-01', // Day of reference |
|
66 | '2016-02-15', // Starting time |
|
67 | '2016-02-29' // Expected time |
|
68 | ), |
|
69 | // Increment with DST difference |
|
70 | array( |
|
71 | '2015-04-05 10:26:20', // Day of reference |
|
72 | '2015-03-04', // Starting time |
|
73 | '2015-03-08' // Expected time |
|
74 | ), |
|
75 | // Increment with DST difference |
|
76 | array( |
|
77 | '2015-04-05 10:26:20', // Day of reference |
|
78 | '2015-10-15', // Starting time |
|
79 | '2015-10-18' // Expected time |
|
80 | ) |
|
81 | ); |
|
82 | ||
83 | /** |
|
84 | * @dataProvider shiftProvider |
|
85 | * @param integer $reference |
|
86 | * @param string $start |
|
87 | * @param string $expected |
|
88 | */ |
|
89 | public function testShift($reference, $start, $expected) |
|
90 | { |
|
91 | $shifter = new ChronoShifter(new Isochronic($start, $reference, 28), new Specific(new Increasing(), 1)); |
|
92 | $result = $shifter->shift($start); |
|
93 | ||
94 | $this->assertEquals( |
|
95 | $expected, |
|
96 | $result, |
|
97 | sprintf( |
|
98 | 'From %s to next four weeks referencing %s', |
|
99 | $start, |
|
100 | $reference |
|
101 | ) |
|
102 | ); |
|
103 | } |
|
104 | ||
105 | /** |
|
106 | * @return array |
|
107 | */ |
|
108 | public function shiftProvider() |
|
109 | { |
|
110 | return $this->fixture; |
|
111 | } |
|
112 | } |
|
113 |