a
    äzeÀ1  ã                   @   sB   d dl Z d dlmZ d dlZG dd„ de jƒZedkr>e  ¡  dS )é    N)Úsupportc                   @   sì   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/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9S ):ÚBoolTestc                 C   sH   zG dd„ dt ƒ}W n ty&   Y n0 |  d¡ |  ttjt d¡ d S )Nc                   @   s   e Zd ZdS )z!BoolTest.test_subclass.<locals>.CN)Ú__name__Ú
__module__Ú__qualname__© r   r   ú$/usr/lib/python3.9/test/test_bool.pyÚC   s   r	   zbool should not be subclassabler   )ÚboolÚ	TypeErrorZfailÚassertRaisesÚintÚ__new__)Úselfr	   r   r   r   Útest_subclass
   s    
zBoolTest.test_subclassc              	   C   sš   z†t tjdƒ}tdd|d W d   ƒ n1 s20    Y  t tjdƒ }|  | ¡ d¡ W d   ƒ n1 sn0    Y  W t tj¡ nt tj¡ 0 d S )NÚwFT)ÚfileÚrzFalse True
)Úopenr   ÚTESTFNÚprintÚassertEqualÚreadÚosÚremove)r   ÚfoÚfir   r   r   Ú
test_print   s    ,0zBoolTest.test_printc                 C   sL   |   tdƒd¡ |   tdƒd¡ |   ttdƒƒd¡ |   ttdƒƒd¡ d S ©NFÚFalseTÚTrue)r   ÚreprÚeval©r   r   r   r   Ú	test_repr   s    zBoolTest.test_reprc                 C   s$   |   tdƒd¡ |   tdƒd¡ d S r   )r   Ústrr#   r   r   r   Útest_str$   s    zBoolTest.test_strc                 C   sD   |   tdƒd¡ |  tdƒd¡ |   tdƒd¡ |  tdƒd¡ d S )NFr   Té   )r   r   ÚassertIsNotr#   r   r   r   Útest_int(   s    zBoolTest.test_intc                 C   sD   |   tdƒd¡ |  tdƒd¡ |   tdƒd¡ |  tdƒd¡ d S )NFç        Tç      ð?)r   Úfloatr(   r#   r   r   r   Ú
test_float.   s    zBoolTest.test_floatc              	   C   s*  |   dd¡ |  dd¡ |   dd¡ |  dd¡ |   tdƒd¡ |  tdƒd¡ |   dd¡ |  dd¡ |   dd¡ |   tdƒd¡ |  tdƒd¡ |   dd¡ |   dd¡ |   dd¡ |   dd¡ |   dd¡ |   dd¡ |   dd¡ |  dd¡ |   dd¡ |  dd¡ |   dd¡ |  dd¡ |   dd¡ |   dd¡ |  dd¡ |   dd¡ |  dd¡ |   dd¡ |  dd¡ |   dd¡ |   dd¡ |   dd¡ |  dd¡ |   d	d¡ |  d	d¡ |   d
d¡ |  d
d¡ |   dd¡ |  dd¡ |   dd¡ |  dd¡ |   dd¡ |  dd¡ dD ]F}dD ]:}|   || t|ƒ| ¡ |  || tt|ƒ| ƒ¡ q,q$dD ]}dD ]þ}|  ||@ tt|ƒt|ƒ@ ƒ¡ |  ||B tt|ƒt|ƒB ƒ¡ |  ||A tt|ƒt|ƒA ƒ¡ |   |t|ƒ@ t|ƒt|ƒ@ ¡ |  |t|ƒ@ tt|ƒt|ƒ@ ƒ¡ |   |t|ƒB t|ƒt|ƒB ¡ |  |t|ƒB tt|ƒt|ƒB ƒ¡ |   |t|ƒA t|ƒt|ƒA ¡ |  |t|ƒA tt|ƒt|ƒA ƒ¡ |   t|ƒ|@ t|ƒt|ƒ@ ¡ |  t|ƒ|@ tt|ƒt|ƒ@ ƒ¡ |   t|ƒ|B t|ƒt|ƒB ¡ |  t|ƒ|B tt|ƒt|ƒB ƒ¡ |   t|ƒ|A t|ƒt|ƒA ¡ |  t|ƒ|A tt|ƒt|ƒA ƒ¡ qzqp|  ddkd¡ |  ddkd¡ |  ddk d¡ |  ddk d¡ |  ddkd¡ |  ddkd¡ |  ddkd¡ |  ddkd¡ |  ddkd¡ |  ddkd¡ |  ddkd¡ |  ddkd¡ dg}|  ||u d¡ |  ||ud¡ |  d|v d¡ |  d|v d¡ |  d|vd¡ |  d|vd¡ ddi}|  ||u d¡ |  ||ud¡ |  d|v d¡ |  d|v d¡ |  d|vd¡ |  d|vd¡ |  dd¡ |  dd¡ d S )Nr   Fr'   Téÿÿÿÿéþÿÿÿé   é   r+   r*   )FT)r   r'   r0   )r   r(   Úabsr   r
   ÚassertIs)r   ÚbÚiÚaÚxr   r   r   Ú	test_math4   sº    $

    $ $ $ $ $ ,zBoolTest.test_mathc                 C   s‚   |   ttdd¡ |  tdƒd¡ |  tdƒd¡ |  tdƒd¡ |  tdƒd¡ |  tdƒd¡ |  td	ƒd¡ |  tƒ d¡ d S )
Né*   é
   Tr'   r.   r   FZhelloÚ )r   r   r
   r3   r#   r   r   r   Útest_convert¡   s    zBoolTest.test_convertc                 C   s:   |   td¡ tdd W d   ƒ n1 s,0    Y  d S )Nzkeyword argumentr:   )r7   )ZassertRaisesRegexr   r
   r#   r   r   r   Útest_keyword_args«   s    zBoolTest.test_keyword_argsc                 C   sD   |   dd d¡ |   dd d¡ |   dd d¡ |   dd d¡ d S )Nz%dFÚ0TÚ1z%x)r   r#   r   r   r   Útest_format¯   s    zBoolTest.test_formatc                 C   s(   |   tg dƒd¡ |   tg dƒd¡ d S )NÚappendTZwobbleF)r3   Úhasattrr#   r   r   r   Útest_hasattrµ   s    zBoolTest.test_hasattrc                 C   s$   |   ttƒd¡ |   tdƒd¡ d S )NTr'   F)r3   ÚcallableÚlenr#   r   r   r   Útest_callable¹   s    zBoolTest.test_callablec                 C   sp   |   tdtƒd¡ |   tdtƒd¡ |   tdtƒd¡ |   tdtƒd¡ |   tdtƒd¡ |   tdtƒd¡ d S )NTFr'   r   )r3   Ú
isinstancer
   r   r#   r   r   r   Útest_isinstance½   s    zBoolTest.test_isinstancec                 C   s(   |   tttƒd¡ |   tttƒd¡ d S )NTF)r3   Ú
issubclassr
   r   r#   r   r   r   Útest_issubclassÅ   s    zBoolTest.test_issubclassc                 C   s(   |   di v d¡ |   dddiv d¡ d S )Nr'   FT)r3   r#   r   r   r   Útest_containsÉ   s    zBoolTest.test_containsc                 C   sŒ  |   d d¡d¡ |   d d¡d¡ |   d ¡ d¡ |   d ¡ d¡ |   d ¡ d¡ |   d ¡ d¡ |   d ¡ d¡ |   d ¡ d¡ |   d ¡ d¡ |   d	 ¡ d¡ |   d ¡ d¡ |   d ¡ d¡ |   d ¡ d¡ |   d ¡ d¡ |   d
 ¡ d¡ |   d ¡ d¡ |   d ¡ d¡ |   d	 ¡ d¡ |   d 	¡ d¡ |   d 	¡ d¡ |   d	 
¡ d¡ |   d 
¡ d¡ |   d d¡d¡ |   d d¡d¡ d S )NZxyzÚzTr7   FZxyz0123z@#$%Z0123ZXYZú õ   Â u   ã€€ÚX)r3   ÚendswithÚisalnumÚisalphaÚisdigitÚislowerÚ	isdecimalÚ	isnumericÚisspaceÚistitleÚisupperÚ
startswithr#   r   r   r   Útest_stringÍ   s0    zBoolTest.test_stringc                 C   sp   |   dd¡ |  dt¡ |  dd¡ |   dd¡ |  dt¡ |  dd¡ |   dd¡ |  dt¡ |  dd¡ d S )Nr'   Tr   F)r   ZassertNotIsInstancer
   r3   r#   r   r   r   Útest_booleanç   s    zBoolTest.test_booleanc              	   C   sl   zXt tjdƒ}|  |jd¡ W d   ƒ n1 s20    Y  |  |jd¡ W t tj¡ nt tj¡ 0 d S )Nr   FT)r   r   r   r3   Úclosedr   r   )r   Úfr   r   r   Útest_fileclosedô   s
    ,zBoolTest.test_fileclosedc                 C   s4   t ttttttttt	t
fD ]}|  t |ƒd¡ qd S )NT)r
   ÚcomplexÚdictr,   r   ÚlistÚobjectÚsetr%   ÚtupleÚtyper3   )r   Útr   r   r   Ú
test_typesü   s    ÿzBoolTest.test_typesc                 C   sö   dd l }|  | d¡d¡ |  | d¡d¡ |  | d¡d¡ |  | d¡d¡ |  | g d¡d¡ |  | dgd¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  | dd¡d¡ d S )Nr   Fr'   T)Úoperatorr3   ÚtruthÚnot_ÚcontainsÚltÚis_Úis_not)r   ri   r   r   r   Útest_operator  s    zBoolTest.test_operatorc                 C   s<   dd l }|  | | d¡¡d¡ |  | | d¡¡d¡ d S )Nr   TF)Úmarshalr3   ÚloadsÚdumps)r   rq   r   r   r   Útest_marshal  s    zBoolTest.test_marshalc              	   C   sT   dd l }t|jd ƒD ]8}|  | | d|¡¡d¡ |  | | d|¡¡d¡ qd S )Nr   r'   TF)ÚpickleÚrangeÚHIGHEST_PROTOCOLr3   rr   rs   )r   ru   Úprotor   r   r   Útest_pickle  s    zBoolTest.test_picklec                 C   s   dd l }|  |jdddd¡ |  |jdddd¡ |  |jdddd¡ |  |jdddd¡ |  |jdddd	¡ |  |jdddd
¡ d S )Nr   T)Úprotocols   I01
.Fs   I00
.r'   r0   s   €ˆ.s   €‰.)ru   r   rs   )r   ru   r   r   r   Útest_picklevalues  s    zBoolTest.test_picklevaluesc                    s–   ‡ fdd„}G dd„ dt ƒ}||ƒ ƒ G dd„ dt ƒ}||ƒ ƒ G dd„ dtƒ}||ƒ ƒ G d	d
„ d
tƒ}||ƒ ƒ G dd„ dƒ}ˆ  tt|ƒ ¡ d S )Nc                    s   ˆ   tt| ¡S ©N©r   r   r
   )Úor#   r   r   Ú<lambda>*  ó    z/BoolTest.test_convert_to_bool.<locals>.<lambda>c                   @   s   e Zd Zdd„ ZdS )z*BoolTest.test_convert_to_bool.<locals>.Fooc                 S   s   | S r|   r   r#   r   r   r   Ú__bool__,  s    z3BoolTest.test_convert_to_bool.<locals>.Foo.__bool__N©r   r   r   r   r   r   r   r   ÚFoo+  s   rƒ   c                   @   s   e Zd Zdd„ ZdS )z*BoolTest.test_convert_to_bool.<locals>.Barc                 S   s   dS )NZYesr   r#   r   r   r   r   1  s    z3BoolTest.test_convert_to_bool.<locals>.Bar.__bool__Nr‚   r   r   r   r   ÚBar0  s   r„   c                   @   s   e Zd Zdd„ ZdS )z*BoolTest.test_convert_to_bool.<locals>.Bazc                 S   s   | S r|   r   r#   r   r   r   r   6  s    z3BoolTest.test_convert_to_bool.<locals>.Baz.__bool__Nr‚   r   r   r   r   ÚBaz5  s   r…   c                   @   s   e Zd Zdd„ ZdS )z+BoolTest.test_convert_to_bool.<locals>.Spamc                 S   s   dS )Nr'   r   r#   r   r   r   r   <  s    z4BoolTest.test_convert_to_bool.<locals>.Spam.__bool__Nr‚   r   r   r   r   ÚSpam;  s   r†   c                   @   s   e Zd Zdd„ ZdS )z+BoolTest.test_convert_to_bool.<locals>.Eggsc                 S   s   dS )Nr.   r   r#   r   r   r   Ú__len__A  s    z3BoolTest.test_convert_to_bool.<locals>.Eggs.__len__N©r   r   r   r‡   r   r   r   r   ÚEggs@  s   r‰   )rc   r   r   Ú
ValueErrorr
   )r   Úcheckrƒ   r„   r…   r†   r‰   r   r#   r   Útest_convert_to_bool&  s    



zBoolTest.test_convert_to_boolc                 C   s,   |   t dd¡d¡ |   t dd¡d¡ d S )Ns           ÚbigFs   abcdÚlittleT)r3   r
   Ú
from_bytesr#   r   r   r   Útest_from_bytesE  s    zBoolTest.test_from_bytesc                    sœ   dD ]’‰ G ‡ fdd„dƒ}zt |ƒ ƒ W q ty” } zTzt|ƒ ƒ W n8 ty~ } z |  t|ƒt|ƒ¡ W Y d }~n
d }~0 0 W Y d }~qd }~0 0 qd S )N)Zillegalr.   l        c                       s   e Zd Z‡ fdd„ZdS )z!BoolTest.test_sane_len.<locals>.Ac                    s   ˆ S r|   r   r#   ©Zbadvalr   r   r‡   N  s    z)BoolTest.test_sane_len.<locals>.A.__len__Nrˆ   r   r‘   r   r   ÚAM  s   r’   )r
   Ú	ExceptionrE   r   r%   )r   r’   Ze_boolZe_lenr   r‘   r   Útest_sane_lenI  s    zBoolTest.test_sane_lenc                 C   s@   G dd„ dƒ}|   tt|ƒ ¡ G dd„ dƒ}|   tt|ƒ ¡ d S )Nc                   @   s   e Zd ZdZdS )z BoolTest.test_blocked.<locals>.ANr‚   r   r   r   r   r’   Y  s   r’   c                   @   s   e Zd Zdd„ ZdZdS )z BoolTest.test_blocked.<locals>.Bc                 S   s   dS )Nr:   r   r#   r   r   r   r‡   ^  s    z(BoolTest.test_blocked.<locals>.B.__len__N)r   r   r   r‡   r   r   r   r   r   ÚB]  s   r•   r}   )r   r’   r•   r   r   r   Útest_blockedX  s    zBoolTest.test_blockedc                 C   s„   |   djd¡ |   djd¡ |  tdjƒt¡ |  tdjƒt¡ |   djd¡ |   djd¡ |  tdjƒt¡ |  tdjƒt¡ d S )NTr'   r   F)r   ÚrealÚimagr3   rf   r   r#   r   r   r   Útest_real_and_imagc  s    zBoolTest.test_real_and_imagN)r   r   r   r   r   r$   r&   r)   r-   r8   r<   r=   r@   rC   rF   rH   rJ   rK   r[   r\   r_   rh   rp   rt   ry   r{   rŒ   r   r”   r–   r™   r   r   r   r   r      s8   	m

r   Ú__main__)ZunittestÚtestr   r   ZTestCaser   r   Úmainr   r   r   r   Ú<module>   s     h