<s> import calendar <EOL> import unittest <EOL> from test import support <EOL> from test . script_helper import assert_python_ok <EOL> import time <EOL> import locale <EOL> import sys <EOL> import datetime <EOL> result_2004_01_text = """<STR_LIT>""" <EOL> result_2004_text = """<STR_LIT>""" <EOL> result_2004_html = """<STR_LIT>""" <EOL> result_2004_days = [ <EOL> [ [ [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ] , <EOL> [ <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> ] , <EOL> [ <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> , <NUM_LIT:0> ] ] , <EOL> [ [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> ] , <EOL> [ <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:15> ] , <EOL> [ <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] ] , <EOL> [ [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> ] , <EOL> [ <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] ] ] , <EOL> [ [ [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ] , <EOL> [ <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> ] , <EOL> [ <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT:0> , <NUM_LIT:0> ] ] , <EOL> [ [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> ] , <EOL> [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> ] , <EOL> [ <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] ] , <EOL> [ [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> ] , <EOL> [ <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] ] ] , <EOL> [ [ [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> ] , <EOL> [ <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> ] , <EOL> [ <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> , <NUM_LIT:0> ] ] , <EOL> [ [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> ] , <EOL> [ <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:15> ] , <EOL> [ <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:30> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] ] , <EOL> [ [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ] , <EOL> [ <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] ] ] , <EOL> [ [ [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] , <EOL> [ <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> ] , <EOL> [ <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> ] ] , <EOL> [ [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> ] , <EOL> [ <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] ] , <EOL> [ [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ] , <EOL> [ <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> [ <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:0> ] ] ] <EOL> ] <EOL> result_2004_dates = [ [ [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] ] , <EOL> [ [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] ] , <EOL> [ [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] ] , <EOL> [ [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] ] ] <EOL> class OutputTestCase ( unittest . TestCase ) : <EOL> def normalize_calendar ( self , s ) : <EOL> def neitherspacenordigit ( c ) : <EOL> return not c . isspace ( ) and not c . isdigit ( ) <EOL> lines = [ ] <EOL> for line in s . splitlines ( keepends = False ) : <EOL> if line and not filter ( neitherspacenordigit , line ) : <EOL> lines . append ( line ) <EOL> return lines <EOL> def check_htmlcalendar_encoding ( self , req , res ) : <EOL> cal = calendar . HTMLCalendar ( ) <EOL> self . assertEqual ( <EOL> cal . formatyearpage ( <NUM_LIT> , encoding = req ) . strip ( b'<STR_LIT>' ) , <EOL> ( result_2004_html % { '<STR_LIT:e>' : res } ) . strip ( '<STR_LIT>' ) . encode ( res ) <EOL> ) <EOL> def test_output ( self ) : <EOL> self . assertEqual ( <EOL> self . normalize_calendar ( calendar . calendar ( <NUM_LIT> ) ) , <EOL> self . normalize_calendar ( result_2004_text ) <EOL> ) <EOL> def test_output_textcalendar ( self ) : <EOL> self . assertEqual ( <EOL> calendar . TextCalendar ( ) . formatyear ( <NUM_LIT> ) . strip ( ) , <EOL> result_2004_text . strip ( ) <EOL> ) <EOL> def test_output_htmlcalendar_encoding_ascii ( self ) : <EOL> self . check_htmlcalendar_encoding ( '<STR_LIT:ascii>' , '<STR_LIT:ascii>' ) <EOL> def test_output_htmlcalendar_encoding_utf8 ( self ) : <EOL> self . check_htmlcalendar_encoding ( '<STR_LIT:utf-8>' , '<STR_LIT:utf-8>' ) <EOL> def test_output_htmlcalendar_encoding_default ( self ) : <EOL> self . check_htmlcalendar_encoding ( None , sys . getdefaultencoding ( ) ) <EOL> def test_yeardatescalendar ( self ) : <EOL> def shrink ( cal ) : <EOL> return [ [ [ '<STR_LIT:U+0020>' . join ( '<STR_LIT>' . format ( <EOL> d . month , d . day , str ( d . year ) [ - <NUM_LIT:2> : ] ) for d in z ) <EOL> for z in y ] for y in x ] for x in cal ] <EOL> self . assertEqual ( <EOL> shrink ( calendar . Calendar ( ) . yeardatescalendar ( <NUM_LIT> ) ) , <EOL> result_2004_dates <EOL> ) <EOL> def test_yeardayscalendar ( self ) : <EOL> self . assertEqual ( <EOL> calendar . Calendar ( ) . yeardayscalendar ( <NUM_LIT> ) , <EOL> result_2004_days <EOL> ) <EOL> def test_formatweekheader_short ( self ) : <EOL> self . assertEqual ( <EOL> calendar . TextCalendar ( ) . formatweekheader ( <NUM_LIT:2> ) , <EOL> '<STR_LIT>' <EOL> ) <EOL> def test_formatweekheader_long ( self ) : <EOL> self . assertEqual ( <EOL> calendar . TextCalendar ( ) . formatweekheader ( <NUM_LIT:9> ) , <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> ) <EOL> def test_formatmonth ( self ) : <EOL> self . assertEqual ( <EOL> calendar . TextCalendar ( ) . formatmonth ( <NUM_LIT> , <NUM_LIT:1> ) . strip ( ) , <EOL> result_2004_01_text . strip ( ) <EOL> ) <EOL> def test_formatmonthname_with_year ( self ) : <EOL> self . assertEqual ( <EOL> calendar . HTMLCalendar ( ) . formatmonthname ( <NUM_LIT> , <NUM_LIT:1> , withyear = True ) , <EOL> '<STR_LIT>' <EOL> ) <EOL> def test_formatmonthname_without_year ( self ) : <EOL> self . assertEqual ( <EOL> calendar . HTMLCalendar ( ) . formatmonthname ( <NUM_LIT> , <NUM_LIT:1> , withyear = False ) , <EOL> '<STR_LIT>' <EOL> ) <EOL> def test_prweek ( self ) : <EOL> with support . captured_stdout ( ) as out : <EOL> week = [ ( <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , <NUM_LIT:1> ) , ( <NUM_LIT:3> , <NUM_LIT:2> ) , ( <NUM_LIT:4> , <NUM_LIT:3> ) , ( <NUM_LIT:5> , <NUM_LIT:4> ) , ( <NUM_LIT:6> , <NUM_LIT:5> ) , ( <NUM_LIT:7> , <NUM_LIT:6> ) ] <EOL> calendar . TextCalendar ( ) . prweek ( week , <NUM_LIT:1> ) <EOL> self . assertEqual ( out . getvalue ( ) . strip ( ) , "<STR_LIT>" ) <EOL> def test_prmonth ( self ) : <EOL> with support . captured_stdout ( ) as out : <EOL> calendar . TextCalendar ( ) . prmonth ( <NUM_LIT> , <NUM_LIT:1> ) <EOL> output = out . getvalue ( ) . strip ( ) <EOL> self . assertEqual ( output , result_2004_01_text . strip ( ) ) <EOL> def test_pryear ( self ) : <EOL> with support . captured_stdout ( ) as out : <EOL> calendar . TextCalendar ( ) . pryear ( <NUM_LIT> ) <EOL> self . assertEqual ( out . getvalue ( ) . strip ( ) , result_2004_text . strip ( ) ) <EOL> def test_format ( self ) : <EOL> with support . captured_stdout ( ) as out : <EOL> calendar . format ( [ "<STR_LIT:1>" , "<STR_LIT:2>" , "<STR_LIT:3>" ] , colwidth = <NUM_LIT:3> , spacing = <NUM_LIT:1> ) <EOL> self . assertEqual ( out . getvalue ( ) . strip ( ) , "<STR_LIT>" ) <EOL> class CalendarTestCase ( unittest . TestCase ) : <EOL> def test_isleap ( self ) : <EOL> self . assertEqual ( calendar . isleap ( <NUM_LIT> ) , <NUM_LIT:1> ) <EOL> self . assertEqual ( calendar . isleap ( <NUM_LIT> ) , <NUM_LIT:0> ) <EOL> self . assertEqual ( calendar . isleap ( <NUM_LIT> ) , <NUM_LIT:0> ) <EOL> self . assertEqual ( calendar . isleap ( <NUM_LIT> ) , <NUM_LIT:0> ) <EOL> def test_setfirstweekday ( self ) : <EOL> self . assertRaises ( TypeError , calendar . setfirstweekday , '<STR_LIT>' ) <EOL> self . assertRaises ( ValueError , calendar . setfirstweekday , - <NUM_LIT:1> ) <EOL> self . assertRaises ( ValueError , calendar . setfirstweekday , <NUM_LIT:200> ) <EOL> orig = calendar . firstweekday ( ) <EOL> calendar . setfirstweekday ( calendar . SUNDAY ) <EOL> self . assertEqual ( calendar . firstweekday ( ) , calendar . SUNDAY ) <EOL> calendar . setfirstweekday ( calendar . MONDAY ) <EOL> self . assertEqual ( calendar . firstweekday ( ) , calendar . MONDAY ) <EOL> calendar . setfirstweekday ( orig ) <EOL> def test_illegal_weekday_reported ( self ) : <EOL> with self . assertRaisesRegex ( calendar . IllegalWeekdayError , '<STR_LIT>' ) : <EOL> calendar . setfirstweekday ( <NUM_LIT> ) <EOL> def test_enumerate_weekdays ( self ) : <EOL> self . assertRaises ( IndexError , calendar . day_abbr . __getitem__ , - <NUM_LIT:10> ) <EOL> self . assertRaises ( IndexError , calendar . day_name . __getitem__ , <NUM_LIT:10> ) <EOL> self . assertEqual ( len ( [ d for d in calendar . day_abbr ] ) , <NUM_LIT:7> ) <EOL> def test_days ( self ) : <EOL> for attr in "<STR_LIT>" , "<STR_LIT>" : <EOL> value = getattr ( calendar , attr ) <EOL> self . assertEqual ( len ( value ) , <NUM_LIT:7> ) <EOL> self . assertEqual ( len ( value [ : ] ) , <NUM_LIT:7> ) <EOL> self . assertEqual ( len ( set ( value ) ) , <NUM_LIT:7> ) <EOL> self . assertEqual ( value [ : : - <NUM_LIT:1> ] , list ( reversed ( value ) ) ) <EOL> def test_months ( self ) : <EOL> for attr in "<STR_LIT>" , "<STR_LIT>" : <EOL> value = getattr ( calendar , attr ) <EOL> self . assertEqual ( len ( value ) , <NUM_LIT> ) <EOL> self . assertEqual ( len ( value [ : ] ) , <NUM_LIT> ) <EOL> self . assertEqual ( value [ <NUM_LIT:0> ] , "<STR_LIT>" ) <EOL> self . assertEqual ( len ( set ( value ) ) , <NUM_LIT> ) <EOL> self . assertEqual ( value [ : : - <NUM_LIT:1> ] , list ( reversed ( value ) ) ) <EOL> def test_locale_calendars ( self ) : <EOL> old_october = calendar . TextCalendar ( ) . formatmonthname ( <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> ) <EOL> try : <EOL> cal = calendar . LocaleTextCalendar ( locale = '<STR_LIT>' ) <EOL> local_weekday = cal . formatweekday ( <NUM_LIT:1> , <NUM_LIT:10> ) <EOL> local_month = cal . formatmonthname ( <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> ) <EOL> except locale . Error : <EOL> raise unittest . SkipTest ( '<STR_LIT>' ) <EOL> self . assertIsInstance ( local_weekday , str ) <EOL> self . assertIsInstance ( local_month , str ) <EOL> self . assertEqual ( len ( local_weekday ) , <NUM_LIT:10> ) <EOL> self . assertGreaterEqual ( len ( local_month ) , <NUM_LIT:10> ) <EOL> cal = calendar . LocaleHTMLCalendar ( locale = '<STR_LIT>' ) <EOL> local_weekday = cal . formatweekday ( <NUM_LIT:1> ) <EOL> local_month = cal . formatmonthname ( <NUM_LIT> , <NUM_LIT:10> ) <EOL> self . assertIsInstance ( local_weekday , str ) <EOL> self . assertIsInstance ( local_month , str ) <EOL> new_october = calendar . TextCalendar ( ) . formatmonthname ( <NUM_LIT> , <NUM_LIT:10> , <NUM_LIT:10> ) <EOL> self . assertEqual ( old_october , new_october ) <EOL> def test_itermonthdates ( self ) : <EOL> list ( calendar . Calendar ( ) . itermonthdates ( datetime . MAXYEAR , <NUM_LIT:12> ) ) <EOL> class MonthCalendarTestCase ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . oldfirstweekday = calendar . firstweekday ( ) <EOL> calendar . setfirstweekday ( self . firstweekday ) <EOL> def tearDown ( self ) : <EOL> calendar . setfirstweekday ( self . oldfirstweekday ) <EOL> def check_weeks ( self , year , month , weeks ) : <EOL> cal = calendar . monthcalendar ( year , month ) <EOL> self . assertEqual ( len ( cal ) , len ( weeks ) ) <EOL> for i in range ( len ( weeks ) ) : <EOL> self . assertEqual ( weeks [ i ] , sum ( day != <NUM_LIT:0> for day in cal [ i ] ) ) <EOL> class MondayTestCase ( MonthCalendarTestCase ) : <EOL> firstweekday = calendar . MONDAY <EOL> def test_february ( self ) : <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:1> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:1> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:6> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:1> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:2> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:1> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> ) ) <EOL> def test_april ( self ) : <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:4> , ( <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:2> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:4> , ( <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:3> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:4> , ( <NUM_LIT:1> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:1> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:4> , ( <NUM_LIT:2> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:4> , ( <NUM_LIT:3> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:6> ) ) <EOL> def test_december ( self ) : <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:3> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:4> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:1> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:2> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:4> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:6> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:3> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:2> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:1> ) ) <EOL> class SundayTestCase ( MonthCalendarTestCase ) : <EOL> firstweekday = calendar . SUNDAY <EOL> def test_february ( self ) : <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:1> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:1> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:6> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:1> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:2> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:2> , ( <NUM_LIT:1> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> ) ) <EOL> def test_april ( self ) : <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:4> , ( <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:2> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:4> , ( <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:3> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:4> , ( <NUM_LIT:1> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:1> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:4> , ( <NUM_LIT:2> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:4> , ( <NUM_LIT:3> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:6> ) ) <EOL> def test_december ( self ) : <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:3> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:4> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:1> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:2> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:4> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:6> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:3> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> ) ) <EOL> self . check_weeks ( <NUM_LIT> , <NUM_LIT:12> , ( <NUM_LIT:2> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:7> , <NUM_LIT:1> ) ) <EOL> class TimegmTestCase ( unittest . TestCase ) : <EOL> TIMESTAMPS = [ <NUM_LIT:0> , <NUM_LIT:10> , <NUM_LIT:100> , <NUM_LIT:1000> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <EOL> <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , ] <EOL> def test_timegm ( self ) : <EOL> for secs in self . TIMESTAMPS : <EOL> tuple = time . gmtime ( secs ) <EOL> self . assertEqual ( secs , calendar . timegm ( tuple ) ) <EOL> class MonthRangeTestCase ( unittest . TestCase ) : <EOL> def test_january ( self ) : <EOL> self . assertEqual ( calendar . monthrange ( <NUM_LIT> , <NUM_LIT:1> ) , ( <NUM_LIT:3> , <NUM_LIT> ) ) <EOL> def test_february_leap ( self ) : <EOL> self . assertEqual ( calendar . monthrange ( <NUM_LIT> , <NUM_LIT:2> ) , ( <NUM_LIT:6> , <NUM_LIT> ) ) <EOL> def test_february_nonleap ( self ) : <EOL> self . assertEqual ( calendar . monthrange ( <NUM_LIT> , <NUM_LIT:2> ) , ( <NUM_LIT:0> , <NUM_LIT> ) ) <EOL> def test_december ( self ) : <EOL> self . assertEqual ( calendar . monthrange ( <NUM_LIT> , <NUM_LIT:12> ) , ( <NUM_LIT:2> , <NUM_LIT> ) ) <EOL> def test_zeroth_month ( self ) : <EOL> with self . assertRaises ( calendar . IllegalMonthError ) : <EOL> calendar . monthrange ( <NUM_LIT> , <NUM_LIT:0> ) <EOL> def test_thirteenth_month ( self ) : <EOL> with self . assertRaises ( calendar . IllegalMonthError ) : <EOL> calendar . monthrange ( <NUM_LIT> , <NUM_LIT> ) <EOL> def test_illegal_month_reported ( self ) : <EOL> with self . assertRaisesRegex ( calendar . IllegalMonthError , '<STR_LIT>' ) : <EOL> calendar . monthrange ( <NUM_LIT> , <NUM_LIT> ) <EOL> class LeapdaysTestCase ( unittest . TestCase ) : <EOL> def test_no_range ( self ) : <EOL> self . assertEqual ( calendar . leapdays ( <NUM_LIT> , <NUM_LIT> ) , <NUM_LIT:0> ) <EOL> def test_no_leapdays ( self ) : <EOL> self . assertEqual ( calendar . leapdays ( <NUM_LIT> , <NUM_LIT> ) , <NUM_LIT:0> ) <EOL> def test_no_leapdays_upper_boundary ( self ) : <EOL> self . assertEqual ( calendar . leapdays ( <NUM_LIT> , <NUM_LIT> ) , <NUM_LIT:0> ) <EOL> def test_one_leapday_lower_boundary ( self ) : <EOL> self . assertEqual ( calendar . leapdays ( <NUM_LIT> , <NUM_LIT> ) , <NUM_LIT:1> ) <EOL> def test_several_leapyears_in_range ( self ) : <EOL> self . assertEqual ( calendar . leapdays ( <NUM_LIT> , <NUM_LIT> ) , <NUM_LIT:5> ) <EOL> class ConsoleOutputTestCase ( unittest . TestCase ) : <EOL> def test_outputs_bytes ( self ) : <EOL> ( return_code , stdout , stderr ) = assert_python_ok ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . assertEqual ( stdout [ : <NUM_LIT:6> ] , b'<STR_LIT>' ) <EOL> def test_main ( ) : <EOL> support . run_unittest ( <EOL> OutputTestCase , <EOL> CalendarTestCase , <EOL> MondayTestCase , <EOL> SundayTestCase , <EOL> TimegmTestCase , <EOL> MonthRangeTestCase , <EOL> LeapdaysTestCase , <EOL> ConsoleOutputTestCase <EOL> ) <EOL> if __name__ == "<STR_LIT:__main__>" : <EOL> test_main ( ) </s>
