§
    ÈtºfÆQ  ã                  ó,  — d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlmZ d dlmZ dZd	Z G d
„ dej        ¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        ZdS )é    )ÚannotationsN)ÚCallable)Úhelper)ÚBLINKÚBOLDÚG0ÚG1ÚG2ÚG3ÚNORMALÚREVERSE_VIDEOÚ	UNDERLINEÚmodesÚprivateModes)Úfailure)ÚunittestéP   é   c                  ó  — e Zd Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d	„Z	d&d
„Z
d&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d„Zd&d „Z d&d!„Z!d&d"„Z"d&d#„Z#d&d$„Z$d%S )'ÚBufferTestsÚreturnÚNonec                óh   — t          j        ¦   «         | _        | j                             ¦   «          d S ©N)r   ÚTerminalBufferÚtermÚconnectionMade©Úselfs    ú]/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/conch/test/test_helper.pyÚsetUpzBufferTests.setUp   s,   € ÝÔ)Ñ+Ô+ˆŒ	ØŒ	× Ò Ñ"Ô"Ð"Ð"Ð"ó    c                ód  — |                       | j        j        t          ¦  «         |                       | j        j        t
          ¦  «         |                       | j                             ¦   «         dt
          dz
  z  ¦  «         |                       | j                             ¦   «         d¦  «         d S )Nó   
é   ©r   r   )ÚassertEqualr   ÚwidthÚWIDTHÚheightÚHEIGHTÚ	__bytes__ÚreportCursorPositionr   s    r    ÚtestInitialStatezBufferTests.testInitialState#   sŽ   € Ø×Ò˜œœ­%Ñ0Ô0Ð0Ø×Ò˜œÔ)­6Ñ2Ô2Ð2Ø×Ò˜œ×,Ò,Ñ.Ô.°½À!¹Ñ0DÑEÔEÐEØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBÐBÐBr"   c                óv   — |                       t          j        dt          j        di| j        j        ¦  «         dS )zš
        Verify that only DEC Auto Wrap Mode (DECAWM) and DEC Text Cursor Enable
        Mode (DECTCEM) are initially in the Set Mode (SM) state.
        TN)r'   r   Ú	AUTO_WRAPÚCURSOR_MODEr   r   s    r    Útest_initialPrivateModesz$BufferTests.test_initialPrivateModes)   s@   € ð
 	×ÒÝÔ# T­<Ô+CÀTÐJØŒIÔ"ñ	
ô 	
ð 	
ð 	
ð 	
r"   c                óV  — | j                              d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         dS )zQ
        C{""} moves the cursor to the first column in the current row.
        é   é   ©r4   r5   ó   ©r   r5   N)r   ÚcursorForwardÚ
cursorDownr'   r-   ÚinsertAtCursorr   s    r    Útest_carriageReturnzBufferTests.test_carriageReturn3   s”   € ð 	Œ	×Ò Ñ"Ô"Ð"ØŒ	×Ò˜QÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	× Ò  Ñ'Ô'Ð'Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBÐBÐBr"   c                ó"  — | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         dS )zV
        C{"
"} moves the cursor to the next row without changing the column.
        r4   )r4   r   r$   ©r4   r%   N)r   r9   r'   r-   r;   r   s    r    Útest_linefeedzBufferTests.test_linefeed=   s~   € ð 	Œ	×Ò Ñ"Ô"Ð"Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	× Ò  Ñ'Ô'Ð'Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBÐBÐBr"   c                óV  — | j                              d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         dS )z:
        C{write} transforms C{"
"} into C{"
"}.
        r4   r5   r6   r$   ©r   é   N)r   r9   r:   r'   r-   Úwriter   s    r    Útest_newlinezBufferTests.test_newlineF   s’   € ð 	Œ	×Ò Ñ"Ô"Ð"ØŒ	×Ò˜QÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	�Š˜ÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBÐBÐBr"   c                ó  — | j         j                             ¦   «         }| j                              t          j        t          j        g¦  «         d|t          j        <   d|t          j        <   |                      || j         j        ¦  «         dS )z›
        Verify that L{helper.TerminalBuffer.setPrivateModes} changes the Set
        Mode (SM) state to "set" for the private modes it is passed.
        TN)r   r   ÚcopyÚsetPrivateModesÚSCROLLÚSCREENr'   ©r   Úexpecteds     r    Útest_setPrivateModesz BufferTests.test_setPrivateModesP   sv   € ð
 ”9Ô)×.Ò.Ñ0Ô0ˆØŒ	×!Ò!¥<Ô#6½Ô8KÐ"LÑMÔMÐMØ(,ˆ•Ô$Ñ%Ø(,ˆ•Ô$Ñ%Ø×Ò˜ 4¤9Ô#9Ñ:Ô:Ð:Ð:Ð:r"   c                ó  — | j         j                             ¦   «         }| j                              t          j        t          j        g¦  «         |t          j        = |t          j        = |                      || j         j        ¦  «         dS )zŸ
        Verify that L{helper.TerminalBuffer.resetPrivateModes} changes the Set
        Mode (SM) state to "reset" for the private modes it is passed.
        N)r   r   rF   ÚresetPrivateModesr0   r1   r'   rJ   s     r    Útest_resetPrivateModesz"BufferTests.test_resetPrivateModes[   sr   € ð
 ”9Ô)×.Ò.Ñ0Ô0ˆØŒ	×#Ò#¥\Ô%;½\Ô=UÐ$VÑWÔWÐWØ•\Ô+Ð,Ø•\Ô-Ð.Ø×Ò˜ 4¤9Ô#9Ñ:Ô:Ð:Ð:Ð:r"   c                óÌ  — | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              ¦   «          |                      | j                              ¦   «         d¦  «         | j                              t          ¦  «         |                      | j                              ¦   «         dt          dz
  f¦  «         d S )Nr5   r8   rA   r   r%   )r   r:   r'   r-   r+   r   s    r    ÚtestCursorDownzBufferTests.testCursorDownf   s¼   € ØŒ	×Ò˜QÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	×ÒÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	×Ò�VÑ$Ô$Ð$Ø×Ò˜œ×7Ò7Ñ9Ô9¸A½vÈ¹z¸?ÑKÔKÐKÐKÐKr"   c                óä  — | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         d S )Nr4   r&   é   r%   )r   é   rT   )r   ÚcursorUpr'   r-   r:   r   s    r    ÚtestCursorUpzBufferTests.testCursorUpn   sÌ   € ØŒ	×Ò˜1ÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBàŒ	×Ò˜RÑ Ô Ð ØŒ	×Ò˜1ÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸7ÑCÔCÐCàŒ	×Ò˜2ÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBÐBÐBr"   c                óÈ  — | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              t          ¦  «         |                      | j                              ¦   «         t          df¦  «         d S )Né   )rX   r   )rB   r   r   )r   r9   r'   r-   r)   r   s    r    ÚtestCursorForwardzBufferTests.testCursorForwardy   sº   € ØŒ	×Ò Ñ"Ô"Ð"Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	×Ò Ñ"Ô"Ð"Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	×Ò¥Ñ&Ô&Ð&Ø×Ò˜œ×7Ò7Ñ9Ô9½EÀ1¸:ÑFÔFÐFÐFÐFr"   c                ór  — | j                              d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         d S )Né
   rX   )é   r   é   )r%   r   r%   r&   )r   r9   ÚcursorBackwardr'   r-   r   s    r    ÚtestCursorBackwardzBufferTests.testCursorBackward�   s  € ØŒ	×Ò Ñ#Ô#Ð#ØŒ	× Ò  Ñ#Ô#Ð#Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	× Ò  Ñ#Ô#Ð#Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	× Ò  Ñ#Ô#Ð#Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	× Ò  Ñ#Ô#Ð#Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBÐBÐBr"   c                ó–   — | j                              dd¦  «         |                      | j                              ¦   «         d¦  «         d S )Nr5   é	   )r5   ra   )r   ÚcursorPositionr'   r-   r   s    r    ÚtestCursorPositioningz!BufferTests.testCursorPositioningŒ   sD   € ØŒ	× Ò   AÑ&Ô&Ð&Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBÐBÐBr"   c                óº   — d}| j                              |¦  «         |                      | j                              ¦   «         |dz   dt          dz
  z  z   ¦  «         d S )Nó   Hello, world.r$   rX   )r   rC   r'   r,   r+   ©r   Úss     r    ÚtestSimpleWritingzBufferTests.testSimpleWriting�   sW   € ØˆØŒ	�Š˜ÑÔÐØ×Ò˜œ×,Ò,Ñ.Ô.°°E±	¸EÅVÈaÁZÑ<PÑ0PÑQÔQÐQÐQÐQr"   c                óœ  — d}| j                              |¦  «         | j                              t          |¦  «        ¦  «         | j                              t
          j        g¦  «         | j                              d¦  «         |                      | j                              ¦   «         d|dd …         z   dz   dt          dz
  z  z   ¦  «         d S )Ns   hello, world.ó   Hr%   r$   rX   )
r   rC   r^   ÚlenÚ
resetModesr   ÚIRMr'   r,   r+   rf   s     r    ÚtestOvertypezBufferTests.testOvertype•   s¹   € ØˆØŒ	�Š˜ÑÔÐØŒ	× Ò ¥ Q¡¤Ñ(Ô(Ð(ØŒ	×Ò�eœi˜[Ñ)Ô)Ð)ØŒ	�Š˜ÑÔÐØ×ÒØŒI×ÒÑ!Ô! D¨1¨Q¨R¨R¬5¡L°EÑ#9¸EÅVÈaÁZÑ<PÑ#Pñ	
ô 	
ð 	
ð 	
ð 	
r"   c                óŒ  — d}| j                              |¦  «         | j                              t          |¦  «        ¦  «         | j                              t
          j        g¦  «         | j                              d¦  «         |                      | j                              ¦   «         d|z   dz   dt          dz
  z  z   ¦  «         d S )Ns   ello, world.rj   r$   rX   )
r   rC   r^   rk   ÚsetModesr   rm   r'   r,   r+   rf   s     r    Ú
testInsertzBufferTests.testInsertŸ   s±   € ØˆØŒ	�Š˜ÑÔÐØŒ	× Ò ¥ Q¡¤Ñ(Ô(Ð(ØŒ	×Ò�EœI˜;Ñ'Ô'Ð'ØŒ	�Š˜ÑÔÐØ×ÒØŒI×ÒÑ!Ô! D¨1¡H°Ñ#5¸ÅÈ!ÁÑ8LÑ#Lñ	
ô 	
ð 	
ð 	
ð 	
r"   c                óH  — d}| j                              d¦  «         | j                              d¦  «         | j                              |¦  «         |                      | j                              ¦   «         d| j         j        dz  z   |z   dz   dt          dz
  z  z   ¦  «         d S )Nre   r4   s   




r$   r]   )r   r:   r9   rC   r'   r,   Úfillr+   rf   s     r    ÚtestWritingInTheMiddlez"BufferTests.testWritingInTheMiddle©   s£   € ØˆØŒ	×Ò˜QÑÔÐØŒ	×Ò Ñ"Ô"Ð"ØŒ	�Š˜ÑÔÐØ×ÒØŒI×ÒÑ!Ô!Ø˜œœ¨!Ñ+Ñ,¨qÑ0°5Ñ8¸5ÅFÈQÁJÑ;OÑOñ	
ô 	
ð 	
ð 	
ð 	
r"   c                óZ  — d}| j                              t          dz
  ¦  «         | j                              |¦  «         |                      | j                              ¦   «         |d d…                              t          ¦  «        dz   |dd …         z   dz   dt          dz
  z  z   ¦  «         d S )Nre   r4   r$   r5   )r   r9   r)   rC   r'   r,   Úrjustr+   rf   s     r    ÚtestWritingWrappedAtEndOfLinez)BufferTests.testWritingWrappedAtEndOfLine³   s¤   € ØˆØŒ	×Ò¥¨¡	Ñ*Ô*Ð*ØŒ	�Š˜ÑÔÐØ×ÒØŒI×ÒÑ!Ô!ØˆbˆqˆbŒE�KŠK�ÑÔ Ñ&¨¨1¨2¨2¬Ñ.°Ñ6¸Å&È1Á*Ñ9MÑMñ	
ô 	
ð 	
ð 	
ð 	
r"   c                óÞ  — | j                              ¦   «          |                      | j                              ¦   «         d¦  «         | j                              t
          ¦  «         |                      | j                              ¦   «         dt
          dz
  f¦  «         | j                              ¦   «          |                      | j                              ¦   «         dt
          dz
  f¦  «         d S )N©r   r%   r   r%   )r   Úindexr'   r-   r:   r+   r   s    r    Ú	testIndexzBufferTests.testIndex¼   s¾   € ØŒ	�ŠÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	×Ò�VÑ$Ô$Ð$Ø×Ò˜œ×7Ò7Ñ9Ô9¸A½vÈ¹z¸?ÑKÔKÐKØŒ	�ŠÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸A½vÈ¹z¸?ÑKÔKÐKÐKÐKr"   c                ó¬  — | j                              ¦   «          |                      | j                              ¦   «         d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              ¦   «          |                      | j                              ¦   «         d¦  «         d S )Nr&   rX   ©r   rX   ry   )r   ÚreverseIndexr'   r-   r:   r   s    r    ÚtestReverseIndexzBufferTests.testReverseIndexÄ   s²   € ØŒ	×ÒÑ Ô Ð Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	×Ò˜QÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	×ÒÑ Ô Ð Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBÐBÐBr"   c                ó¬  — | j                              ¦   «          |                      | j                              ¦   «         d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              ¦   «          |                      | j                              ¦   «         d¦  «         dS )zm
        C{nextLine} positions the cursor at the beginning of the row below the
        current row.
        ry   r4   r>   r}   N)r   ÚnextLiner'   r-   r9   r   s    r    Útest_nextLinezBufferTests.test_nextLineÌ   s´   € ð
 	Œ	×ÒÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	×Ò Ñ"Ô"Ð"Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	×ÒÑÔÐØ×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBÐBÐBr"   c                óH  — | j                              d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              ¦   «          | j                              d¦  «         | j                              d¦  «         |                      | j                              ¦   «         d¦  «         | j                              ¦   «          |                      | j                              ¦   «         d¦  «         d S )Nr4   r]   )r]   r4   r5   )rB   é   )r   r:   r9   r'   r-   Ú
saveCursorr^   ÚrestoreCursorr   s    r    ÚtestSaveCursorzBufferTests.testSaveCursorØ   sô   € ØŒ	×Ò˜QÑÔÐØŒ	×Ò Ñ"Ô"Ð"Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBØŒ	×ÒÑÔÐØŒ	×Ò˜QÑÔÐØŒ	× Ò  Ñ#Ô#Ð#Ø×Ò˜œ×7Ò7Ñ9Ô9¸7ÑCÔCÐCØŒ	×ÒÑ!Ô!Ð!Ø×Ò˜œ×7Ò7Ñ9Ô9¸6ÑBÔBÐBÐBÐBr"   c                óº  — | j                              ¦   «          | j                              d¦  «         | j                              dd¦  «        }|                      |d         d¦  «         |                      |d         j        t          ¦  «         | j                              dd¦  «        }|                      |d         d¦  «         |                      |d         j        t          ¦  «         | j                              ¦   «          | j                              d¦  «         | j                              dd¦  «        }|                      |d         d¦  «         |                      |d         j        t          ¦  «         | j                              d	d¦  «        }|                      |d         d¦  «         |                      |d         j        t          ¦  «         d S )
Ns   Hir   rj   r%   ó   is   !!rX   ó   !r5   )
r   ÚsingleShift2rC   ÚgetCharacterr'   Úcharsetr
   r   ÚsingleShift3r   ©r   Úchs     r    ÚtestSingleShiftszBufferTests.testSingleShiftsã   sŒ  € ØŒ	×ÒÑ Ô Ð ØŒ	�Š˜ÑÔÐàŒY×#Ò# A qÑ)Ô)ˆØ×Ò˜˜Aœ Ñ%Ô%Ð%Ø×Ò˜˜Aœœ­Ñ+Ô+Ð+àŒY×#Ò# A qÑ)Ô)ˆØ×Ò˜˜Aœ Ñ%Ô%Ð%Ø×Ò˜˜Aœœ­Ñ+Ô+Ð+àŒ	×ÒÑ Ô Ð ØŒ	�Š˜ÑÔÐàŒY×#Ò# A qÑ)Ô)ˆØ×Ò˜˜Aœ Ñ%Ô%Ð%Ø×Ò˜˜Aœœ­Ñ+Ô+Ð+àŒY×#Ò# A qÑ)Ô)ˆØ×Ò˜˜Aœ Ñ%Ô%Ð%Ø×Ò˜˜Aœœ­Ñ+Ô+Ð+Ð+Ð+r"   c           	     ót  — d}d}d}| j                              d¦  «         | j                              ¦   «          | j                              d¦  «         | j                              ¦   «          | j                              d¦  «         t          }d}|||fD ]¢}t          t          |¦  «        ¦  «        D ]e}| j                              ||¦  «        }|                      |d         |||dz   …         ¦  «         |                      |d         j	        |¦  «         Œf|t          k    rt          pt          }|dz  }Œ£d S )	Ns   Hellos   Worlds   Bye!s   Hello
s   World
s   Bye!
r   r%   )r   rC   ÚshiftOutÚshiftInr   Úrangerk   rŒ   r'   r�   r	   )	r   Ús1Ús2Ús3ÚgÚhrg   Úir�   s	            r    ÚtestShiftingzBufferTests.testShiftingú   s2  € ØˆØˆØˆØŒ	�Š˜
Ñ#Ô#Ð#ØŒ	×ÒÑÔÐØŒ	�Š˜
Ñ#Ô#Ð#ØŒ	×ÒÑÔÐØŒ	�Š˜	Ñ"Ô"Ð"åˆØˆØ�b˜"�ð 	ð 	ˆAÝ�3˜q™6œ6‘]”]ð 3ð 3�Ø”Y×+Ò+¨A¨qÑ1Ô1�Ø× Ò   A¤¨¨!¨a°!©e¨)¬Ñ5Ô5Ð5Ø× Ò   A¤¤°Ñ2Ô2Ð2Ð2Ø•R’��BÐ$¥"ˆAØ�‰FˆAˆAð	ð 	r"   c                óª  — | j                              t          t          t          t
          ¦  «         | j                              d¦  «         | j                              t          ¦  «         | j                              d¦  «         | j                              t          ¦  «         | j                              d¦  «         | j                              t          ¦  «         | j                              d¦  «         | j                              dd¦  «        }|  	                    |d         d¦  «         |  
                    |d         j        ¦  «         |  
                    |d         j        ¦  «         |  
                    |d         j        ¦  «         |  
                    |d         j        ¦  «         | j                              dd¦  «        }|  	                    |d         d¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         | j                              dd¦  «        }|  	                    |d         d¦  «         |  
                    |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         | j                              dd¦  «        }|  	                    |d         d¦  «         |  
                    |d         j        ¦  «         |  
                    |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         d S )	Nó   Wó   Xó   Yó   Zr   r%   rX   r5   )r   ÚselectGraphicRenditionr   r   r   r   rC   r   rŒ   r'   Ú
assertTrueÚboldÚ	underlineÚblinkÚreverseVideoÚassertFalser�   s     r    ÚtestGraphicRenditionz BufferTests.testGraphicRendition  s  € ØŒ	×(Ò(­­y½%ÅÑOÔOÐOØŒ	�Š˜ÑÔÐØŒ	×(Ò(­Ñ0Ô0Ð0ØŒ	�Š˜ÑÔÐØŒ	×(Ò(­Ñ/Ô/Ð/ØŒ	�Š˜ÑÔÐØŒ	×(Ò(­Ñ.Ô.Ð.ØŒ	�Š˜ÑÔÐàŒY×#Ò# A qÑ)Ô)ˆØ×Ò˜˜Aœ Ñ%Ô%Ð%Ø�Š˜˜1œœ
Ñ#Ô#Ð#Ø�Š˜˜1œœÑ(Ô(Ð(Ø�Š˜˜1œœÑ$Ô$Ð$Ø�Š˜˜1œÔ*Ñ+Ô+Ð+àŒY×#Ò# A qÑ)Ô)ˆØ×Ò˜˜Aœ Ñ%Ô%Ð%Ø×Ò˜˜AœœÑ$Ô$Ð$Ø×Ò˜˜AœœÑ)Ô)Ð)Ø×Ò˜˜AœœÑ%Ô%Ð%Ø×Ò˜˜AœÔ+Ñ,Ô,Ð,àŒY×#Ò# A qÑ)Ô)ˆØ×Ò˜˜Aœ Ñ%Ô%Ð%Ø�Š˜˜1œœÑ$Ô$Ð$Ø×Ò˜˜AœœÑ$Ô$Ð$Ø×Ò˜˜AœœÑ)Ô)Ð)Ø×Ò˜˜AœÔ+Ñ,Ô,Ð,àŒY×#Ò# A qÑ)Ô)ˆØ×Ò˜˜Aœ Ñ%Ô%Ð%Ø�Š˜˜1œœÑ$Ô$Ð$Ø�Š˜˜1œœ
Ñ#Ô#Ð#Ø×Ò˜˜AœœÑ)Ô)Ð)Ø×Ò˜˜AœÔ+Ñ,Ô,Ð,Ð,Ð,r"   c                óÎ  — d}d}| j                              t          j        t          j        z   t          j        t          j        z   ¦  «         | j                              |dz   ¦  «         | j                              t          ¦  «         | j                              |dz   ¦  «         t          t          |¦  «        ¦  «        D �]A}| j                              |d¦  «        }|                      |d         |||dz   …         ¦  «         |                      |d         j        t          ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        t          j        ¦  «         |                      |d         j        t          j        ¦  «         �ŒCt          t          |¦  «        ¦  «        D �]A}| j                              |d¦  «        }|                      |d         |||dz   …         ¦  «         |                      |d         j        t          ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        ¦  «         |                      |d         j        t          j        ¦  «         |                      |d         j        t          j        ¦  «         �ŒCd S )Ns
   Merry xmass   Just kiddingr$   r   r%   )r   r¢   r   Ú
FOREGROUNDÚREDÚ
BACKGROUNDÚGREENrC   r   r•   rk   rŒ   r'   r�   r   r¨   r¤   r¥   r¦   r§   Ú
foregroundÚ
backgroundÚWHITEÚBLACK)r   r–   r—   r›   r�   s        r    ÚtestColorAttributeszBufferTests.testColorAttributes4  sÍ  € ØˆØˆØŒ	×(Ò(ÝÔ¥¤
Ñ*­FÔ,=ÅÄÑ,Lñ	
ô 	
ð 	
ð 	Œ	�Š˜˜U™
Ñ#Ô#Ð#ØŒ	×(Ò(­Ñ0Ô0Ð0ØŒ	�Š˜˜U™
Ñ#Ô#Ð#å•s˜2‘w”w‘”ð 		=ñ 		=ˆAØ”×'Ò'¨¨1Ñ-Ô-ˆBØ×Ò˜R œU B q¨1¨q©5 y¤MÑ2Ô2Ð2Ø×Ò˜R œUœ]­BÑ/Ô/Ð/Ø×Ò˜R œUœZÑ(Ô(Ð(Ø×Ò˜R œUœ_Ñ-Ô-Ð-Ø×Ò˜R œUœ[Ñ)Ô)Ð)Ø×Ò˜R œUÔ/Ñ0Ô0Ð0Ø×Ò˜R œUÔ-­v¬zÑ:Ô:Ð:Ø×Ò˜R œUÔ-­v¬|Ñ<Ô<Ð<Ñ<å•s˜2‘w”w‘”ð 		=ñ 		=ˆAØ”×'Ò'¨¨1Ñ-Ô-ˆBØ×Ò˜R œU B q¨1¨q©5 y¤MÑ2Ô2Ð2Ø×Ò˜R œUœ]­BÑ/Ô/Ð/Ø×Ò˜R œUœZÑ(Ô(Ð(Ø×Ò˜R œUœ_Ñ-Ô-Ð-Ø×Ò˜R œUœ[Ñ)Ô)Ð)Ø×Ò˜R œUÔ/Ñ0Ô0Ð0Ø×Ò˜R œUÔ-­v¬|Ñ<Ô<Ð<Ø×Ò˜R œUÔ-­v¬|Ñ<Ô<Ð<Ñ<ð		=ð 		=r"   c                ón  — d}d}d}| j                              d                     |||f¦  «        dz   ¦  «         | j                              dd¦  «         | j                              ¦   «          |                      | j                              ¦   «         |dz   dz   |z   dz   dt          dz
  z  z   ¦  «         d S )Ns   line 1s   line 2s   line 3r$   r%   rB   )r   rC   Újoinrb   Ú	eraseLiner'   r,   r+   ©r   r–   r—   r˜   s       r    ÚtestEraseLinezBufferTests.testEraseLineT  s¿   € ØˆØˆØˆØŒ	�Š˜Ÿ
š
 B¨¨B <Ñ0Ô0°5Ñ8Ñ9Ô9Ð9ØŒ	× Ò   AÑ&Ô&Ð&ØŒ	×ÒÑÔÐà×ÒØŒI×ÒÑ!Ô!Ø�‰J˜Ñ Ñ# eÑ+¨eµvÀ±zÑ.BÑBñ	
ô 	
ð 	
ð 	
ð 	
r"   c                ó0  — d}| j                              |¦  «         | j                              d¦  «         | j                              ¦   «          |                      | j                              ¦   «         |d d…         dz   dt          dz
  z  z   ¦  «         d S )Nre   r4   éûÿÿÿr$   rX   )r   rC   r^   ÚeraseToLineEndr'   r,   r+   rf   s     r    ÚtestEraseToLineEndzBufferTests.testEraseToLineEnda  sŠ   € ØˆØŒ	�Š˜ÑÔÐØŒ	× Ò  Ñ#Ô#Ð#ØŒ	× Ò Ñ"Ô"Ð"Ø×Ò˜œ×,Ò,Ñ.Ô.°°#°2°#´¸±ÀÍ&ÐSTÉ*ÑAUÑ0UÑVÔVÐVÐVÐVr"   c                óp  — d}| j                              |¦  «         | j                              d¦  «         | j                              ¦   «          |                      | j                              ¦   «         |dd …                              t          |¦  «        ¦  «        dz   dt          dz
  z  z   ¦  «         d S )Nre   r4   éüÿÿÿr$   rX   )	r   rC   r^   ÚeraseToLineBeginningr'   r,   rv   rk   r+   rf   s     r    ÚtestEraseToLineBeginningz$BufferTests.testEraseToLineBeginningh  s¨   € ØˆØŒ	�Š˜ÑÔÐØŒ	× Ò  Ñ#Ô#Ð#ØŒ	×&Ò&Ñ(Ô(Ð(Ø×ÒØŒI×ÒÑ!Ô! 1 R S S¤6§<¢<µ°A±´Ñ#7Ô#7¸%Ñ#?À%Í6ÐTUÉ:ÑBVÑ#Vñ	
ô 	
ð 	
ð 	
ð 	
r"   c                ó  — | j                              d¦  «         | j                              d¦  «         | j                              ¦   «          |                      | j                              ¦   «         dt
          dz
  z  ¦  «         d S )Ns   Hello world
s   Goodbye world
r$   r%   )r   rC   ÚeraseDisplayr'   r,   r+   r   s    r    ÚtestEraseDisplayzBufferTests.testEraseDisplayq  ss   € ØŒ	�ŠÐ(Ñ)Ô)Ð)ØŒ	�ŠÐ*Ñ+Ô+Ð+ØŒ	×ÒÑ Ô Ð à×Ò˜œ×,Ò,Ñ.Ô.°½À!¹Ñ0DÑEÔEÐEÐEÐEr"   c                ón  — d}d}| j                              d                     ||df¦  «        ¦  «         | j                              dd¦  «         | j                              ¦   «          |                      | j                              ¦   «         |dz   |d d…         z   dz   dt          dz
  z  z   ¦  «         d S )Nó   Hello worldó   Goodbye worldr$   r"   r4   r%   r5   )r   rC   rµ   rb   ÚeraseToDisplayEndr'   r,   r+   ©r   r–   r—   s      r    ÚtestEraseToDisplayEndz!BufferTests.testEraseToDisplayEndx  s¸   € ØˆØˆØŒ	�Š˜Ÿ
š
 B¨¨C =Ñ1Ô1Ñ2Ô2Ð2ØŒ	× Ò   AÑ&Ô&Ð&ØŒ	×#Ò#Ñ%Ô%Ð%à×ÒØŒI×ÒÑ!Ô! 2¨¡:°°2°A°2´Ñ#6¸Ñ#>ÀÍ&ÐSTÉ*ÑAUÑ#Uñ	
ô 	
ð 	
ð 	
ð 	
r"   c           	     ó¦  — d}d}| j                              d                     ||f¦  «        ¦  «         | j                              dd¦  «         | j                              ¦   «          |                      | j                              ¦   «         d|dd …                              t          |¦  «        ¦  «        z   dz   dt          dz
  z  z   ¦  «         d S )NrÅ   rÆ   r$   r4   r%   é   r5   )
r   rC   rµ   rb   ÚeraseToDisplayBeginningr'   r,   rv   rk   r+   rÈ   s      r    ÚtestEraseToDisplayBeginningz'BufferTests.testEraseToDisplayBeginningƒ  sÄ   € ØˆØˆØŒ	�Š˜Ÿ
š
 B¨ 8Ñ,Ô,Ñ-Ô-Ð-ØŒ	× Ò   AÑ&Ô&Ð&ØŒ	×)Ò)Ñ+Ô+Ð+à×ÒØŒI×ÒÑ!Ô!Ø�B�q�r�r”F—L’L¥ R¡¤Ñ)Ô)Ñ)¨EÑ1°E½VÀa¹ZÑ4HÑHñ	
ô 	
ð 	
ð 	
ð 	
r"   c                ób  — d}d}| j                              d                     ||f¦  «        ¦  «         | j                              dd¦  «         | j                              ¦   «          |                      | j                              ¦   «         |dz   dz   |z   dz   dt          dz
  z  z   ¦  «         d S )NrÅ   rÆ   r$   r]   r%   rB   )r   rC   rµ   rb   Ú
insertLiner'   r,   r+   rÈ   s      r    ÚtestLineInsertionzBufferTests.testLineInsertion�  s³   € ØˆØˆØŒ	�Š˜Ÿ
š
 B¨ 8Ñ,Ô,Ñ-Ô-Ð-ØŒ	× Ò   AÑ&Ô&Ð&ØŒ	×ÒÑÔÐà×ÒØŒI×ÒÑ!Ô!Ø�‰J˜Ñ Ñ# eÑ+¨eµvÀ±zÑ.BÑBñ	
ô 	
ð 	
ð 	
ð 	
r"   c                ób  — d}d}d}| j                              d                     |||f¦  «        ¦  «         | j                              dd¦  «         | j                              ¦   «          |                      | j                              ¦   «         |dz   |z   dz   dt          dz
  z  z   ¦  «         d S )NrÅ   s   Middle wordsrÆ   r$   ra   r%   r5   )r   rC   rµ   rb   Ú
deleteLiner'   r,   r+   r·   s       r    ÚtestLineDeletionzBufferTests.testLineDeletion›  s³   € ØˆØˆØˆØŒ	�Š˜Ÿ
š
 B¨¨B <Ñ0Ô0Ñ1Ô1Ð1ØŒ	× Ò   AÑ&Ô&Ð&ØŒ	×ÒÑÔÐà×ÒØŒI×ÒÑ!Ô! 2¨¡:°¡?°UÑ#:¸UÅfÈqÁjÑ=QÑ#Qñ	
ô 	
ð 	
ð 	
ð 	
r"   N©r   r   )%Ú__name__Ú
__module__Ú__qualname__r!   r.   r2   r<   r?   rD   rL   rO   rQ   rV   rY   r_   rc   rh   rn   rq   rt   rw   r{   r   r‚   r‡   r‘   rœ   r©   r³   r¸   r¼   rÀ   rÃ   rÉ   rÍ   rÐ   rÓ   © r"   r    r   r      sþ  € € € € € ð#ð #ð #ð #ðCð Cð Cð Cð
ð 
ð 
ð 
ðCð Cð Cð CðCð Cð Cð CðCð Cð Cð Cð	;ð 	;ð 	;ð 	;ð	;ð 	;ð 	;ð 	;ðLð Lð Lð Lð	Cð 	Cð 	Cð 	CðGð Gð Gð Gð	Cð 	Cð 	Cð 	CðCð Cð Cð CðRð Rð Rð Rð

ð 
ð 
ð 
ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ðLð Lð Lð LðCð Cð Cð Cð
Cð 
Cð 
Cð 
Cð	Cð 	Cð 	Cð 	Cð,ð ,ð ,ð ,ð.ð ð ð ð($-ð $-ð $-ð $-ðL=ð =ð =ð =ð@
ð 
ð 
ð 
ðWð Wð Wð Wð
ð 
ð 
ð 
ðFð Fð Fð Fð	
ð 	
ð 	
ð 	
ð

ð 

ð 

ð 

ð

ð 

ð 

ð 

ð

ð 

ð 

ð 

ð 

ð 

r"   r   c                  ó6   — e Zd ZdZdZdd„Zdd„Zdd„Zdd„ZdS )ÚFakeDelayedCallFÚfsÚFakeSchedulerÚtimeoutÚfloatÚfúCallable[..., None]Úaútuple[object, ...]Úkwúdict[str, object]r   r   c                óL   — || _         || _        || _        || _        || _        d S r   )rÛ   rÝ   rß   rá   rã   )r   rÛ   rÝ   rß   rá   rã   s         r    Ú__init__zFakeDelayedCall.__init__¬  s+   € ð ˆŒØˆŒØˆŒØˆŒØˆŒˆˆr"   Úboolc                ó    — | j         p| j         S r   )Ú	cancelledÚcalledr   s    r    ÚactivezFakeDelayedCall.activeº  s   € Ø”NÐ1 d¤kÐ2Ð2r"   c                ó   — d| _         d S ©NT)ré   r   s    r    ÚcancelzFakeDelayedCall.cancel½  s   € ØˆŒˆˆr"   c                óB   — d| _          | j        | j        i | j        ¤Ž d S rí   )rê   rß   rá   rã   r   s    r    ÚcallzFakeDelayedCall.callÂ  s*   € ØˆŒØˆŒ�”Ð"˜$œ'Ð"Ð"Ð"Ð"Ð"r"   N)rÛ   rÜ   rÝ   rÞ   rß   rà   rá   râ   rã   rä   r   r   )r   rç   rÔ   )	rÕ   rÖ   r×   rê   ré   ræ   rë   rî   rð   rØ   r"   r    rÚ   rÚ   ¨  sn   € € € € € Ø€FØ€Iðð ð ð ð3ð 3ð 3ð 3ðð ð ð ð
#ð #ð #ð #ð #ð #r"   rÚ   c                  ó   — e Zd Zdd„Zdd„ZdS )rÜ   r   r   c                ó   — g | _         d S r   )Úcallsr   s    r    ræ   zFakeScheduler.__init__È  s   € Ø,.ˆŒ
ˆ
ˆ
r"   rÝ   rÞ   rß   rà   rá   Úobjectrã   rÚ   c           	     ór   — | j                              t          | ||||¦  «        ¦  «         | j         d         S )Néÿÿÿÿ)ró   ÚappendrÚ   )r   rÝ   rß   rá   rã   s        r    Ú	callLaterzFakeScheduler.callLaterË  s6   € ð 	Œ
×Ò�/¨$°¸¸A¸rÑBÔBÑCÔCÐCØŒz˜"Œ~Ðr"   NrÔ   )
rÝ   rÞ   rß   rà   rá   rô   rã   rô   r   rÚ   )rÕ   rÖ   r×   ræ   rø   rØ   r"   r    rÜ   rÜ   Ç  s<   € € € € € ð/ð /ð /ð /ðð ð ð ð ð r"   rÜ   c                  óV   — e Zd Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd„ZdS )ÚExpectTestsr   r   c                óŽ   — t          j        ¦   «         | _        | j                             ¦   «          t	          ¦   «         | _        d S r   )r   ÚExpectableBufferr   r   rÜ   rÛ   r   s    r    r!   zExpectTests.setUpÓ  s5   € ÝÔ+Ñ-Ô-ˆŒ	ØŒ	× Ò Ñ"Ô"Ð"Ý‘/”/ˆŒˆˆr"   c                ób  — g }| j                              dd| j        ¬¦  «        }|                     |j        ¦  «         | j                              d¦  «         |                      |¦  «         | j                              d¦  «         |                      |¦  «         |                      |d          	                    ¦   «         d¦  «         |                      t          | j        j        ¦  «        d¦  «         |                      | j        j        d                              ¦   «         ¦  «         d S )Nó   hello worldr%   ©rÝ   Ú	schedulers   greeting puny earthlings
s   hello world
r   )r   ÚexpectrÛ   ÚaddCallbackr÷   rC   r¨   r£   r'   Úgrouprk   ró   rë   ©r   ÚresultÚds      r    ÚtestSimpleStringzExpectTests.testSimpleStringØ  sþ   € Ø(*ˆØŒI×Ò˜^°QÀ$Ä'ÐÑJÔJˆØ	�Š�f”mÑ$Ô$Ð$àŒ	�ŠÐ5Ñ6Ô6Ð6Ø×Ò˜Ñ Ô Ð ØŒ	�ŠÐ(Ñ)Ô)Ð)Ø�Š˜ÑÔÐØ×Ò˜ œŸšÑ*Ô*¨NÑ;Ô;Ð;Ø×Ò�˜TœWœ]Ñ+Ô+¨QÑ/Ô/Ð/Ø×Ò˜œœ qÔ)×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ð3Ð3r"   c                ó  — g }| j                              d¦  «        }|                     |j        ¦  «         |                      |¦  «         | j                              d¦  «         |                      |¦  «         | j                              d¦  «         |                      |¦  «         | j                              d¦  «         |                      |¦  «         |                      |d                              ¦   «         d¦  «         d S )Nrþ   ó   hello s   worló   dr   )	r   r  r  r÷   r¨   rC   r£   r'   r  r  s      r    ÚtestBrokenUpStringzExpectTests.testBrokenUpStringå  sä   € Ø(*ˆØŒI×Ò˜^Ñ,Ô,ˆØ	�Š�f”mÑ$Ô$Ð$à×Ò˜Ñ Ô Ð ØŒ	�Š˜	Ñ"Ô"Ð"Ø×Ò˜Ñ Ô Ð ØŒ	�Š˜Ñ Ô Ð Ø×Ò˜Ñ Ô Ð ØŒ	�Š˜ÑÔÐØ�Š˜ÑÔÐØ×Ò˜ œŸšÑ*Ô*¨NÑ;Ô;Ð;Ð;Ð;r"   c                ó  — g }| j                              d¦  «        }|                     |j        ¦  «         | j                              d¦  «        }|                     |j        ¦  «         |                      |¦  «         | j                              d¦  «         |                      |¦  «         | j                              d¦  «         |                      t          |¦  «        d¦  «         | j                              d¦  «         |                      t          |¦  «        d¦  «         |                      |d                              ¦   «         d¦  «         |                      |d                              ¦   «         d¦  «         d S )Nr	  ó   worlds   helloó    r%   rX   r   )	r   r  r  r÷   r¨   rC   r'   rk   r  ©r   r  Úd1Úd2s       r    ÚtestMultiplezExpectTests.testMultipleó  sC  € Ø(*ˆØŒY×Ò˜iÑ(Ô(ˆØ
�Š�v”}Ñ%Ô%Ð%ØŒY×Ò˜hÑ'Ô'ˆØ
�Š�v”}Ñ%Ô%Ð%à×Ò˜Ñ Ô Ð ØŒ	�Š˜Ñ!Ô!Ð!Ø×Ò˜Ñ Ô Ð ØŒ	�Š˜ÑÔÐØ×Ò�˜V™œ aÑ(Ô(Ð(ØŒ	�Š˜Ñ!Ô!Ð!Ø×Ò�˜V™œ aÑ(Ô(Ð(Ø×Ò˜ œŸšÑ*Ô*¨IÑ6Ô6Ð6Ø×Ò˜ œŸšÑ*Ô*¨HÑ5Ô5Ð5Ð5Ð5r"   c                ó,  — | j                              d¦  «         g }| j                              d¦  «        }|                     |j        ¦  «         |                      |¦  «         |                      |d                              ¦   «         d¦  «         d S )Nrþ   r   )r   rC   r  r  r÷   r£   r'   r  r  s      r    ÚtestSynchronouszExpectTests.testSynchronous  s€   € ØŒ	�Š˜Ñ'Ô'Ð'à(*ˆØŒI×Ò˜^Ñ,Ô,ˆØ	�Š�f”mÑ$Ô$Ð$Ø�Š˜ÑÔÐØ×Ò˜ œŸšÑ*Ô*¨NÑ;Ô;Ð;Ð;Ð;r"   c                ó  — | j                              d¦  «         g }| j                              d¦  «        }|                     |j        ¦  «         | j                              d¦  «        }|                     |j        ¦  «         |                      t          |¦  «        d¦  «         |                      |d                              ¦   «         d¦  «         |                      |d                              ¦   «         d¦  «         d S )Ns   goodbye worlds   byer  rX   r   r%   )r   rC   r  r  r÷   r'   rk   r  r  s       r    ÚtestMultipleSynchronousz#ExpectTests.testMultipleSynchronous  sØ   € ØŒ	�ŠÐ(Ñ)Ô)Ð)à(*ˆØŒY×Ò˜fÑ%Ô%ˆØ
�Š�v”}Ñ%Ô%Ð%ØŒY×Ò˜hÑ'Ô'ˆØ
�Š�v”}Ñ%Ô%Ð%à×Ò�˜V™œ aÑ(Ô(Ð(Ø×Ò˜ œŸšÑ*Ô*¨FÑ3Ô3Ð3Ø×Ò˜ œŸšÑ*Ô*¨HÑ5Ô5Ð5Ð5Ð5r"   Úresúfailure.Failurec                ó–   — |                       t          |d¦  «        ¦  «         |                      |j        t          j        ¦  «         d S )NÚtype)r£   Úhasattrr'   r  r   ÚExpectationTimeout)r   r  s     r    Ú_cbTestTimeoutFailurez!ExpectTests._cbTestTimeoutFailure  s?   € Ø�Š�  VÑ,Ô,Ñ-Ô-Ð-Ø×Ò˜œ¥6Ô#<Ñ=Ô=Ð=Ð=Ð=r"   c                óÆ   — | j                              dd| j        ¬¦  «        }|                     | j        ¦  «         | j        j        d                              ¦   «          d S )Nrþ   r%   rÿ   r   )r   r  rÛ   ÚaddBothr  ró   rð   )r   r  s     r    ÚtestTimeoutFailurezExpectTests.testTimeoutFailure  sV   € ØŒI×Ò˜^°QÀ$Ä'ÐÑJÔJˆØ	�	Š	�$Ô,Ñ-Ô-Ð-ØŒŒ�aÔ×ÒÑÔÐÐÐr"   c                ó  — | j                              d¦  «         g }| j                              dd| j        ¬¦  «        }|                     | j        ¦  «         | j                              d¦  «        }|                     |j        ¦  «         | j        j        d          	                    ¦   «          |  
                    t          |¦  «        d¦  «         |  
                    |d                              ¦   «         d¦  «         d S )Ns   not zoomtasticrþ   r%   rÿ   s   zoomr   )r   rC   r  rÛ   r  r  r  r÷   ró   rð   r'   rk   r  r  s       r    ÚtestOverlappingTimeoutz"ExpectTests.testOverlappingTimeout#  sÙ   € ØŒ	�ŠÐ)Ñ*Ô*Ð*à(*ˆØŒY×Ò˜n°aÀ4Ä7ÐÑKÔKˆØ
�
Š
�4Ô-Ñ.Ô.Ð.ØŒY×Ò˜gÑ&Ô&ˆØ
�Š�v”}Ñ%Ô%Ð%àŒŒ�aÔ×ÒÑÔÐà×Ò�˜V™œ aÑ(Ô(Ð(Ø×Ò˜ œŸšÑ*Ô*¨GÑ4Ô4Ð4Ð4Ð4r"   NrÔ   )r  r  r   r   )rÕ   rÖ   r×   r!   r  r  r  r  r  r  r   r"  rØ   r"   r    rú   rú   Ò  sÈ   € € € € € ð"ð "ð "ð "ð
4ð 4ð 4ð 4ð<ð <ð <ð <ð6ð 6ð 6ð 6ð"<ð <ð <ð <ð6ð 6ð 6ð 6ð>ð >ð >ð >ð ð  ð  ð  ð
5ð 5ð 5ð 5ð 5ð 5r"   rú   c                  ó"   — e Zd ZdZdd„Zdd„ZdS )ÚCharacterAttributeTestszG
    Tests for L{twisted.conch.insults.helper.CharacterAttribute}.
    r   r   c           
     óš  — |                       t          j        ¦   «         t          j        ¦   «         ¦  «         |                       t          j        ¦   «         t          j        t          ¬¦  «        ¦  «         |                       t          j        ddddt          j        ¬¦  «        t          j        ddddt          j        ¬¦  «        ¦  «         |                      t          j        ¦   «         t          j        t          ¬¦  «        ¦  «         |                      t          j        d¬¦  «        t          j        d¬¦  «        ¦  «         dS )z±
        L{CharacterAttribute}s must have matching character attribute values
        (bold, blink, underline, etc) with the same values to be considered
        equal.
        )r�   TF)r¤   r¥   r¦   r§   r¯   ©r¤   N)r'   r   ÚCharacterAttributer   ÚBLUEÚassertNotEqualr	   r   s    r    Útest_equalityz%CharacterAttributeTests.test_equality7  sD  € ð 	×Ò�Ô2Ñ4Ô4µfÔ6OÑ6QÔ6QÑRÔRÐRà×ÒÝÔ%Ñ'Ô'­Ô)BÍ2Ð)NÑ)NÔ)Nñ	
ô 	
ð 	
ð 	×ÒÝÔ%ØØØØ!Ý!œ;ðñ ô õ Ô%ØØØØ!Ý!œ;ðñ ô ñ	
ô 	
ð 	
ð" 	×ÒÝÔ%Ñ'Ô'­Ô)BÍ2Ð)NÑ)NÔ)Nñ	
ô 	
ð 	
ð 	×ÒÝÔ%¨4Ð0Ñ0Ô0µ&Ô2KÐQVÐ2WÑ2WÔ2Wñ	
ô 	
ð 	
ð 	
ð 	
r"   c                ól  — t          j        ¦   «                              d¬¦  «         |                      | j        g¦  «        }|                      t          |¦  «        d¦  «         |                      |d         d         t          ¦  «         d}|                      |d         d         d|z  ¦  «         d	S )
z~
        L{twisted.conch.insults.helper.CharacterAttribute.wantOne} emits
        a deprecation warning when invoked.
        Tr&  r%   r   Úcategoryz5twisted.conch.insults.helper._FormattingState.wantOneÚmessagez#%s was deprecated in Twisted 13.1.0N)r   Ú_FormattingStateÚwantOneÚflushWarningsÚtest_wantOneDeprecatedr'   rk   ÚDeprecationWarning)r   ÚwarningsShownÚdeprecatedClasss      r    r1  z.CharacterAttributeTests.test_wantOneDeprecated\  s¸   € õ 	ÔÑ!Ô!×)Ò)¨tÐ)Ñ4Ô4Ð4à×*Ò*¨DÔ,GÐ+HÑIÔIˆØ×Ò�˜]Ñ+Ô+¨QÑ/Ô/Ð/Ø×Ò˜ qÔ)¨*Ô5Õ7IÑJÔJÐJØQˆØ×ÒØ˜!Ô˜YÔ'Ø1°_ÑEñ	
ô 	
ð 	
ð 	
ð 	
r"   NrÔ   )rÕ   rÖ   r×   Ú__doc__r*  r1  rØ   r"   r    r$  r$  2  sG   € € € € € ðð ð#
ð #
ð #
ð #
ðJ
ð 
ð 
ð 
ð 
ð 
r"   r$  )Ú
__future__r   ÚreÚtypingr   Útwisted.conch.insultsr   Útwisted.conch.insults.insultsr   r   r   r	   r
   r   r   r   r   r   r   Útwisted.pythonr   Útwisted.trialr   r)   r+   ÚTestCaser   rÚ   rÜ   rú   r$  rØ   r"   r    ú<module>r>     së  ðð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ð Ð à (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð #Ð "Ð "Ð "Ð "Ð "Ø "Ð "Ð "Ð "Ð "Ð "à
€Ø	€ðG
ð G
ð G
ð G
ð G
�(Ô#ñ G
ô G
ð G
ðT#ð #ð #ð #ð #ñ #ô #ð #ð>ð ð ð ð ñ ô ð ð]5ð ]5ð ]5ð ]5ð ]5�(Ô#ñ ]5ô ]5ð ]5ð@9
ð 9
ð 9
ð 9
ð 9
˜hÔ/ñ 9
ô 9
ð 9
ð 9
ð 9
r"   