{G_Tc@sddlZddlZddlmZddlZddlZdZdZdejfdYZ dejfdYZ d ejfd YZ d e fd YZ d e fdYZ dejfdYZdejfdYZdZedkrendS(iN(t test_supports" 2004 January February March Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 1 1 2 3 4 5 6 7 5 6 7 8 9 10 11 2 3 4 5 6 7 8 8 9 10 11 12 13 14 12 13 14 15 16 17 18 9 10 11 12 13 14 15 15 16 17 18 19 20 21 19 20 21 22 23 24 25 16 17 18 19 20 21 22 22 23 24 25 26 27 28 26 27 28 29 30 31 23 24 25 26 27 28 29 29 30 31 April May June Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 1 2 1 2 3 4 5 6 5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13 12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20 19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27 26 27 28 29 30 24 25 26 27 28 29 30 28 29 30 31 July August September Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 1 1 2 3 4 5 5 6 7 8 9 10 11 2 3 4 5 6 7 8 6 7 8 9 10 11 12 12 13 14 15 16 17 18 9 10 11 12 13 14 15 13 14 15 16 17 18 19 19 20 21 22 23 24 25 16 17 18 19 20 21 22 20 21 22 23 24 25 26 26 27 28 29 30 31 23 24 25 26 27 28 29 27 28 29 30 30 31 October November December Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 1 2 3 4 5 6 7 1 2 3 4 5 4 5 6 7 8 9 10 8 9 10 11 12 13 14 6 7 8 9 10 11 12 11 12 13 14 15 16 17 15 16 17 18 19 20 21 13 14 15 16 17 18 19 18 19 20 21 22 23 24 22 23 24 25 26 27 28 20 21 22 23 24 25 26 25 26 27 28 29 30 31 29 30 27 28 29 30 31 s;; Calendar for 2004
2004
January
MonTueWedThuFriSatSun
   1234
567891011
12131415161718
19202122232425
262728293031 
February
MonTueWedThuFriSatSun
      1
2345678
9101112131415
16171819202122
23242526272829
March
MonTueWedThuFriSatSun
1234567
891011121314
15161718192021
22232425262728
293031    
April
MonTueWedThuFriSatSun
   1234
567891011
12131415161718
19202122232425
2627282930  
May
MonTueWedThuFriSatSun
     12
3456789
10111213141516
17181920212223
24252627282930
31      
June
MonTueWedThuFriSatSun
 123456
78910111213
14151617181920
21222324252627
282930    
July
MonTueWedThuFriSatSun
   1234
567891011
12131415161718
19202122232425
262728293031 
August
MonTueWedThuFriSatSun
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
September
MonTueWedThuFriSatSun
  12345
6789101112
13141516171819
20212223242526
27282930   
October
MonTueWedThuFriSatSun
    123
45678910
11121314151617
18192021222324
25262728293031
November
MonTueWedThuFriSatSun
1234567
891011121314
15161718192021
22232425262728
2930     
December
MonTueWedThuFriSatSun
  12345
6789101112
13141516171819
20212223242526
2728293031  
tOutputTestCasecBs,eZdZdZdZdZRS(cCsSd}g}x=|jtD],}|rt|| r|j|qqW|S(NcSs|j o|j S(N(tisspacetisdigit(tc((s./usr/local/lib/python2.7/test/test_calendar.pytneitherspacenordigits(t splitlinestFalsetfiltertappend(tselftsRtlinestline((s./usr/local/lib/python2.7/test/test_calendar.pytnormalize_calendars  cCs/|j|jtjd|jtdS(Ni(t assertEqualRtcalendartresult_2004_text(R ((s./usr/local/lib/python2.7/test/test_calendar.pyt test_outputscCs/|jtjjdjtjdS(Ni(RRt TextCalendart formatyeartstripR(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttest_output_textcalendarscCs/|jtjjdjtjdS(Ni(RRt HTMLCalendartformatyearpageRtresult_2004_html(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttest_output_htmlcalendars(t__name__t __module__RRRR(((s./usr/local/lib/python2.7/test/test_calendar.pyRs  tCalendarTestCasecBsGeZdZdZdZdZdZdZdZRS(cCsh|jtjdd|jtjdd|jtjdd|jtjdddS(Niiiiii(RRtisleap(R ((s./usr/local/lib/python2.7/test/test_calendar.pyt test_isleapscCs|jttjd|jttjd|jttjdtj}tjtj|jtjtjtjtj|jtjtjtj|dS(Ntflabberii(t assertRaisest ValueErrorRtsetfirstweekdayt firstweekdaytSUNDAYRtMONDAY(R torig((s./usr/local/lib/python2.7/test/test_calendar.pyttest_setfirstweekdays cCsb|jttjjd|jttjjd|jtgtjD] }|^qEddS(Nii i(R!t IndexErrorRtday_abbrt __getitem__tday_nameRtlen(R td((s./usr/local/lib/python2.7/test/test_calendar.pyttest_enumerateweekdaysscCsxdD]}tt|}|jt|d|jt|d|jtt|d|j|dddtt|qWdS(NR,R*ii(sday_namesday_abbr(tgetattrRRR-tsettlisttreversed(R tattrtvalue((s./usr/local/lib/python2.7/test/test_calendar.pyt test_dayss  cCsxdD]}tt|}|jt|d|jt|d|j|dd|jtt|d|j|dddtt|qWdS(Nt month_namet month_abbri iti(R7R8(R0RRR-R1R2R3(R R4R5((s./usr/local/lib/python2.7/test/test_calendar.pyt test_monthss cCs@tjjddd}y=tjdd}|jdd}|jddd}Wn#tjk r}tjdnX|j d|j d|j t |d|j t |dtj dd}|jd}|jdd}|j d|j dtjjddd}|j ||dS(Nii tlocaleR9is$cannot set the system default localesutf-8(RRtformatmonthnametLocaleTextCalendart formatweekdayR;tErrortunittesttSkipTesttencodeRR-tassertGreaterEqualtLocaleHTMLCalendar(R t old_octobertcalt local_weekdayt local_montht new_october((s./usr/local/lib/python2.7/test/test_calendar.pyttest_localecalendarss$    cCs#ttjjtjddS(Ni (R2RtCalendartitermonthdatestdatetimetMAXYEAR(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttest_itermonthdatess( RRRR(R/R6R:RJRO(((s./usr/local/lib/python2.7/test/test_calendar.pyRs  tMonthCalendarTestCasecBs#eZdZdZdZRS(cCs#tj|_tj|jdS(N(RR$toldfirstweekdayR#(R ((s./usr/local/lib/python2.7/test/test_calendar.pytsetUpscCstj|jdS(N(RR#RQ(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttearDown!scCswtj||}|jt|t|xBtt|D].}|j||td||DqAWdS(Ncss|]}|dkVqdS(iN((t.0tday((s./usr/local/lib/python2.7/test/test_calendar.pys (s(Rt monthcalendarRR-txrangetsum(R tyeartmonthtweeksRFti((s./usr/local/lib/python2.7/test/test_calendar.pyt check_weeks$s(RRRRRSR](((s./usr/local/lib/python2.7/test/test_calendar.pyRPs  tMondayTestCasecBs,eZejZdZdZdZRS(cCsv|jddd |jddd |jddd |jddd|jd dd|jd dddS(Niiiiiiiiii(iiii(iiiii(iiiii(iiiii(iiiii(iiiii(R](R ((s./usr/local/lib/python2.7/test/test_calendar.pyt test_february.s c Csc|jddd |jddd |jddd|jd dd|jd dddS(Niiiiiiiiiii(iiiii(iiiii(iiiiii(iiiii(iiiii(R](R ((s./usr/local/lib/python2.7/test/test_calendar.pyt test_aprilAs c Csv|jddd|jddd|jddd|jd dd|jd dd|jd dddS(Nii iiiiiiiiiii(iiiii(iiiii(iiiiii(iiiii(iiiii(iiiiii(R](R ((s./usr/local/lib/python2.7/test/test_calendar.pyt test_decemberQs (RRRR&R$R_R`Ra(((s./usr/local/lib/python2.7/test/test_calendar.pyR^+s   tSundayTestCasecBs,eZejZdZdZdZRS(cCsv|jddd |jddd |jddd |jddd|jd dd|jd dddS(Niiiiiiiiii(iiii(iiiii(iiiii(iiiii(iiiii(iiiii(R](R ((s./usr/local/lib/python2.7/test/test_calendar.pyR_hs c Csc|jddd |jddd |jddd|jd dd|jd dddS(Niiiii~iiiiiiu(iiiii(iiiii(iiiiii(iiiii(iiiii(R](R ((s./usr/local/lib/python2.7/test/test_calendar.pyR`{s c Csv|jddd|jddd|jddd|jd dd|jd dd|jd dddS(Ni i iiiiiiiiiii(iiiii(iiiii(iiiiii(iiiii(iiiii(iiiiii(R](R ((s./usr/local/lib/python2.7/test/test_calendar.pyRas (RRRR%R$R_R`Ra(((s./usr/local/lib/python2.7/test/test_calendar.pyRbes   tMonthRangeTestCasecBs>eZdZdZdZdZdZdZRS(cCs |jtjddddS(Niiii(ii(RRt monthrange(R ((s./usr/local/lib/python2.7/test/test_calendar.pyt test_januaryscCs |jtjddddS(Niiii(ii(RRRd(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttest_february_leapscCs |jtjddddS(Niiii(ii(RRRd(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttest_february_nonleapscCs |jtjddddS(Nii ii(ii(RRRd(R ((s./usr/local/lib/python2.7/test/test_calendar.pyRascCs-|jtjtjddWdQXdS(Nii(R!RtIllegalMonthErrorRd(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttest_zeroth_monthscCs-|jtjtjddWdQXdS(Nii (R!RRhRd(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttest_thirteenth_months(RRReRfRgRaRiRj(((s./usr/local/lib/python2.7/test/test_calendar.pyRcs      tLeapdaysTestCasecBs5eZdZdZdZdZdZRS(cCs |jtjddddS(Nii(RRtleapdays(R ((s./usr/local/lib/python2.7/test/test_calendar.pyt test_no_rangescCs |jtjddddS(Niii(RRRl(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttest_no_leapdaysscCs |jtjddddS(Niii(RRRl(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttest_no_leapdays_upper_boundaryscCs |jtjddddS(Niii(RRRl(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttest_one_leapday_lower_boundaryscCs |jtjddddS(Niii(RRRl(R ((s./usr/local/lib/python2.7/test/test_calendar.pyttest_several_leapyears_in_ranges(RRRmRnRoRpRq(((s./usr/local/lib/python2.7/test/test_calendar.pyRks     cCs tjttttttdS(N(Rt run_unittestRRR^RbRcRk(((s./usr/local/lib/python2.7/test/test_calendar.pyt test_mainst__main__(RR@ttestRR;RMRRtTestCaseRRRPR^RbRcRkRsR(((s./usr/local/lib/python2.7/test/test_calendar.pyts    '} O::