o
    °ó®g_2  ã                   @   sX   d dl Z d dlmZ d dlmZ d dlZG dd„ de jƒZdd„ Ze	dkr*eƒ  dS dS )	é    N)Úsupport)Ú	os_helperc                   @   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w |  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   úD/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/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   sL   |   tdƒd¡ |   tdƒd¡ |  ttdƒƒd¡ |  ttdƒƒd¡ d S ©NFÚFalseTÚTrue)ÚassertEqualÚreprÚassertIsÚ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   ó   zBoolTest.test_strc                 C   óD   |   tdƒd¡ |  tdƒd¡ |   tdƒd¡ |  tdƒd¡ d S )NFr   Té   )r   r   ÚassertIsNotr   r   r   r	   Útest_int    ó   zBoolTest.test_intc                 C   r   )NFç        Tç      ð?)r   Úfloatr    r   r   r   r	   Ú
test_float&   r"   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 ]#}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 ƒ¡ q=q8|  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   r)   )r   r    Úabsr   r   r   )r   ÚbÚiÚaÚxr   r   r	   Ú	test_math,   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   r   r   r   r   r	   Útest_convert™   s   zBoolTest.test_convertc                 C   s<   |   td¡ tdd W d   ƒ d S 1 sw   Y  d S )Nzkeyword argumentr2   ©r/   )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§   r"   zBoolTest.test_formatc                 C   s(   |   tg dƒd¡ |   tg dƒd¡ d S )NÚappendTZwobbleF)r   Úhasattrr   r   r   r	   Útest_hasattr­   ó   zBoolTest.test_hasattrc                 C   s$   |   ttƒd¡ |   tdƒd¡ d S )NTr   F)r   ÚcallableÚlenr   r   r   r	   Útest_callable±   r   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   )r   Ú
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)r   Ú
issubclassr   r   r   r   r   r	   Útest_issubclass½   r=   zBoolTest.test_issubclassc                 C   s(   |   di v d¡ |   dddiv d¡ d S )Nr   FT)r   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ÚzTr/   FZxyz0123z@#$%Z0123ZXYZú õ   Â u   ã€€ÚX)r   Ú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   r   r   r   r   r	   Útest_booleanß   s   zBoolTest.test_booleanc              	   C   sn   z/t tjddd}|  |jd¡ W d   ƒ n1 sw   Y  |  |jd¡ W t tj¡ d S t tj¡ w )NÚwzutf-8)ÚencodingFT)Úopenr   ZTESTFNr   ÚclosedÚosÚremove)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Útyper   )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)Úoperatorr   Ú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)Úmarshalr   ÚloadsÚdumps)r   rq   r   r   r	   Útest_marshal	  s   zBoolTest.test_marshalc              	   C   sT   dd l }t|jd ƒD ]}|  | | d|¡¡d¡ |  | | d|¡¡d¡ qd S )Nr   r   TF)ÚpickleÚrangeÚHIGHEST_PROTOCOLr   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   r)   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>"  s    z/BoolTest.test_convert_to_bool.<locals>.<lambda>c                   @   ó   e Zd Zdd„ ZdS )z*BoolTest.test_convert_to_bool.<locals>.Fooc                 S   ó   | S r|   r   r   r   r   r	   Ú__bool__$  ó   z3BoolTest.test_convert_to_bool.<locals>.Foo.__bool__N©r   r   r   r‚   r   r   r   r	   ÚFoo#  ó    r…   c                   @   r€   )z*BoolTest.test_convert_to_bool.<locals>.Barc                 S   ó   dS )NZYesr   r   r   r   r	   r‚   )  rƒ   z3BoolTest.test_convert_to_bool.<locals>.Bar.__bool__Nr„   r   r   r   r	   ÚBar(  r†   rˆ   c                   @   r€   )z*BoolTest.test_convert_to_bool.<locals>.Bazc                 S   r   r|   r   r   r   r   r	   r‚   .  rƒ   z3BoolTest.test_convert_to_bool.<locals>.Baz.__bool__Nr„   r   r   r   r	   ÚBaz-  r†   r‰   c                   @   r€   )z+BoolTest.test_convert_to_bool.<locals>.Spamc                 S   r‡   )Nr   r   r   r   r   r	   r‚   4  rƒ   z4BoolTest.test_convert_to_bool.<locals>.Spam.__bool__Nr„   r   r   r   r	   ÚSpam3  r†   rŠ   c                   @   r€   )z+BoolTest.test_convert_to_bool.<locals>.Eggsc                 S   r‡   )Nr'   r   r   r   r   r	   Ú__len__9  rƒ   z3BoolTest.test_convert_to_bool.<locals>.Eggs.__len__N©r   r   r   r‹   r   r   r   r	   ÚEggs8  r†   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)r   r   Ú
from_bytesr   r   r   r	   Útest_from_bytes=  s   zBoolTest.test_from_bytesc                    sš   dD ]H‰ G ‡ fdd„dƒ}zt |ƒ ƒ W q tyJ } z*zt|ƒ ƒ W n ty? } z|  t|ƒt|ƒ¡ W Y d }~nd }~ww W Y d }~qd }~ww 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‹   F  rƒ   z)BoolTest.test_sane_len.<locals>.A.__len__NrŒ   r   r•   r   r	   ÚAE  s    r–   )r   Ú	Exceptionr?   r   r   )r   r–   Ze_boolZe_lenr   r•   r	   Útest_sane_lenA  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–   Q  s    r–   c                   @   s   e Zd Zdd„ ZdZdS )z BoolTest.test_blocked.<locals>.Bc                 S   r‡   )Nr2   r   r   r   r   r	   r‹   V  rƒ   z(BoolTest.test_blocked.<locals>.B.__len__N)r   r   r   r‹   r‚   r   r   r   r	   ÚBU  s    r™   r}   )r   r–   r™   r   r   r	   Útest_blockedP  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Úimagr   rf   r   r   r   r   r	   Útest_real_and_imag[  s   zBoolTest.test_real_and_imagc                 C   s6   G dd„ dƒ}dd„ }|ƒ }||ƒ |   |jd¡ d S )Nc                   @   s   e Zd Zdd„ Zdd„ ZdS )z2BoolTest.test_bool_called_at_least_once.<locals>.Xc                 S   s
   d| _ d S )Nr   ©Úcountr   r   r   r	   Ú__init__g  s   
z;BoolTest.test_bool_called_at_least_once.<locals>.X.__init__c                 S   s   |  j d7  _ dS )Nr   Trž   r   r   r   r	   r‚   i  s   z;BoolTest.test_bool_called_at_least_once.<locals>.X.__bool__N)r   r   r   r    r‚   r   r   r   r	   rI   f  s    rI   c                 S   s
   | s	 d S r_   r   r5   r   r   r	   r]   m  s   z2BoolTest.test_bool_called_at_least_once.<locals>.fr   )ZassertGreaterEqualrŸ   )r   rI   r]   r/   r   r   r	   Útest_bool_called_at_least_oncee  s
   z'BoolTest.test_bool_called_at_least_onceN)r   r   r   r   r   r   r!   r&   r0   r4   r6   r9   r<   r@   rB   rD   rE   rU   rV   r^   rh   rp   rt   ry   r{   r   r”   r˜   rš   r   r¡   r   r   r   r	   r   	   s:    m


r   c                   C   s   t  t¡ d S r|   )r   Zrun_unittestr   r   r   r   r	   Ú	test_mainu  s   r¢   Ú__main__)
ZunittestÚtestr   Ztest.supportr   r[   ZTestCaser   r¢   r   r   r   r   r	   Ú<module>   s     n
ÿ