@@ -1304,10 +1304,25 @@ def test_get_year_end(self):
1304
1304
self .assertEqual (makeFY5253NearestEndMonth (startingMonth = 8 , weekday = WeekDay .SUN ).get_year_end (datetime (2013 ,1 ,1 )), datetime (2013 ,9 ,1 ))
1305
1305
self .assertEqual (makeFY5253NearestEndMonth (startingMonth = 8 , weekday = WeekDay .FRI ).get_year_end (datetime (2013 ,1 ,1 )), datetime (2013 ,8 ,30 ))
1306
1306
1307
+ offset_n = FY5253 (weekday = WeekDay .TUE , startingMonth = 12 ,
1308
+ variation = "nearest" )
1309
+ self .assertEqual (offset_n .get_year_end (datetime (2012 ,1 ,1 )), datetime (2013 ,1 ,1 ))
1310
+ self .assertEqual (offset_n .get_year_end (datetime (2012 ,1 ,10 )), datetime (2013 ,1 ,1 ))
1311
+
1312
+ self .assertEqual (offset_n .get_year_end (datetime (2013 ,1 ,1 )), datetime (2013 ,12 ,31 ))
1313
+ self .assertEqual (offset_n .get_year_end (datetime (2013 ,1 ,2 )), datetime (2013 ,12 ,31 ))
1314
+ self .assertEqual (offset_n .get_year_end (datetime (2013 ,1 ,3 )), datetime (2013 ,12 ,31 ))
1315
+ self .assertEqual (offset_n .get_year_end (datetime (2013 ,1 ,10 )), datetime (2013 ,12 ,31 ))
1316
+
1317
+ JNJ = FY5253 (n = 1 , startingMonth = 12 , weekday = 6 , variation = "nearest" )
1318
+ self .assertEqual (JNJ .get_year_end (datetime (2006 , 1 , 1 )), datetime (2006 , 12 , 31 ))
1319
+
1307
1320
def test_onOffset (self ):
1308
1321
offset_lom_aug_sat = makeFY5253NearestEndMonth (1 , startingMonth = 8 , weekday = WeekDay .SAT )
1309
1322
offset_lom_aug_thu = makeFY5253NearestEndMonth (1 , startingMonth = 8 , weekday = WeekDay .THU )
1310
-
1323
+ offset_n = FY5253 (weekday = WeekDay .TUE , startingMonth = 12 ,
1324
+ variation = "nearest" )
1325
+
1311
1326
tests = [
1312
1327
# From Uncyclopedia (see: http://en.wikipedia.org/wiki/4%E2%80%934%E2%80%935_calendar#Saturday_nearest_the_end_of_month)
1313
1328
# 2006-09-02 2006 September 2
@@ -1354,21 +1369,39 @@ def test_onOffset(self):
1354
1369
#From Micron, see: http://google.brand.edgar-online.com/?sym=MU&formtypeID=7
1355
1370
(offset_lom_aug_thu , datetime (2012 , 8 , 30 ), True ),
1356
1371
(offset_lom_aug_thu , datetime (2011 , 9 , 1 ), True ),
1357
-
1372
+
1373
+ (offset_n , datetime (2012 , 12 , 31 ), False ),
1374
+ (offset_n , datetime (2013 , 1 , 1 ), True ),
1375
+ (offset_n , datetime (2013 , 1 , 2 ), False ),
1358
1376
]
1359
1377
1360
1378
for offset , date , expected in tests :
1361
1379
assertOnOffset (offset , date , expected )
1362
1380
1363
1381
def test_apply (self ):
1364
- date_seq_nem_8_sat = [datetime (2006 , 9 , 2 ), datetime (2007 , 9 , 1 ), datetime (2008 , 8 , 30 ), datetime (2009 , 8 , 29 ), datetime (2010 , 8 , 28 ), datetime (2011 , 9 , 3 )]
1382
+ date_seq_nem_8_sat = [datetime (2006 , 9 , 2 ), datetime (2007 , 9 , 1 ),
1383
+ datetime (2008 , 8 , 30 ), datetime (2009 , 8 , 29 ),
1384
+ datetime (2010 , 8 , 28 ), datetime (2011 , 9 , 3 )]
1385
+
1386
+ JNJ = [datetime (2005 , 1 , 2 ), datetime (2006 , 1 , 1 ),
1387
+ datetime (2006 , 12 , 31 ), datetime (2007 , 12 , 30 ),
1388
+ datetime (2008 , 12 , 28 ), datetime (2010 , 1 , 3 ),
1389
+ datetime (2011 , 1 , 2 ), datetime (2012 , 1 , 1 ),
1390
+ datetime (2012 , 12 , 30 )]
1391
+
1392
+ DEC_SAT = FY5253 (n = - 1 , startingMonth = 12 , weekday = 5 , variation = "nearest" )
1365
1393
1366
1394
tests = [
1367
- (makeFY5253NearestEndMonth (startingMonth = 8 , weekday = WeekDay .SAT ), date_seq_nem_8_sat ),
1368
- (makeFY5253NearestEndMonth (n = 1 , startingMonth = 8 , weekday = WeekDay .SAT ), date_seq_nem_8_sat ),
1369
- (makeFY5253NearestEndMonth (startingMonth = 8 , weekday = WeekDay .SAT ), [datetime (2006 , 9 , 1 )] + date_seq_nem_8_sat ),
1370
- (makeFY5253NearestEndMonth (n = 1 , startingMonth = 8 , weekday = WeekDay .SAT ), [datetime (2006 , 9 , 3 )] + date_seq_nem_8_sat [1 :]),
1371
- (makeFY5253NearestEndMonth (n = - 1 , startingMonth = 8 , weekday = WeekDay .SAT ), list (reversed (date_seq_nem_8_sat ))),
1395
+ (makeFY5253NearestEndMonth (startingMonth = 8 , weekday = WeekDay .SAT ), date_seq_nem_8_sat ),
1396
+ (makeFY5253NearestEndMonth (n = 1 , startingMonth = 8 , weekday = WeekDay .SAT ), date_seq_nem_8_sat ),
1397
+ (makeFY5253NearestEndMonth (startingMonth = 8 , weekday = WeekDay .SAT ), [datetime (2006 , 9 , 1 )] + date_seq_nem_8_sat ),
1398
+ (makeFY5253NearestEndMonth (n = 1 , startingMonth = 8 , weekday = WeekDay .SAT ), [datetime (2006 , 9 , 3 )] + date_seq_nem_8_sat [1 :]),
1399
+ (makeFY5253NearestEndMonth (n = - 1 , startingMonth = 8 , weekday = WeekDay .SAT ), list (reversed (date_seq_nem_8_sat ))),
1400
+ (makeFY5253NearestEndMonth (n = 1 , startingMonth = 12 , weekday = WeekDay .SUN ), JNJ ),
1401
+ (makeFY5253NearestEndMonth (n = - 1 , startingMonth = 12 , weekday = WeekDay .SUN ), list (reversed (JNJ ))),
1402
+ (makeFY5253NearestEndMonth (n = 1 , startingMonth = 12 , weekday = WeekDay .SUN ), [datetime (2005 ,1 ,2 ), datetime (2006 , 1 , 1 )]),
1403
+ (makeFY5253NearestEndMonth (n = 1 , startingMonth = 12 , weekday = WeekDay .SUN ), [datetime (2006 ,1 ,2 ), datetime (2006 , 12 , 31 )]),
1404
+ (DEC_SAT , [datetime (2013 ,1 ,15 ), datetime (2012 ,12 ,29 )])
1372
1405
]
1373
1406
for test in tests :
1374
1407
offset , data = test
@@ -1512,16 +1545,22 @@ def test_year_has_extra_week(self):
1512
1545
self .assertTrue (makeFY5253LastOfMonthQuarter (1 , startingMonth = 12 , weekday = WeekDay .SAT , qtr_with_extra_week = 1 ).year_has_extra_week (datetime (1994 , 4 , 2 )))
1513
1546
1514
1547
def test_get_weeks (self ):
1515
- self .assertEqual (makeFY5253LastOfMonthQuarter (1 , startingMonth = 12 , weekday = WeekDay .SAT , qtr_with_extra_week = 1 ).get_weeks (datetime (2011 , 4 , 2 )), [14 , 13 , 13 , 13 ])
1516
- self .assertEqual (makeFY5253LastOfMonthQuarter (1 , startingMonth = 12 , weekday = WeekDay .SAT , qtr_with_extra_week = 4 ).get_weeks (datetime (2011 , 4 , 2 )), [13 , 13 , 13 , 14 ])
1517
- self .assertEqual (makeFY5253LastOfMonthQuarter (1 , startingMonth = 12 , weekday = WeekDay .SAT , qtr_with_extra_week = 1 ).get_weeks (datetime (2010 , 12 , 25 )), [13 , 13 , 13 , 13 ])
1548
+ sat_dec_1 = makeFY5253LastOfMonthQuarter (1 , startingMonth = 12 , weekday = WeekDay .SAT , qtr_with_extra_week = 1 )
1549
+ sat_dec_4 = makeFY5253LastOfMonthQuarter (1 , startingMonth = 12 , weekday = WeekDay .SAT , qtr_with_extra_week = 4 )
1550
+
1551
+ self .assertEqual (sat_dec_1 .get_weeks (datetime (2011 , 4 , 2 )), [14 , 13 , 13 , 13 ])
1552
+ self .assertEqual (sat_dec_4 .get_weeks (datetime (2011 , 4 , 2 )), [13 , 13 , 13 , 14 ])
1553
+ self .assertEqual (sat_dec_1 .get_weeks (datetime (2010 , 12 , 25 )), [13 , 13 , 13 , 13 ])
1518
1554
1519
1555
class TestFY5253NearestEndMonthQuarter (TestBase ):
1520
1556
1521
1557
def test_onOffset (self ):
1522
1558
1523
1559
offset_nem_sat_aug_4 = makeFY5253NearestEndMonthQuarter (1 , startingMonth = 8 , weekday = WeekDay .SAT , qtr_with_extra_week = 4 )
1524
1560
offset_nem_thu_aug_4 = makeFY5253NearestEndMonthQuarter (1 , startingMonth = 8 , weekday = WeekDay .THU , qtr_with_extra_week = 4 )
1561
+ offset_n = FY5253 (weekday = WeekDay .TUE , startingMonth = 12 ,
1562
+ variation = "nearest" , qtr_with_extra_week = 4 )
1563
+
1525
1564
tests = [
1526
1565
#From Uncyclopedia
1527
1566
(offset_nem_sat_aug_4 , datetime (2006 , 9 , 2 ), True ),
@@ -1563,6 +1602,9 @@ def test_onOffset(self):
1563
1602
(offset_nem_thu_aug_4 , datetime (2007 , 3 , 1 ), True ),
1564
1603
(offset_nem_thu_aug_4 , datetime (1994 , 3 , 3 ), True ),
1565
1604
1605
+ (offset_n , datetime (2012 , 12 , 31 ), False ),
1606
+ (offset_n , datetime (2013 , 1 , 1 ), True ),
1607
+ (offset_n , datetime (2013 , 1 , 2 ), False )
1566
1608
]
1567
1609
1568
1610
for offset , date , expected in tests :
@@ -1580,7 +1622,12 @@ def test_offset(self):
1580
1622
1581
1623
assertEq (offset , datetime (2012 , 5 , 31 ), datetime (2012 , 8 , 30 ))
1582
1624
assertEq (offset , datetime (2012 , 5 , 30 ), datetime (2012 , 5 , 31 ))
1583
-
1625
+
1626
+ offset2 = FY5253Quarter (weekday = 5 , startingMonth = 12 ,
1627
+ variation = "last" , qtr_with_extra_week = 4 )
1628
+
1629
+ assertEq (offset2 , datetime (2013 ,1 ,15 ), datetime (2013 , 3 , 30 ))
1630
+
1584
1631
class TestQuarterBegin (TestBase ):
1585
1632
1586
1633
def test_repr (self ):
0 commit comments