StartEndOfTest::testStartOfDecadeFromFirstDay()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 5
rs 9.4286
cc 1
eloc 3
nc 1
nop 0
1
<?php
2
3
namespace HMLB\Date\Tests\Date;
4
5
/*
6
 * This file is part of the Date package.
7
 *
8
 * (c) Hugues Maignol <[email protected]>
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
use HMLB\Date\Date;
15
use HMLB\Date\Tests\AbstractTestCase;
16
17
class StartEndOfTest extends AbstractTestCase
18
{
19
    public function testStartOfDay()
20
    {
21
        $dt = Date::now()->startOfDay();
22
        $this->assertTrue($dt instanceof Date);
23
        $this->assertDate($dt, $dt->getYear(), $dt->getMonth(), $dt->getDay(), 0, 0, 0);
24
    }
25
26
    public function testEndOfDay()
27
    {
28
        $dt = Date::now()->endOfDay();
29
        $this->assertTrue($dt instanceof Date);
30
        $this->assertDate($dt, $dt->getYear(), $dt->getMonth(), $dt->getDay(), 23, 59, 59);
31
    }
32
33
    public function testStartOfMonthIsFluid()
34
    {
35
        $dt = Date::now()->startOfMonth();
36
        $this->assertTrue($dt instanceof Date);
37
    }
38
39
    public function testStartOfMonthFromNow()
40
    {
41
        $dt = Date::now()->startOfMonth();
42
        $this->assertDate($dt, $dt->getYear(), $dt->getMonth(), 1, 0, 0, 0);
43
    }
44
45
    public function testStartOfMonthFromLastDay()
46
    {
47
        $dt = Date::create(2000, 1, 31, 2, 3, 4)->startOfMonth();
48
        $this->assertDate($dt, 2000, 1, 1, 0, 0, 0);
49
    }
50
51
    public function testStartOfYearIsFluid()
52
    {
53
        $dt = Date::now();
54
        $this->assertTrue($dt->startOfYear() instanceof Date);
55
    }
56
57
    public function testStartOfYearFromNow()
58
    {
59
        $dt = Date::now()->startOfYear();
60
        $this->assertDate($dt, $dt->getYear(), 1, 1, 0, 0, 0);
61
    }
62
63
    public function testStartOfYearFromFirstDay()
64
    {
65
        $dt = Date::create(2000, 1, 1, 1, 1, 1)->startOfYear();
66
        $this->assertDate($dt, 2000, 1, 1, 0, 0, 0);
67
    }
68
69
    public function testStartOfYearFromLastDay()
70
    {
71
        $dt = Date::create(2000, 12, 31, 23, 59, 59)->startOfYear();
72
        $this->assertDate($dt, 2000, 1, 1, 0, 0, 0);
73
    }
74
75
    public function testEndOfMonthIsFluid()
76
    {
77
        $dt = Date::now();
78
        $this->assertTrue($dt->endOfMonth() instanceof Date);
79
    }
80
81
    public function testEndOfMonth()
82
    {
83
        $dt = Date::create(2000, 1, 1, 2, 3, 4)->endOfMonth();
84
        $this->assertDate($dt, 2000, 1, 31, 23, 59, 59);
85
    }
86
87
    public function testEndOfMonthFromLastDay()
88
    {
89
        $dt = Date::create(2000, 1, 31, 2, 3, 4)->endOfMonth();
90
        $this->assertDate($dt, 2000, 1, 31, 23, 59, 59);
91
    }
92
93
    public function testEndOfYearIsFluid()
94
    {
95
        $dt = Date::now();
96
        $this->assertTrue($dt->endOfYear() instanceof Date);
97
    }
98
99
    public function testEndOfYearFromNow()
100
    {
101
        $dt = Date::now()->endOfYear();
102
        $this->assertDate($dt, $dt->getYear(), 12, 31, 23, 59, 59);
103
    }
104
105
    public function testEndOfYearFromFirstDay()
106
    {
107
        $dt = Date::create(2000, 1, 1, 1, 1, 1)->endOfYear();
108
        $this->assertDate($dt, 2000, 12, 31, 23, 59, 59);
109
    }
110
111
    public function testEndOfYearFromLastDay()
112
    {
113
        $dt = Date::create(2000, 12, 31, 23, 59, 59)->endOfYear();
114
        $this->assertDate($dt, 2000, 12, 31, 23, 59, 59);
115
    }
116
117
    public function testStartOfDecadeIsFluid()
118
    {
119
        $dt = Date::now();
120
        $this->assertTrue($dt->startOfDecade() instanceof Date);
121
    }
122
123
    public function testStartOfDecadeFromNow()
124
    {
125
        $dt = Date::now()->startOfDecade();
126
        $this->assertDate($dt, $dt->getYear() - $dt->getYear() % 10, 1, 1, 0, 0, 0);
127
    }
128
129
    public function testStartOfDecadeFromFirstDay()
130
    {
131
        $dt = Date::create(2000, 1, 1, 1, 1, 1)->startOfDecade();
132
        $this->assertDate($dt, 2000, 1, 1, 0, 0, 0);
133
    }
134
135
    public function testStartOfDecadeFromLastDay()
136
    {
137
        $dt = Date::create(2009, 12, 31, 23, 59, 59)->startOfDecade();
138
        $this->assertDate($dt, 2000, 1, 1, 0, 0, 0);
139
    }
140
141
    public function testEndOfDecadeIsFluid()
142
    {
143
        $dt = Date::now();
144
        $this->assertTrue($dt->endOfDecade() instanceof Date);
145
    }
146
147
    public function testEndOfDecadeFromNow()
148
    {
149
        $dt = Date::now()->endOfDecade();
150
        $this->assertDate($dt, $dt->getYear() - $dt->getYear() % 10 + 9, 12, 31, 23, 59, 59);
151
    }
152
153
    public function testEndOfDecadeFromFirstDay()
154
    {
155
        $dt = Date::create(2000, 1, 1, 1, 1, 1)->endOfDecade();
156
        $this->assertDate($dt, 2009, 12, 31, 23, 59, 59);
157
    }
158
159
    public function testEndOfDecadeFromLastDay()
160
    {
161
        $dt = Date::create(2009, 12, 31, 23, 59, 59)->endOfDecade();
162
        $this->assertDate($dt, 2009, 12, 31, 23, 59, 59);
163
    }
164
165
    public function testStartOfCenturyIsFluid()
166
    {
167
        $dt = Date::now();
168
        $this->assertTrue($dt->startOfCentury() instanceof Date);
169
    }
170
171
    public function testStartOfCenturyFromNow()
172
    {
173
        $now = Date::now();
174
        $dt = Date::now()->startOfCentury();
175
        $this->assertDate($dt, $now->getYear() - $now->getYear() % 100, 1, 1, 0, 0, 0);
176
    }
177
178
    public function testStartOfCenturyFromFirstDay()
179
    {
180
        $dt = Date::create(2000, 1, 1, 1, 1, 1)->startOfCentury();
181
        $this->assertDate($dt, 2000, 1, 1, 0, 0, 0);
182
    }
183
184
    public function testStartOfCenturyFromLastDay()
185
    {
186
        $dt = Date::create(2099, 12, 31, 23, 59, 59)->startOfCentury();
187
        $this->assertDate($dt, 2000, 1, 1, 0, 0, 0);
188
    }
189
190
    public function testEndOfCenturyIsFluid()
191
    {
192
        $dt = Date::now();
193
        $this->assertTrue($dt->endOfCentury() instanceof Date);
194
    }
195
196
    public function testEndOfCenturyFromNow()
197
    {
198
        $now = Date::now();
199
        $dt = Date::now()->endOfCentury();
200
        $this->assertDate($dt, $now->getYear() - $now->getYear() % 100 + 99, 12, 31, 23, 59, 59);
201
    }
202
203
    public function testEndOfCenturyFromFirstDay()
204
    {
205
        $dt = Date::create(2001, 1, 1, 1, 1, 1)->endOfCentury();
206
        $this->assertDate($dt, 2099, 12, 31, 23, 59, 59);
207
    }
208
209
    public function testEndOfCenturyFromLastDay()
210
    {
211
        $dt = Date::create(2099, 12, 31, 23, 59, 59)->endOfCentury();
212
        $this->assertDate($dt, 2099, 12, 31, 23, 59, 59);
213
    }
214
215
    public function testAverageIsFluid()
216
    {
217
        $dt = Date::now()->average();
218
        $this->assertTrue($dt instanceof Date);
219
    }
220
221
    public function testAverageFromSame()
222
    {
223
        $dt1 = Date::create(2000, 1, 31, 2, 3, 4);
224
        $dt2 = Date::create(2000, 1, 31, 2, 3, 4)->average($dt1);
225
        $this->assertDate($dt2, 2000, 1, 31, 2, 3, 4);
226
    }
227
228
    public function testAverageFromGreater()
229
    {
230
        $dt1 = Date::create(2000, 1, 1, 1, 1, 1);
231
        $dt2 = Date::create(2009, 12, 31, 23, 59, 59)->average($dt1);
232
        $this->assertDate($dt2, 2004, 12, 31, 12, 30, 30);
233
    }
234
235
    public function testAverageFromLower()
236
    {
237
        $dt1 = Date::create(2009, 12, 31, 23, 59, 59);
238
        $dt2 = Date::create(2000, 1, 1, 1, 1, 1)->average($dt1);
239
        $this->assertDate($dt2, 2004, 12, 31, 12, 30, 30);
240
    }
241
}
242