Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_calendar.cpython-311.opt-2.pyc
�

�Ke
���8�ddlZddlZddlmZddlmZmZddlZddlZddl	Z	ddl
Z
ddlZdZdZ
dZdZedd	d
���ZdZgd
�gd�gd�gd�gd�ggd�gd�gd�gd�gd�ggd�gd�gd�gd�gd�gggd
�gd�gd�gd�gd�ggd�gd�gd�gd �gd!�gd"�ggd#�gd$�gd%�gd&�gd'�gggd
�gd�gd�gd�gd�ggd�gd�gd�gd�gd�gd(�ggd)�gd*�gd+�gd,�gd-�gggd.�gd/�gd0�gd1�gd2�ggd�gd�gd�gd�gd3�ggd)�gd*�gd+�gd,�gd4�gggZgd5�gd6�gd7�ggd8�gd9�gd:�ggd;�gd<�gd=�ggd>�gd?�gd@�ggZGdA�dBej��ZGdC�dDej��ZGdE�dFej��ZGdG�dHe��ZGdI�dJe��ZGdK�dLej��ZGdM�dNej��ZGdO�dPej��ZdQ�ZGdR�dSej��ZGdT�dUej��Z GdV�dWej��Z!e"dXkrej#��dSdS)Y�N)�support)�assert_python_ok�assert_python_failurez     February 0
Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29
a                                   0

      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          1  2  3  4  5  6             1  2  3  4  5
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       6  7  8  9 10 11 12
10 11 12 13 14 15 16      14 15 16 17 18 19 20      13 14 15 16 17 18 19
17 18 19 20 21 22 23      21 22 23 24 25 26 27      20 21 22 23 24 25 26
24 25 26 27 28 29 30      28 29                     27 28 29 30 31
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       1  2  3  4  5  6  7                1  2  3  4
 3  4  5  6  7  8  9       8  9 10 11 12 13 14       5  6  7  8  9 10 11
10 11 12 13 14 15 16      15 16 17 18 19 20 21      12 13 14 15 16 17 18
17 18 19 20 21 22 23      22 23 24 25 26 27 28      19 20 21 22 23 24 25
24 25 26 27 28 29 30      29 30 31                  26 27 28 29 30

        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          1  2  3  4  5  6                   1  2  3
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       4  5  6  7  8  9 10
10 11 12 13 14 15 16      14 15 16 17 18 19 20      11 12 13 14 15 16 17
17 18 19 20 21 22 23      21 22 23 24 25 26 27      18 19 20 21 22 23 24
24 25 26 27 28 29 30      28 29 30 31               25 26 27 28 29 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             1  2  3  4  5                   1  2  3
 2  3  4  5  6  7  8       6  7  8  9 10 11 12       4  5  6  7  8  9 10
 9 10 11 12 13 14 15      13 14 15 16 17 18 19      11 12 13 14 15 16 17
16 17 18 19 20 21 22      20 21 22 23 24 25 26      18 19 20 21 22 23 24
23 24 25 26 27 28 29      27 28 29 30               25 26 27 28 29 30 31
30 31
z�    January 2004
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
a!                                  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
�year�month�ascii)rr�encodingax;<?xml version="1.0" encoding="{encoding}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset={encoding}" />
<link rel="stylesheet" type="text/css" href="calendar.css" />
<title>Calendar for 2004</title>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" class="{year}">
<tr><th colspan="3" class="{year}">2004</th></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">January</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="sat">31</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">February</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sun">1</td></tr>
<tr><td class="mon">2</td><td class="tue">3</td><td class="wed">4</td><td class="thu">5</td><td class="fri">6</td><td class="sat">7</td><td class="sun">8</td></tr>
<tr><td class="mon">9</td><td class="tue">10</td><td class="wed">11</td><td class="thu">12</td><td class="fri">13</td><td class="sat">14</td><td class="sun">15</td></tr>
<tr><td class="mon">16</td><td class="tue">17</td><td class="wed">18</td><td class="thu">19</td><td class="fri">20</td><td class="sat">21</td><td class="sun">22</td></tr>
<tr><td class="mon">23</td><td class="tue">24</td><td class="wed">25</td><td class="thu">26</td><td class="fri">27</td><td class="sat">28</td><td class="sun">29</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">March</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
<tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
<tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
<tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
<tr><td class="mon">29</td><td class="tue">30</td><td class="wed">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">April</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">May</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sat">1</td><td class="sun">2</td></tr>
<tr><td class="mon">3</td><td class="tue">4</td><td class="wed">5</td><td class="thu">6</td><td class="fri">7</td><td class="sat">8</td><td class="sun">9</td></tr>
<tr><td class="mon">10</td><td class="tue">11</td><td class="wed">12</td><td class="thu">13</td><td class="fri">14</td><td class="sat">15</td><td class="sun">16</td></tr>
<tr><td class="mon">17</td><td class="tue">18</td><td class="wed">19</td><td class="thu">20</td><td class="fri">21</td><td class="sat">22</td><td class="sun">23</td></tr>
<tr><td class="mon">24</td><td class="tue">25</td><td class="wed">26</td><td class="thu">27</td><td class="fri">28</td><td class="sat">29</td><td class="sun">30</td></tr>
<tr><td class="mon">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">June</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="tue">1</td><td class="wed">2</td><td class="thu">3</td><td class="fri">4</td><td class="sat">5</td><td class="sun">6</td></tr>
<tr><td class="mon">7</td><td class="tue">8</td><td class="wed">9</td><td class="thu">10</td><td class="fri">11</td><td class="sat">12</td><td class="sun">13</td></tr>
<tr><td class="mon">14</td><td class="tue">15</td><td class="wed">16</td><td class="thu">17</td><td class="fri">18</td><td class="sat">19</td><td class="sun">20</td></tr>
<tr><td class="mon">21</td><td class="tue">22</td><td class="wed">23</td><td class="thu">24</td><td class="fri">25</td><td class="sat">26</td><td class="sun">27</td></tr>
<tr><td class="mon">28</td><td class="tue">29</td><td class="wed">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">July</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="sat">31</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">August</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sun">1</td></tr>
<tr><td class="mon">2</td><td class="tue">3</td><td class="wed">4</td><td class="thu">5</td><td class="fri">6</td><td class="sat">7</td><td class="sun">8</td></tr>
<tr><td class="mon">9</td><td class="tue">10</td><td class="wed">11</td><td class="thu">12</td><td class="fri">13</td><td class="sat">14</td><td class="sun">15</td></tr>
<tr><td class="mon">16</td><td class="tue">17</td><td class="wed">18</td><td class="thu">19</td><td class="fri">20</td><td class="sat">21</td><td class="sun">22</td></tr>
<tr><td class="mon">23</td><td class="tue">24</td><td class="wed">25</td><td class="thu">26</td><td class="fri">27</td><td class="sat">28</td><td class="sun">29</td></tr>
<tr><td class="mon">30</td><td class="tue">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">September</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="wed">1</td><td class="thu">2</td><td class="fri">3</td><td class="sat">4</td><td class="sun">5</td></tr>
<tr><td class="mon">6</td><td class="tue">7</td><td class="wed">8</td><td class="thu">9</td><td class="fri">10</td><td class="sat">11</td><td class="sun">12</td></tr>
<tr><td class="mon">13</td><td class="tue">14</td><td class="wed">15</td><td class="thu">16</td><td class="fri">17</td><td class="sat">18</td><td class="sun">19</td></tr>
<tr><td class="mon">20</td><td class="tue">21</td><td class="wed">22</td><td class="thu">23</td><td class="fri">24</td><td class="sat">25</td><td class="sun">26</td></tr>
<tr><td class="mon">27</td><td class="tue">28</td><td class="wed">29</td><td class="thu">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">October</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="fri">1</td><td class="sat">2</td><td class="sun">3</td></tr>
<tr><td class="mon">4</td><td class="tue">5</td><td class="wed">6</td><td class="thu">7</td><td class="fri">8</td><td class="sat">9</td><td class="sun">10</td></tr>
<tr><td class="mon">11</td><td class="tue">12</td><td class="wed">13</td><td class="thu">14</td><td class="fri">15</td><td class="sat">16</td><td class="sun">17</td></tr>
<tr><td class="mon">18</td><td class="tue">19</td><td class="wed">20</td><td class="thu">21</td><td class="fri">22</td><td class="sat">23</td><td class="sun">24</td></tr>
<tr><td class="mon">25</td><td class="tue">26</td><td class="wed">27</td><td class="thu">28</td><td class="fri">29</td><td class="sat">30</td><td class="sun">31</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">November</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
<tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
<tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
<tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
<tr><td class="mon">29</td><td class="tue">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">December</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="wed">1</td><td class="thu">2</td><td class="fri">3</td><td class="sat">4</td><td class="sun">5</td></tr>
<tr><td class="mon">6</td><td class="tue">7</td><td class="wed">8</td><td class="thu">9</td><td class="fri">10</td><td class="sat">11</td><td class="sun">12</td></tr>
<tr><td class="mon">13</td><td class="tue">14</td><td class="wed">15</td><td class="thu">16</td><td class="fri">17</td><td class="sat">18</td><td class="sun">19</td></tr>
<tr><td class="mon">20</td><td class="tue">21</td><td class="wed">22</td><td class="thu">23</td><td class="fri">24</td><td class="sat">25</td><td class="sun">26</td></tr>
<tr><td class="mon">27</td><td class="tue">28</td><td class="wed">29</td><td class="thu">30</td><td class="fri">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr></table></body>
</html>
)rrr����)�����	�
�)��
�����)�������)������r)rrrrrrr
)rrr
rrrr)rrrrrrr)rrrrrrr)r r!r"r#r$r%r&)r
rrr
rrr)rrrrrrr)rrrrrrr)rr r!r"r#r$r%)r&r'r(rrrr)r#r$r%r&r'rr)rrrrrr
r)rr
rrrrr)rrrrrrr)rrrrrrr )r!r"r#r$r%r&r')r(rrrrrr)rr
rrr
rr)rrrrrrr)rrrrrrr)rrr r!r"r#r$)r%r&r'rrrr)r'r(rrrrr)rrr
rrr
r)rrrrrrr)rrrrrrr)rrrr r!r"r#)r$r%r&r'rrr)rrrrr
rr)r
rrrrrr)rrrrrrr)rrrrrr r!)r"r#r$r%r&r'r()r&r'rrrrr)r$r%r&r'r(rr)z>12/29/03 12/30/03 12/31/03 01/01/04 01/02/04 01/03/04 01/04/04z>01/05/04 01/06/04 01/07/04 01/08/04 01/09/04 01/10/04 01/11/04z>01/12/04 01/13/04 01/14/04 01/15/04 01/16/04 01/17/04 01/18/04z>01/19/04 01/20/04 01/21/04 01/22/04 01/23/04 01/24/04 01/25/04�>01/26/04 01/27/04 01/28/04 01/29/04 01/30/04 01/31/04 02/01/04)r)z>02/02/04 02/03/04 02/04/04 02/05/04 02/06/04 02/07/04 02/08/04z>02/09/04 02/10/04 02/11/04 02/12/04 02/13/04 02/14/04 02/15/04z>02/16/04 02/17/04 02/18/04 02/19/04 02/20/04 02/21/04 02/22/04z>02/23/04 02/24/04 02/25/04 02/26/04 02/27/04 02/28/04 02/29/04)z>03/01/04 03/02/04 03/03/04 03/04/04 03/05/04 03/06/04 03/07/04z>03/08/04 03/09/04 03/10/04 03/11/04 03/12/04 03/13/04 03/14/04z>03/15/04 03/16/04 03/17/04 03/18/04 03/19/04 03/20/04 03/21/04z>03/22/04 03/23/04 03/24/04 03/25/04 03/26/04 03/27/04 03/28/04�>03/29/04 03/30/04 03/31/04 04/01/04 04/02/04 04/03/04 04/04/04)r*z>04/05/04 04/06/04 04/07/04 04/08/04 04/09/04 04/10/04 04/11/04z>04/12/04 04/13/04 04/14/04 04/15/04 04/16/04 04/17/04 04/18/04z>04/19/04 04/20/04 04/21/04 04/22/04 04/23/04 04/24/04 04/25/04�>04/26/04 04/27/04 04/28/04 04/29/04 04/30/04 05/01/04 05/02/04)r+z>05/03/04 05/04/04 05/05/04 05/06/04 05/07/04 05/08/04 05/09/04z>05/10/04 05/11/04 05/12/04 05/13/04 05/14/04 05/15/04 05/16/04z>05/17/04 05/18/04 05/19/04 05/20/04 05/21/04 05/22/04 05/23/04z>05/24/04 05/25/04 05/26/04 05/27/04 05/28/04 05/29/04 05/30/04�>05/31/04 06/01/04 06/02/04 06/03/04 06/04/04 06/05/04 06/06/04)r,z>06/07/04 06/08/04 06/09/04 06/10/04 06/11/04 06/12/04 06/13/04z>06/14/04 06/15/04 06/16/04 06/17/04 06/18/04 06/19/04 06/20/04z>06/21/04 06/22/04 06/23/04 06/24/04 06/25/04 06/26/04 06/27/04�>06/28/04 06/29/04 06/30/04 07/01/04 07/02/04 07/03/04 07/04/04)r-z>07/05/04 07/06/04 07/07/04 07/08/04 07/09/04 07/10/04 07/11/04z>07/12/04 07/13/04 07/14/04 07/15/04 07/16/04 07/17/04 07/18/04z>07/19/04 07/20/04 07/21/04 07/22/04 07/23/04 07/24/04 07/25/04�>07/26/04 07/27/04 07/28/04 07/29/04 07/30/04 07/31/04 08/01/04)r.z>08/02/04 08/03/04 08/04/04 08/05/04 08/06/04 08/07/04 08/08/04z>08/09/04 08/10/04 08/11/04 08/12/04 08/13/04 08/14/04 08/15/04z>08/16/04 08/17/04 08/18/04 08/19/04 08/20/04 08/21/04 08/22/04z>08/23/04 08/24/04 08/25/04 08/26/04 08/27/04 08/28/04 08/29/04�>08/30/04 08/31/04 09/01/04 09/02/04 09/03/04 09/04/04 09/05/04)r/z>09/06/04 09/07/04 09/08/04 09/09/04 09/10/04 09/11/04 09/12/04z>09/13/04 09/14/04 09/15/04 09/16/04 09/17/04 09/18/04 09/19/04z>09/20/04 09/21/04 09/22/04 09/23/04 09/24/04 09/25/04 09/26/04�>09/27/04 09/28/04 09/29/04 09/30/04 10/01/04 10/02/04 10/03/04)r0z>10/04/04 10/05/04 10/06/04 10/07/04 10/08/04 10/09/04 10/10/04z>10/11/04 10/12/04 10/13/04 10/14/04 10/15/04 10/16/04 10/17/04z>10/18/04 10/19/04 10/20/04 10/21/04 10/22/04 10/23/04 10/24/04z>10/25/04 10/26/04 10/27/04 10/28/04 10/29/04 10/30/04 10/31/04)z>11/01/04 11/02/04 11/03/04 11/04/04 11/05/04 11/06/04 11/07/04z>11/08/04 11/09/04 11/10/04 11/11/04 11/12/04 11/13/04 11/14/04z>11/15/04 11/16/04 11/17/04 11/18/04 11/19/04 11/20/04 11/21/04z>11/22/04 11/23/04 11/24/04 11/25/04 11/26/04 11/27/04 11/28/04�>11/29/04 11/30/04 12/01/04 12/02/04 12/03/04 12/04/04 12/05/04)r1z>12/06/04 12/07/04 12/08/04 12/09/04 12/10/04 12/11/04 12/12/04z>12/13/04 12/14/04 12/15/04 12/16/04 12/17/04 12/18/04 12/19/04z>12/20/04 12/21/04 12/22/04 12/23/04 12/24/04 12/25/04 12/26/04z>12/27/04 12/28/04 12/29/04 12/30/04 12/31/04 01/01/05 01/02/05c�z�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�ZdS)�OutputTestCasec��d�}g}|�d���D])}|r%t||��s|�|���*|S)Nc�V�|���o|���S�N)�isspace�isdigit)�cs �</usr/local/apps/python3/lib/python3.11/test/test_calendar.py�neitherspacenordigitz?OutputTestCase.normalize_calendar.<locals>.neitherspacenordigitss!���y�y�{�{�?�6�1�9�9�;�;��6�F)�keepends)�
splitlines�filter�append)�self�sr;�lines�lines     r:�normalize_calendarz!OutputTestCase.normalize_calendarqsg��	7�	7�	7����L�L�%�L�0�0�	#�	#�D��
#�F�#7��>�>�
#����T�"�"�"���r<c�
�tj��}t���}|pd|d<|�d|���}|�|t
jdi|���|����dS)N�utf-8r	��)r	�)	�calendar�HTMLCalendar�default_format�copy�formatyearpage�assertEqual�result_2004_html�format�encode)rA�req�res�cal�format_�outputs      r:�check_htmlcalendar_encodingz*OutputTestCase.check_htmlcalendar_encoding}s����#�%�%�� �%�%�'�'��!�n�W��
���#�#�D�3�#�7�7�������#�.�.�g�.�.�5�5�c�:�:�	
�	
�	
�	
�	
r<c�R�|�|�tjd����|�t����|�|�tjd����|�t����dS�NrHr)rOrErJ�result_2004_text�
result_0_text�rAs r:�test_outputzOutputTestCase.test_output�s�������#�#�H�$5�d�$;�$;�<�<��#�#�$4�5�5�	
�	
�	
�	
����#�#�H�$5�a�$8�$8�9�9��#�#�M�2�2�	
�	
�	
�	
�	
r<c��|�tj���d��t��|�tj���d��t
��dSrZ)rOrJ�TextCalendar�
formatyearr[r\r]s r:�test_output_textcalendarz'OutputTestCase.test_output_textcalendar�sx������!�#�#�.�.�t�4�4��	
�	
�	
�	
����!�#�#�.�.�q�1�1��	
�	
�	
�	
�	
r<c�2�|�dd��dS)Nr�rXr]s r:�'test_output_htmlcalendar_encoding_asciiz6OutputTestCase.test_output_htmlcalendar_encoding_ascii�����(�(��'�:�:�:�:�:r<c�2�|�dd��dS)NrGrdr]s r:�&test_output_htmlcalendar_encoding_utf8z5OutputTestCase.test_output_htmlcalendar_encoding_utf8�rfr<c�T�|�dtj����dSr6)rX�sys�getdefaultencodingr]s r:�)test_output_htmlcalendar_encoding_defaultz8OutputTestCase.test_output_htmlcalendar_encoding_default�s'���(�(��s�/E�/G�/G�H�H�H�H�Hr<c��d�}|�|tj���d����t��dS)Nc��d�|D��S)Nc�&�g|]}d�|D����S)c�&�g|]}d�|D����S)c�L�g|]!}d�d�|D������"S)� c3�K�|]?}d�|j|jt|j��dd���V��@dS)z{:02d}/{:02d}/{}���N)rQr�day�strr��.0�ds  r:�	<genexpr>ziOutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>.<listcomp>.<listcomp>.<genexpr>�sl����N�N�FG� 2�8�8� !�����A�F���B�C�C�0@� B� B�N�N�N�N�N�Nr<)�join)rx�zs  r:�
<listcomp>z_OutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>.<listcomp>.<listcomp>�sY��(�(�(� !��h�h�N�N�KL�N�N�N�N�N�(�(�(r<rI)rx�ys  r:r}zTOutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>.<listcomp>�s?��4�4�4�,-�(�(�%&�(�(�(�4�4�4r<rI)rx�xs  r:r}zIOutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>�sE��B�B�B�89�4�4�12�4�4�4�B�B�Br<rI)rUs r:�shrinkz5OutputTestCase.test_yeardatescalendar.<locals>.shrink�s)��B�B�=@�B�B�B�
Br<rH)rOrJ�Calendar�yeardatescalendar�result_2004_dates)rAr�s  r:�test_yeardatescalendarz%OutputTestCase.test_yeardatescalendar�s_��	B�	B�	B�	
����F�8�$�&�&�8�8��>�>�?�?��	
�	
�	
�	
�	
r<c��|�tj���d��t��dS�NrH)rOrJr��yeardayscalendar�result_2004_daysr]s r:�test_yeardayscalendarz$OutputTestCase.test_yeardayscalendar�sA���������0�0��6�6��	
�	
�	
�	
�	
r<c�z�|�tj���d��d��dS)NrzMo Tu We Th Fr Sa Su�rOrJr`�formatweekheaderr]s r:�test_formatweekheader_shortz*OutputTestCase.test_formatweekheader_short�sA������!�#�#�4�4�Q�7�7�"�	
�	
�	
�	
�	
r<c�z�|�tj���d��d��dS)NrzE  Monday   Tuesday  Wednesday  Thursday   Friday   Saturday   Sunday r�r]s r:�test_formatweekheader_longz)OutputTestCase.test_formatweekheader_long�sC������!�#�#�4�4�Q�7�7�
,�	
�	
�	
�	
�	
r<c��|�tj���dd��t��|�tj���dd��t
��dS)NrHr
rr)rOrJr`�formatmonth�result_2004_01_text�result_0_02_textr]s r:�test_formatmonthzOutputTestCase.test_formatmonth�s|������!�#�#�/�/��a�8�8��	
�	
�	
�	
����!�#�#�/�/��1�5�5��	
�	
�	
�	
�	
r<c��|�tj���ddd���d��dS)NrHr
T��withyearz8<tr><th colspan="7" class="month">January 2004</th></tr>�rOrJrK�formatmonthnamer]s r:�test_formatmonthname_with_yearz-OutputTestCase.test_formatmonthname_with_year�sH������!�#�#�3�3�D�!�d�3�K�K�F�	
�	
�	
�	
�	
r<c��|�tj���ddd���d��dS)NrHr
Fr�z3<tr><th colspan="7" class="month">January</th></tr>r�r]s r:�!test_formatmonthname_without_yearz0OutputTestCase.test_formatmonthname_without_year�sH������!�#�#�3�3�D�!�e�3�L�L�A�	
�	
�	
�	
�	
r<c��tj��5}gd�}tj���|d��|�|���d��ddd��dS#1swxYwYdS)N))r
r)rr
)rr)r
r)rr
)rr)rrr
z 1  2  3  4  5  6  7)r�captured_stdoutrJr`�prweekrO�getvalue)rA�out�weeks   r:�test_prweekzOutputTestCase.test_prweek�s���
�
$�
&�
&�	E�#�D�D�D�D��!�#�#�*�*�4��3�3�3����S�\�\�^�^�-C�D�D�D�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�	E�	E��AA5�5A9�<A9c��tj��5}tj���dd��|�|���t��ddd��dS#1swxYwYdS)NrHr
)rr�rJr`�prmonthrOr�r��rAr�s  r:�test_prmonthzOutputTestCase.test_prmonth�s���
�
$�
&�
&�	B�#��!�#�#�+�+�D�!�4�4�4����S�\�\�^�^�-@�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	Bs�AA6�6A:�=A:c��tj��5}tj���d��|�|���t��ddd��dS#1swxYwYdSr�)rr�rJr`�pryearrOr�r[r�s  r:�test_pryearzOutputTestCase.test_pryear�s���
�
$�
&�
&�	?�#��!�#�#�*�*�4�0�0�0����S�\�\�^�^�-=�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	?�	?r�c��tj��5}tjgd�dd���|�|������d��ddd��dS#1swxYwYdS)N)�1�2�3rr
)�colwidth�spacingz	1   2   3)rr�rJrQrOr��stripr�s  r:�test_formatzOutputTestCase.test_format�s���
�
$�
&�
&�	B�#��O�O�O�O�a��C�C�C�C����S�\�\�^�^�1�1�3�3�[�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	Br�N)�__name__�
__module__�__qualname__rErXr^rbrerhrlr�r�r�r�r�r�r�r�r�r�r�rIr<r:r3r3ps0������
�
�
�
�
�
�
�
�
�
�
�
�;�;�;�;�;�;�I�I�I�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�E�E�E�B�B�B�
?�?�?�
B�B�B�B�Br<r3c�h�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�ZdS)�CalendarTestCasec�F�|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��dS)Ni�r
��ri�i�)rOrJ�isleapr]s r:�test_isleapzCalendarTestCase.test_isleap�s���
	
������.�.��2�2�2�������.�.��2�2�2�������.�.��2�2�2�������.�.��2�2�2�2�2r<c�t�|�ttjd��|�ttjd��|�ttjd��tj��}tjtj��|�tj��tj��tjtj��|�tj��tj��tj|��dS)N�flabber�����)	�assertRaises�	TypeErrorrJ�setfirstweekday�
ValueError�firstweekday�SUNDAYrO�MONDAY)rA�origs  r:�test_setfirstweekdayz%CalendarTestCase.test_setfirstweekday�s������)�X�%=�y�I�I�I����*�h�&>��C�C�C����*�h�&>��D�D�D��$�&�&��� ���1�1�1�����.�0�0�(�/�B�B�B�� ���1�1�1�����.�0�0�(�/�B�B�B�� ��&�&�&�&�&r<c��|�tjd��5tjd��ddd��dS#1swxYwYdS)N�123�{)�assertRaisesRegexrJ�IllegalWeekdayErrorr�r]s r:�test_illegal_weekday_reportedz.CalendarTestCase.test_illegal_weekday_reporteds���
�
#�
#�H�$@�%�
H�
H�	*�	*��$�S�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�A�A�
Ac� �|�ttjjd��|�ttjjd��|�td�tjD����d��dS)Ni����rc��g|]}|��SrIrIrws  r:r}z<CalendarTestCase.test_enumerate_weekdays.<locals>.<listcomp>	s��;�;�;�A�a�;�;�;r<r)r��
IndexErrorrJ�day_abbr�__getitem__�day_namerO�lenr]s r:�test_enumerate_weekdaysz(CalendarTestCase.test_enumerate_weekdaysst�����*�h�&7�&C�S�I�I�I����*�h�&7�&C�R�H�H�H�����;�;��):�;�;�;�<�<�a�@�@�@�@�@r<c	��dD]�}tt|��}|�t|��d��|�t|dd���d��|�tt	|����d��|�|ddd�tt
|��������dS)N)r�r�rr���getattrrJrOr��set�list�reversed�rA�attr�values   r:�	test_dayszCalendarTestCase.test_dayss���*�	A�	A�D��H�d�+�+�E����S��Z�Z��+�+�+����S��q�q�q��]�]�A�.�.�.����S��U���_�_�a�0�0�0����U�4�4�R�4�[�$�x����*?�*?�@�@�@�@�	A�	Ar<c	���dD]�}tt|��}|�t|��d��|�t|dd���d��|�|dd��|�tt	|����d��|�|ddd�tt
|��������dS)N)�
month_name�
month_abbrrr�r�r�r�s   r:�test_monthszCalendarTestCase.test_monthss���.�	A�	A�D��H�d�+�+�E����S��Z�Z��,�,�,����S��q�q�q��]�]�B�/�/�/����U�1�X�r�*�*�*����S��U���_�_�b�1�1�1����U�4�4�R�4�[�$�x����*?�*?�@�@�@�@�	A�	Ar<c��tj���ddd��}	tjd���}|�dd��}|�ddd��}n'#t
j$rtjd���wxYw|�	|t��|�	|t��|�t|��d��|�
t|��d��tjd���}|�d��}|�dd��}|�	|t��|�	|t��tj���ddd��}|�||��dS)N��rr���localer
�$cannot set the system default locale)rJr`r��LocaleTextCalendar�
formatweekdayr��Error�unittest�SkipTest�assertIsInstancervrOr��assertGreaterEqual�LocaleHTMLCalendar)rA�old_octoberrU�
local_weekday�local_month�new_octobers      r:�test_locale_calendarsz&CalendarTestCase.test_locale_calendars s����+�-�-�=�=�d�B��K�K��	L��-�R�8�8�8�C��-�-�a��4�4�M��-�-�d�B��;�;�K�K���|�	L�	L�	L��#�$J�K�K�K�	L����	
���m�S�1�1�1����k�3�/�/�/�����]�+�+�R�0�0�0�����K� 0� 0�"�5�5�5��)��4�4�4���)�)�!�,�,�
��)�)�$��3�3�����m�S�1�1�1����k�3�/�/�/��+�-�-�=�=�d�B��K�K������k�2�2�2�2�2s�AA-�-$Bc���	tjd���}|�|�dd��d��|�|�dd��d��|�|�dd��d	��|�|�dd
��d��|�|�dd��d
��|�|�dd��d��|�|�dd��d��dS#tj$rt
jd���wxYw)N�en_USr�rr
�Mr�Mor�Monrz Mon rz  Mon   rz	  Monday rz
  Monday  zcannot set the en_US locale)rJr�rOr�r�r�r�r�)rArUs  r:�"test_locale_calendar_formatweekdayz3CalendarTestCase.test_locale_calendar_formatweekday7s^��	C��-�W�=�=�=�C����S�.�.�q�!�4�4�c�:�:�:����S�.�.�q�!�4�4�d�;�;�;����S�.�.�q�!�4�4�e�<�<�<����S�.�.�q�!�4�4�g�>�>�>����S�.�.�q�!�4�4�j�A�A�A����S�.�.�q�!�4�4�k�B�B�B����S�.�.�q�"�5�5�|�D�D�D�D�D���|�	C�	C�	C��#�$A�B�B�B�	C���s�D;D?�?$E#c�D�	tjd���}|�ddd��}n'#tj$rtjd���wxYw|�d|��d|_|�ddd��}|�d|��dS)	Nr�r�r�rr�z
class="month"�text-center month�class="text-center month")	rJr�r�r�r�r�r��assertIn�cssclass_month_head)rArUr�s   r:�5test_locale_html_calendar_custom_css_class_month_namezFCalendarTestCase.test_locale_html_calendar_custom_css_class_month_nameHs���	L��-�R�8�8�8�C��-�-�d�B��;�;�K�K���|�	L�	L�	L��#�$J�K�K�K�	L����	
�
�
�o�{�3�3�3�"5����)�)�$��B�7�7���
�
�1�;�?�?�?�?�?s	�,/�$Ac�@�	tjd���}|�d��}n'#tj$rtjd���wxYw|�d|��gd�|_|�d��}|�d|��dS)Nr�r�rr�zclass="sun")�mon2�tue2�wed2�thu2�fri2�sat2�sun2zclass="sun2")	rJr�r�r�r�r�r�r�cssclasses_weekday_head)rArUr�s   r:�2test_locale_html_calendar_custom_css_class_weekdayzCCalendarTestCase.test_locale_html_calendar_custom_css_class_weekdayTs���	L��-�R�8�8�8�C��-�-�a�0�0�M�M���|�	L�	L�	L��#�$J�K�K�K�	L����	
�
�
�m�]�3�3�3�&^�&^�&^��#��)�)�!�,�,�
��
�
�n�m�4�4�4�4�4s	�*-�$Ac��ttj���tjd����dS)Nr)r�rJr��itermonthdays3�datetime�MAXYEARr]s r:�test_itermonthdays3z$CalendarTestCase.test_itermonthdays3`s2���X�
�
 �
 �
/�
/��0@�"�
E�
E�F�F�F�F�Fr<c���tjd���}t|�dd����}|�|dd��|�|dd��dS)	Nr�r�r�rr)r�rr
rr�)r�rr%r)rJr�r��itermonthdays4rO)rArU�dayss   r:�test_itermonthdays4z$CalendarTestCase.test_itermonthdays4dsm����Q�/�/�/���C�&�&�t�Q�/�/�0�0������a��/�2�2�2�����b��#3�4�4�4�4�4r<c	��td��D]d}tj|��}dD]K\}}t|�||����}|�t
|��d���L�etjd���}t|�dd����}|�|ttdd	������dS)
Nr�)r
r
)i'r)�#�*rrr�rr
r&)�rangerJr�r��
itermonthdaysrr�rO�rAr�rUr~�mrs      r:�test_itermonthdaysz#CalendarTestCase.test_itermonthdaysjs���!�!�H�H�	3�	3�L��#�L�1�1�C�,�
3�
3���1��C�-�-�a��3�3�4�4���
�
�c�$�i�i��2�2�2�2�
3���Q�/�/�/���C�%�%�d�A�.�.�/�/������t�E�!�R�L�L�1�1�2�2�2�2�2r<c�<�td��D]�}tj|��}dD]r\}}t|�||����}|�|dd|��|�|dd|dz
dz���s��dS)Nrrrr
r�)rrJr�r��itermonthdays2rOrs      r:�test_itermonthdays2z$CalendarTestCase.test_itermonthdays2vs���!�!�H�H�	F�	F�L��#�L�1�1�C�,�
F�
F���1��C�.�.�q�!�4�4�5�5��� � ��a����\�:�:�:�� � ��b��!��|�a�/?�1�.D�E�E�E�E�
F�	F�	Fr<c�"�ttd����}td��D]b}tj|��}t|�����}||d�|d|�z}|�||���cdS)Nr)r�rrJr��iterweekdaysrO)rA�week0r�rUr��expecteds      r:�test_iterweekdaysz"CalendarTestCase.test_iterweekdayss����U�1�X�X����!�!�H�H�	-�	-�L��#�L�1�1�C���(�(�*�*�+�+�D��\�]�]�+�e�M�\�M�.B�B�H����T�8�,�,�,�,�		-�	-r<N)r�r�r�r�r�r�r�r�r�r�r�rrrrr!r$r)rIr<r:r�r��s
������3�3�3�	'�	'�	'�*�*�*�A�A�A�
A�A�A�	A�	A�	A�3�3�3�.C�C�C�"
@�
@�
@�
5�
5�
5�G�G�G�5�5�5�
3�
3�
3�F�F�F�-�-�-�-�-r<r�c� �eZdZd�Zd�Zd�ZdS)�MonthCalendarTestCasec�h�tj��|_tj|j��dSr6)rJr��oldfirstweekdayr�r]s r:�setUpzMonthCalendarTestCase.setUp�s-��'�4�6�6���� ��!2�3�3�3�3�3r<c�8�tj|j��dSr6)rJr�r-r]s r:�tearDownzMonthCalendarTestCase.tearDown�s��� ��!5�6�6�6�6�6r<c	�@�tj||��}|�t|��t|����t	t|����D];}|�||td�||D�������<dS)Nc3�"K�|]
}|dkV��dS)rNrI)rxrus  r:rzz4MonthCalendarTestCase.check_weeks.<locals>.<genexpr>�s&����*F�*F��3�!�8�*F�*F�*F�*F�*F�*Fr<)rJ�
monthcalendarrOr�r�sum)rArr�weeksrU�is      r:�check_weeksz!MonthCalendarTestCase.check_weeks�s����$�T�5�1�1������S���3�u�:�:�.�.�.��s�5�z�z�"�"�	H�	H�A����U�1�X�s�*F�*F�s�1�v�*F�*F�*F�'F�'F�G�G�G�G�	H�	Hr<N)r�r�r�r.r0r7rIr<r:r+r+�sF������4�4�4�7�7�7�H�H�H�H�Hr<r+c�.�eZdZejZd�Zd�Zd�ZdS)�MondayTestCasec��|�ddd��|�ddd��|�ddd��|�ddd	��|�d
dd��|�ddd
��dS)N��r�rrrri��rrrrr
���r
rrrr���rrrrr
i��rrrrrrH�r
rrrr�r7r]s r:�
test_februaryzMondayTestCase.test_february��������q�,�/�/�/�	
����q�/�2�2�2�	
����q�/�2�2�2�	
����q�/�2�2�2�	
����q�/�2�2�2�	
����q�/�2�2�2�2�2r<c���|�ddd��|�ddd��|�ddd��|�ddd	��|�d
dd��dS)Ni�r
�rrrrri��rrrrri��r
rrrrr
���rrrrri��rrrrrrDr]s r:�
test_aprilzMondayTestCase.test_april��������q�/�2�2�2�	
����q�/�2�2�2�	
����q�"4�5�5�5�	
����q�/�2�2�2�	
����q�/�2�2�2�2�2r<c��|�ddd��|�ddd��|�ddd��|�ddd	��|�d
dd��|�ddd
��dS)Ni�r�rrrrrr>�rrrrr
i��r
rrrrrr@�r
rrrr���rrrrri�rrrrrr
rDr]s r:�
test_decemberzMondayTestCase.test_december��������r�?�3�3�3�	
����r�?�3�3�3�	
����r�#5�6�6�6�	
����r�?�3�3�3�	
����r�?�3�3�3�	
����r�#5�6�6�6�6�6r<N)	r�r�r�rJr�r�rErNrXrIr<r:r9r9��H�������?�L�3�3�3�&3�3�3� 7�7�7�7�7r<r9c�.�eZdZejZd�Zd�Zd�ZdS)�SundayTestCasec��|�ddd��|�ddd��|�ddd��|�ddd	��|�d
dd��|�ddd
��dS)Ni�rr<r;r=��r?rHrA�rBi�rCrDr]s r:rEzSundayTestCase.test_february�rFr<c���|�ddd��|�ddd��|�ddd��|�ddd	��|�d
dd��dS)N�r
rHi~rIi�rJr_rLiurMrDr]s r:rNzSundayTestCase.test_april�rOr<c��|�ddd��|�ddd��|�ddd��|�ddd	��|�d
dd��|�ddd
��dS)Ni rrQi�rRrarSi�rTi�rVrKrWrDr]s r:rXzSundayTestCase.test_december�rYr<N)	r�r�r�rJr�r�rErNrXrIr<r:r\r\�rZr<r\c��eZdZgd�Zd�ZdS)�TimegmTestCase)
rr�di�i'i��i@Bi��Ii;=Ki��
Lc��|jD]>}tj|��}|�|t	j|�����?dSr6)�
TIMESTAMPS�time�gmtimerOrJ�timegm)rA�secs�tuples   r:�test_timegmzTimegmTestCase.test_timegm
sO���O�	;�	;�D��K��%�%�E����T�8�?�5�#9�#9�:�:�:�:�	;�	;r<N)r�r�r�rgrmrIr<r:rdrd
s4������7�7�7�J�;�;�;�;�;r<rdc�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�MonthRangeTestCasec�X�|�tjdd��d��dS)NrHr
)rr(�rOrJ�
monthranger]s r:�test_januaryzMonthRangeTestCase.test_january�+������,�T�!�4�4�f�=�=�=�=�=r<c�X�|�tjdd��d��dS)NrHr)rr&rqr]s r:�test_february_leapz%MonthRangeTestCase.test_february_leaprtr<c�X�|�tjdd��d��dS)Nr�r)rr%rqr]s r:�test_february_nonleapz(MonthRangeTestCase.test_february_nonleaprtr<c�X�|�tjdd��d��dS)NrHr)rr(rqr]s r:rXz MonthRangeTestCase.test_decembers+������,�T�"�5�5�v�>�>�>�>�>r<c��|�tj��5tjdd��ddd��dS#1swxYwYdSrZ�r�rJ�IllegalMonthErrorrrr]s r:�test_zeroth_monthz$MonthRangeTestCase.test_zeroth_month#s���
�
�
�x�9�
:�
:�	)�	)����a�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)��A�A�
Ac��|�tj��5tjdd��ddd��dS#1swxYwYdS)NrHrr{r]s r:�test_thirteenth_monthz(MonthRangeTestCase.test_thirteenth_month(s���
�
�
�x�9�
:�
:�	*�	*����b�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*r~c��|�tjd��5tjdd��ddd��dS#1swxYwYdS)N�65rH�A)r�rJr|rrr]s r:�test_illegal_month_reportedz.MonthRangeTestCase.test_illegal_month_reported-s���
�
#�
#�H�$>��
E�
E�	*�	*����b�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�A�A�AN)
r�r�r�rsrvrxrXr}r�r�rIr<r:roros}������>�>�>�>�>�>�>�>�>�?�?�?�)�)�)�
*�*�*�
*�*�*�*�*r<roc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�LeapdaysTestCasec�X�|�tjdd��d��dS)Nr�r�rOrJ�leapdaysr]s r:�
test_no_rangezLeapdaysTestCase.test_no_range2�+������*�4��5�5�q�9�9�9�9�9r<c�X�|�tjdd��d��dS)Nr�i�rr�r]s r:�test_no_leapdaysz!LeapdaysTestCase.test_no_leapdays6r�r<c�X�|�tjdd��d��dS)Nr���rr�r]s r:�test_no_leapdays_upper_boundaryz0LeapdaysTestCase.test_no_leapdays_upper_boundary:r�r<c�X�|�tjdd��d��dS)Nr�i�r
r�r]s r:�test_one_leapday_lower_boundaryz0LeapdaysTestCase.test_one_leapday_lower_boundary>r�r<c�X�|�tjdd��d��dS)Nr^i�rr�r]s r:�test_several_leapyears_in_rangez0LeapdaysTestCase.test_several_leapyears_in_rangeBs+������*�4��5�5�q�9�9�9�9�9r<N)r�r�r�r�r�r�r�r�rIr<r:r�r�1s_������:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:r<r�c�f�|�dtj�����S)N�
)�replace�os�lineseprR)rBs r:�convr�Fs$���9�9�T�2�:�&�&�-�-�/�/�/r<c�t�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�ZdS)�CommandLineTestCasec�*�tddg|�R�dS)N�-mrJr
)r)rA�argss  r:�run_okzCommandLineTestCase.run_okJs����j�8�4�8�8�8��;�;r<c��tddg|�R�\}}}|�d|��|�|d��dS)Nr�rJ�usage:r)rrrO)rAr��rc�stdout�stderrs     r:�
assertFailurez!CommandLineTestCase.assertFailureMsP��2�4��K�d�K�K�K���F�F��
�
�i��(�(�(�����Q�����r<c��|�d��}|�d|��|�d|��|�d|��dS)Nz-hr�scalendar.pys--help)r�r�rAr�s  r:�	test_helpzCommandLineTestCase.test_helpRsU�����T�"�"���
�
�i��(�(�(��
�
�n�f�-�-�-��
�
�i��(�(�(�(�(r<c��|�d��|�d��|�dd��|�dddd��dS)Nz-z�spam�2004�-t�htmlr�)r�r]s r:�test_illegal_argumentsz*CommandLineTestCase.test_illegal_argumentsXs`�����4� � � ����6�"�"�"����6�6�*�*�*����4����5�5�5�5�5r<c�"�|���}tj���j}|�d|z���|��|�d|��|�d|��dS)Nz %ssJanuarysMo Tu We Th Fr Sa Su�r�r�nowrrrR�rAr�rs   r:�test_output_current_yearz,CommandLineTestCase.test_output_current_year^sy��������� �$�$�&�&�+���
�
�u�t�|�+�+�-�-�v�6�6�6��
�
�j�&�)�)�)��
�
�-�v�6�6�6�6�6r<c��|�d��}|�|tt����dS)Nr�)r�rOr�r[r�s  r:�test_output_yearz$CommandLineTestCase.test_output_yeares8�����V�$�$�������&6�!7�!7�8�8�8�8�8r<c��|�dd��}|�|tt����dS)Nr�r�)r�rOr�r�r�s  r:�test_output_monthz%CommandLineTestCase.test_output_monthis:�����V�S�)�)�������&9�!:�!:�;�;�;�;�;r<c���|�d��|�d��|�ddd��}|�|t�d����dS)Nz-e�
--encodingz	utf-16-ler�)r�r�rOr[rRr�s  r:�test_option_encodingz(CommandLineTestCase.test_option_encodingmsj�����4� � � ����<�(�(�(����\�;��?�?������!1�!8�!8��!E�!E�F�F�F�F�Fr<c��|�d��|�d��|�dd��tj��\}}|pd}|pd}	tjtj��}	tjtj||f��tjtj|��n$#tjtj|��wxYwn1#tjtf$r|�d��YnwxYw|�d|d|d��}|�	d�
|��|��dS)	Nz-Lz--locale�en�CzUTF-8r�r�r�)r�r��	getlocale�LC_TIME�	setlocaler�r��skipTestr�rrR)rA�lang�enc�	oldlocaler�s     r:�test_option_localez&CommandLineTestCase.test_option_localessN�����4� � � ����:�&�&�&����4��&�&�&��$�&�&�	��c��{�s���n�W��	B��(���8�8�I�
<�� ���$���=�=�=�� ����;�;�;�;��� ����;�;�;�;����;����j�)�	B�	B�	B��M�M�@�A�A�A�A�A�	B�������Z��|�S�&�I�I���
�
�f�m�m�C�(�(�&�1�1�1�1�1s*� C%�?!C�  C%�!C!�!C%�%+D�Dc���|�d��|�d��|�dd��|�ddd��}|�d|��dS)Nz-wz--widthr�r�r�sMon Tue Wed Thu Fri Sat Sun�r�r�rr�s  r:�test_option_widthz%CommandLineTestCase.test_option_width�sp�����4� � � ����9�%�%�%����4��(�(�(����Y��V�4�4���
�
�4�f�=�=�=�=�=r<c��|�d��|�d��|�dd��|�ddd��}|�td��|��dS)Nz-lz--linesr�r�r�zDecember

Mo Tu We�r�r�rr�r�s  r:�test_option_linesz%CommandLineTestCase.test_option_lines�sx�����4� � � ����9�%�%�%����4��(�(�(����Y��V�4�4���
�
�d�1�2�2�F�;�;�;�;�;r<c���|�d��|�d��|�dd��|�ddd��}|�d|��dS)Nz-sz	--spacingr��8r�sSu        Mor�r�s  r:�test_option_spacingz'CommandLineTestCase.test_option_spacing�so�����4� � � ����;�'�'�'����4��(�(�(����[�#�v�6�6���
�
�o�v�.�.�.�.�.r<c��|�d��|�d��|�dd��|�ddd��}|�td��|��dS)Nr�z--monthr�z--monthsr�r�z
Mo Tu We Th Fr Sa Su
r�r�s  r:�test_option_monthsz&CommandLineTestCase.test_option_months�sx�����4� � � ����9�%�%�%����4��(�(�(����Z��f�5�5���
�
�d�5�6�6��?�?�?�?�?r<c��|�d��|�d��|�dd��|�ddd��}|�|tt����|�ddd��}|�|dd�d��|�d	|��dS)
Nr��--typer��textr�r�rs<?xml s <title>Calendar for 2004</title>)r�r�rOr�r[rr�s  r:�test_option_typez$CommandLineTestCase.test_option_type�s������4� � � ����8�$�$�$����4��(�(�(����X�v�v�6�6�������&6�!7�!7�8�8�8����X�v�v�6�6����������Y�/�/�/��
�
�9�6�B�B�B�B�Br<c��|�dd��}tj���j}|�d|z���|��|�d|��dS)Nr�r�z<title>Calendar for %s</title>s3<tr><th colspan="7" class="month">January</th></tr>r�r�s   r:�test_html_output_current_yearz1CommandLineTestCase.test_html_output_current_year�s�����X�v�.�.��� �$�$�&�&�+���
�
�7�$�>�F�F�H�H��	�	�	��
�
�L��	�	�	�	�	r<c��|�ddddd��}|�|tjdit���d����dS)Nr�r�r�rr�rI)r�rOrPrQrLrRr�s  r:�test_html_output_year_encodingz2CommandLineTestCase.test_html_output_year_encoding�sf�����T�6�<��&�I�I������)�0�B�B�>�B�B�I�I�'�R�R�	T�	T�	T�	T�	Tr<c��|�ddd��|�ddd��|�ddddd��}|�d|��dS)Nr�r�z-cz--cssz
custom.cssr�s;<link rel="stylesheet" type="text/css" href="custom.css" />r�r�s  r:�test_html_output_year_cssz-CommandLineTestCase.test_html_output_year_css�ss�����4���.�.�.����4���1�1�1����T�6�7�L�&�I�I���
�
�.�/5�	7�	7�	7�	7�	7r<N)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rIr<r:r�r�Is������<�<�<� � � �
)�)�)�6�6�6�7�7�7�9�9�9�<�<�<�G�G�G�2�2�2�&>�>�>�<�<�<�/�/�/�@�@�@�C�C�C����T�T�T�
7�7�7�7�7r<r�c��eZdZd�ZdS)�MiscTestCasec�F�hd�}tj|t|���dS)N>r9�mainr��EPOCH�mdaysrQr��January�February�monthlen�	nextmonth�	prevmonth�formatstring�different_locale)�not_exported)r�check__all__rJ)rAr�s  r:�test__all__zMiscTestCase.test__all__�s6��J�J�J��	��T�8�,�G�G�G�G�G�Gr<N)r�r�r�r�rIr<r:r�r��s(������H�H�H�H�Hr<r�c�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�TestSubClassingCasec�T�Gd�dtj��}|��|_dS)Nc�R�eZdZd�ejjD��Zgd�ZdZdZdZ	dZ
dS)�0TestSubClassingCase.setUp.<locals>.CustomHTMLCalc��g|]}|dz��S)z text-nowraprI)rx�styles  r:r}z;TestSubClassingCase.setUp.<locals>.CustomHTMLCal.<listcomp>�s)��<�<�<�U�%�.�0�<�<�<r<)�red�blue�green�lilac�yellow�orange�pinkztext-center month-headrztext-italic zlead N)r�r�r�rJrK�
cssclassesr
r�cssclass_month�
cssclass_year�cssclass_year_headrIr<r:�
CustomHTMLCalr��s_������<�<�"�/�:�<�<�<�J�'C�'C�'C�#�":��0�N�*�M�!(���r<r�)rJrKrU)rAr�s  r:r.zTestSubClassingCase.setUp�sB��	)�	)�	)�	)�	)�H�1�	)�	)�	)�!�=�?�?����r<c�d�|�d|j�dd����dS)Nzclass="text-center month-head"rUr)rrUr�r]s r:�test_formatmonthnamez(TestSubClassingCase.test_formatmonthname�s:���
�
�6��h�.�.�t�Q�7�7�	9�	9�	9�	9�	9r<c�d�|�d|j�dd����dS)NrrUr)rrUr�r]s r:r�z$TestSubClassingCase.test_formatmonth�s:���
�
�1��h�*�*�4��3�3�	5�	5�	5�	5�	5r<c��|j�dd��}|�d|j�|d����dS)NrUrzclass="wed text-nowrap"r)rU�monthdays2calendarr�
formatweek)rAr5s  r:�test_formatweekz#TestSubClassingCase.test_formatweek�sH����+�+�D�!�4�4���
�
�/���1D�1D�U�1�X�1N�1N�O�O�O�O�Or<c��|j���}|jjD]}|�d|z|���dS)Nz<th class="%s">)rUr�r
r)rA�header�colors   r:�test_formatweek_headz(TestSubClassingCase.test_formatweek_head�sP����*�*�,�,���X�5�	=�	=�E��M�M�+�e�3�V�<�<�<�<�	=�	=r<c�|�|�d|jjz|j�d����dS)Nz=<table border="0" cellpadding="0" cellspacing="0" class="%s">rU)rrUr�rar]s r:�test_format_yearz$TestSubClassingCase.test_format_year�sJ���
�
�
L�
�X�
#�$�&*�h�&9�&9�$�&?�&?�	A�	A�	A�	A�	Ar<c��|�dd|jjdfz|j�d����dS)Nz,<tr><th colspan="%d" class="%s">%s</th></tr>rrU)rrUr�rar]s r:�test_format_year_headz)TestSubClassingCase.test_format_year_head�sT���
�
�D�
�t�x�*�D�H2�2�37�8�3F�3F�t�3L�3L�	N�	N�	N�	N�	Nr<N)
r�r�r�r.rr�rr	rr
rIr<r:r�r��s�������#�#�#�9�9�9�5�5�5�P�P�P�=�=�=�
A�A�A�
N�N�N�N�Nr<r��__main__)$rJr��testr�test.support.script_helperrrrhr�rjrr�r�r\r�r[�dictrLrPr�r��TestCaser3r�r+r9r\rdror�r�r�r�r�r�r�rIr<r:�<module>rs�����������������N�N�N�N�N�N�N�N�����
�
�
�
�
�
�
�
�����	�	�	�	���%�
�N��$��N��6��7�C�C�C��{��|������"�"�"�"�"�"�!�!�!�	#�
������!�!�!�"�"�"�"�"�"�	$�
��� � � �"�"�"�"�"�"����	 �!�������"�"�"�"�"�"� � � �	"�
������"�"�"�"�"�"�"�"�"�����������"�"�"�"�"�"����	 �!� ������"�"�"�"�"�"�!�!�!�	#�
������!�!�!�"�"�"�"�"�"�����������"�"�"�"�"�"����	!�"� ������"�"�"�"�"�"�"�"�"�	$�
��� � � �"�"�"�"�"�"����	�
������"�"�"�"�"�"� � � �	"�#�a?��DI�I�I�
I�I�I�
I�I�I�J�I�I�I�
I�I�I�I�I�I�J� I�I�I�
I�I�I�I�I�I�J� I�I�I�
I�I�I�
I�I�I�J�_=K��BzB�zB�zB�zB�zB�X�&�zB�zB�zB�xY-�Y-�Y-�Y-�Y-�x�(�Y-�Y-�Y-�xH�H�H�H�H�H�-�H�H�H�77�77�77�77�77�*�77�77�77�t77�77�77�77�77�*�77�77�77�r;�;�;�;�;�X�&�;�;�;�*�*�*�*�*��*�*�*�*�>:�:�:�:�:�x�(�:�:�:�*0�0�0�u7�u7�u7�u7�u7�(�+�u7�u7�u7�pH�H�H�H�H�8�$�H�H�H�(N�(N�(N�(N�(N�(�+�(N�(N�(N�T�z����H�M�O�O�O�O�O��r<