Skip to content

Commit 2956164

Browse files
committed
[feat] add test for new methods
1 parent 36bbd4d commit 2956164

File tree

1 file changed

+142
-1
lines changed

1 file changed

+142
-1
lines changed

tests/JalalianTest.php

Lines changed: 142 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ public function testGetWeekOfMonth()
160160
$jDate = new Jalalian(1401, 3, 7);
161161
$this->assertEquals($jDate->getWeekOfMonth(), 2);
162162
}
163-
163+
164164
public function testGetFirstDayOfWeek()
165165
{
166166
$jDate = new Jalalian(1401, 1, 23);
@@ -229,4 +229,145 @@ public function testGetLastMonth()
229229
$jDate = new Jalalian(1401, 6, 8);
230230
$this->assertEquals($jDate->getLastMonth()->format('Y-m-d'), '1401-05-08');
231231
}
232+
233+
public function testGetFirstDayOfQuarter()
234+
{
235+
$jDate = new Jalalian(1402, 01, 25);
236+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-01-01');
237+
238+
$jDate = new Jalalian(1402, 02, 25);
239+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-01-01');
240+
241+
$jDate = new Jalalian(1402, 03, 25);
242+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-01-01');
243+
244+
$jDate = new Jalalian(1402, 04, 25);
245+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-04-01');
246+
247+
$jDate = new Jalalian(1402, 05, 25);
248+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-04-01');
249+
250+
$jDate = new Jalalian(1402, 06, 25);
251+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-04-01');
252+
253+
$jDate = new Jalalian(1402, 07, 25);
254+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-07-01');
255+
256+
$jDate = new Jalalian(1402, 08, 25);
257+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-07-01');
258+
259+
$jDate = new Jalalian(1402, 09, 25);
260+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-07-01');
261+
262+
$jDate = new Jalalian(1402, 10, 25);
263+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-10-01');
264+
265+
$jDate = new Jalalian(1402, 11, 19);
266+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-10-01');
267+
268+
$jDate = new Jalalian(1402, 12, 25);
269+
$this->assertEquals($jDate->getFirstDayOfQuarter()->format('Y-m-d'), '1402-10-01');
270+
271+
}
272+
273+
public function testGetEndDayOfWeek()
274+
{
275+
/*
276+
* --------------------------------
277+
* Day 1402 (March 2024)
278+
* --------------------------------
279+
* Sat Sun Mon Tue Wed Thu Fri
280+
* --------------------------------
281+
* 1
282+
* 2 3 4 5 6 7 8
283+
* 9 10 11 12 13 14 15
284+
* 16 17 18 19 20 21 22
285+
* 23 24 25 26 27 28 29
286+
* 30
287+
* -------------------------------
288+
*/
289+
290+
$jDate = new Jalalian(1402, 10, 25);
291+
$this->assertEquals($jDate->getEndDayOfWeek()->format('Y-m-d'), '1402-10-23');
292+
293+
$jDate = new Jalalian(1402, 10, 29);
294+
$this->assertEquals($jDate->getEndDayOfWeek()->format('Y-m-d'), '1402-10-23');
295+
296+
$jDate = new Jalalian(1402, 10, 23);
297+
$this->assertEquals($jDate->getEndDayOfWeek()->format('Y-m-d'), '1402-10-23');
298+
299+
$jDate = new Jalalian(1402, 12, 29);
300+
$this->assertEquals($jDate->getEndDayOfWeek()->format('Y-m-d'), '1403-01-03');
301+
302+
}
303+
304+
public function testGetEndDayOfMonth()
305+
{
306+
/*
307+
* --------------------------------
308+
* Day 1402 (March 2024)
309+
* --------------------------------
310+
* Sat Sun Mon Tue Wed Thu Fri
311+
* --------------------------------
312+
* 1
313+
* 2 3 4 5 6 7 8
314+
* 9 10 11 12 13 14 15
315+
* 16 17 18 19 20 21 22
316+
* 23 24 25 26 27 28 29
317+
* 30
318+
* -------------------------------
319+
*/
320+
321+
$jDate = new Jalalian(1402, 10, 25);
322+
$this->assertEquals($jDate->getEndDayOfMonth()->format('Y-m-d'), '1402-10-30');
323+
324+
$jDate = new Jalalian(1402, 04, 12);
325+
$this->assertEquals($jDate->getEndDayOfMonth()->format('Y-m-d'), '1402-04-31');
326+
327+
$jDate = new Jalalian(1402, 12, 25);
328+
$this->assertEquals($jDate->getEndDayOfMonth()->format('Y-m-d'), '1402-12-29');
329+
}
330+
331+
public function testGetEndDayOfYear()
332+
{
333+
$jDate = new Jalalian(1402, 10, 25);
334+
$this->assertEquals($jDate->getEndDayOfYear()->format('Y-m-d'), '1402-12-29');
335+
336+
// LeapYear
337+
$jDate = new Jalalian(1403, 10, 25);
338+
$this->assertEquals($jDate->getEndDayOfYear()->format('Y-m-d'), '1403-12-30');
339+
}
340+
341+
public function testGetEndDayOfQuarter()
342+
{
343+
$jDate = new Jalalian(1402, 10, 25);
344+
$this->assertEquals($jDate->getEndDayOfQuarter()->format('Y-m-d'), '1402-12-29');
345+
346+
$jDate = new Jalalian(1402, 02, 25);
347+
$this->assertEquals($jDate->getEndDayOfQuarter()->format('Y-m-d'), '1402-03-31');
348+
349+
350+
$jDate = new Jalalian(1402, 06, 01);
351+
$this->assertEquals($jDate->getEndDayOfQuarter()->format('Y-m-d'), '1402-06-31');
352+
353+
354+
$jDate = new Jalalian(1402, 09, 01);
355+
$this->assertEquals($jDate->getEndDayOfQuarter()->format('Y-m-d'), '1402-09-31');
356+
}
357+
358+
public function testGetQuarter()
359+
{
360+
$jDate = new Jalalian(1402, 10, 25);
361+
$this->assertEquals($jDate->getQuarter(), 4);
362+
363+
$jDate = new Jalalian(1402, 01, 01);
364+
$this->assertEquals($jDate->getQuarter(), 1);
365+
366+
367+
$jDate = new Jalalian(1402, 05, 24);
368+
$this->assertEquals($jDate->getQuarter(), 2);
369+
370+
$jDate = new Jalalian(1402, 07, 23);
371+
$this->assertEquals($jDate->getQuarter(), 3);
372+
}
232373
}

0 commit comments

Comments
 (0)