
    ;e#                       d dl T d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	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 d dlmZ d dlmZmZmZ d dlmZ d dlZd dl Z  G d d	e          Z G d
 de	j                   Z  G d de	j                   Z! G d de	j                   Z" G d de	j                   Z# G d de	j                   Z$ G d de	j                   Z% G d de	j                   Z& G d de	j                   Z' G d de	j                   Z( G d de	j                   Z) G d de	j                   Z* G d  d!e	j                   Z+ G d" d#e	j                   Z, G d$ d%e	j                   Z- G d& d'e	j                   Z. G d( d)e	j                   Z/ G d* d+e	j                   Z0e1d,k    r e	j2                     dS dS )-    )*N)Mock)
ClassVarAnyListUnionTupleDictGenericTypeVarOptionalProtocol)get_type_hints)dequeOrderedDict
namedtuple)total_orderingc                       e Zd ZdS )CustomErrorN__name__
__module____qualname__     ,/usr/lib/python3.11/test/test_dataclasses.pyr   r                r   r   c                   l   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdM ZOdN ZPdO ZQdP ZRdQ ZSdR ZTdS ZUdT ZVdU ZWdV ZXdW ZYdX ZZdY Z[dZ Z\d[ Z]d\ Z^d] Z_d^ Z`d_ Zad` Zbda Zcdb Zddc Zedd Zfde ZgdfS )gTestCasec                     t            G d d                      } |            }|                     t          t          |                    d           d S )Nc                       e Zd ZdS )"TestCase.test_no_fields.<locals>.CNr   r   r   r   Cr"              Dr   r#   r   	dataclassassertEquallenfieldsselfr#   os      r   test_no_fieldszTestCase.test_no_fields   si    		 	 	 	 	 	 	 
	 ACCVAYY+++++r   c                     t            G d d                      } |            }|                     t          t          |                    d           d S )Nc                       e Zd ZdZdS )6TestCase.test_no_fields_but_member_variable.<locals>.Cr   N)r   r   r   ir   r   r   r#   r0   &   s        AAAr   r#   r   r%   r*   s      r   "test_no_fields_but_member_variablez+TestCase.test_no_fields_but_member_variable%   si    		 	 	 	 	 	 	 
	 ACCVAYY+++++r   c                     t            G d d                      } |d          }|                     |j        d           d S )Nc                       e Zd ZU eed<   dS )-TestCase.test_one_field_no_default.<locals>.CxNr   r   r   int__annotations__r   r   r   r#   r5   .            FFFFFr   r#   *   r&   r'   r6   r*   s      r   test_one_field_no_defaultz"TestCase.test_one_field_no_default-   sa    		 	 	 	 	 	 	 
	 AbEEb!!!!!r   c                     d}|                      t          |          5  t           G d d                      }d d d            d S # 1 swxY w Y   d S )Nz/cannot specify both default and default_factoryc                   4    e Zd ZU  ede          Zeed<   dS )<TestCase.test_field_default_default_factory_error.<locals>.C   defaultdefault_factoryr6   N)r   r   r   fieldr8   r6   r9   r   r   r   r#   r@   8   s1         q#>>>3>>>>>r   r#   )assertRaisesRegex
ValueErrorr&   )r+   msgr#   s      r   (test_field_default_default_factory_errorz1TestCase.test_field_default_default_factory_error5   s    ?##J44 	? 	?? ? ? ? ? ? ? Y?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   AA
A
c                     t          ddd          }d|_        t          |          }dt          dt          d}|                     ||           d S )	NrA   TF)rC   initrepridz4Field(name='id',type=None,default=1,default_factory=zO,init=True,repr=False,hash=None,compare=True,metadata=mappingproxy({}),kw_only=z,_field_type=None))rE   namerL   MISSINGr'   )r+   	int_fieldrepr_outputexpected_outputs       r   test_field_reprzTestCase.test_field_repr<   sn    !$U;;;		9oo/8?/ / '.	/ / / 	o66666r   c                     t                      }||_        d|_        t          |          }|                     d|           d S )NrM   
,type=...,)rE   typerN   rL   assertIn)r+   	rec_fieldrQ   s      r   test_field_recursive_reprz"TestCase.test_field_recursive_reprI   s>    GG	"		9oolK00000r   c                      G d d          }t            G d d                      }|                     dt          |j        d                              d S )Nc                       e Zd ZdS )-TestCase.test_recursive_annotation.<locals>.CNr   r   r   r   r#   r\   R           Dr   r#   c                   .    e Zd ZU  e            Zeed<   dS )-TestCase.test_recursive_annotation.<locals>.Dr#   N)r   r   r   rE   r#   r9   r   r   r   Dr_   U   s#         577AqNNNNNr   r`   rU   )r&   rW   rL   __dataclass_fields__r+   r#   r`   s      r   test_recursive_annotationz"TestCase.test_recursive_annotationQ   s    	 	 	 	 	 	 	 	 
	 	 	 	 	 	 	 
	 	lD)?)D$E$EFFFFFr   c                     t            G d d                      } |d          }|                     |j        d           d S )Nc                       e Zd ZU eed<   dS )*TestCase.test_named_init_params.<locals>.Cr6   Nr7   r   r   r   r#   rf   \   r:   r   r#       r6   r<   r*   s      r   test_named_init_paramszTestCase.test_named_init_params[   sc    		 	 	 	 	 	 	 
	 AGGGb!!!!!r   c                    t            G d d                      } |d          }|                     |j        |j        fd           |                     t
          d          5  t            G d d                      }d d d            n# 1 swxY w Y   |                     t
          d          5  t            G d d                      }t            G d	 d|                      }d d d            n# 1 swxY w Y   |                     t
          d          5  t            G d
 d                      }t            G d d|                      }d d d            d S # 1 swxY w Y   d S )Nc                   (    e Zd ZU eed<   dZeed<   dS )/TestCase.test_two_fields_one_default.<locals>.Cr6   r   yNr   r   r   r8   r9   rm   r   r   r   r#   rl   d   &         FFFAsJJJJJr   r#      )rp   r   z1non-default argument 'y' follows default argumentc                   (    e Zd ZU dZeed<   eed<   dS )rl   r   r6   rm   Nr   r   r   r6   r8   r9   r   r   r   r#   z/TestCase.test_two_fields_one_default.<locals>.Cp   s&         3


r   c                       e Zd ZU dZeed<   dS )/TestCase.test_two_fields_one_default.<locals>.Br   r6   Nrr   r   r   r   Brt   y            3




r   ru   c                       e Zd ZU eed<   dS )rl   rm   Nr7   r   r   r   r#   z/TestCase.test_two_fields_one_default.<locals>.C}            r   c                   $    e Zd ZU eed<   eed<   dS )rt   r6   rm   Nr7   r   r   r   ru   z/TestCase.test_two_fields_one_default.<locals>.B   s"         r   c                       e Zd ZU dZeed<   dS )rl   r   r6   Nrr   r   r   r   r#   z/TestCase.test_two_fields_one_default.<locals>.C   rv   r   )r&   r'   r6   rm   rF   	TypeError)r+   r#   r,   ru   s       r   test_two_fields_one_defaultz$TestCase.test_two_fields_one_defaultc   s   		 	 	 	 	 	 	 
	 AaDD!#qsV,,, ##I%78 8 	 	        Y		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I%78 8 		 		        Y     A   Y		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 ##I%78 8 
	 
	        Y     A   Y
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	s6   #B

BB06C22C69C66EE"Ec                 n   t          d           G d d                      }|                     t           |d                    d           t          d           G d d                      }|                     t           |d                    t          d                     |                     t          d	          5  t          d
           G d d                      }d d d            n# 1 swxY w Y   t          d
           G d d                      }|                     t           |d                    t          d                     |                     t          d	          5  t          d
           G d d                      }d d d            d S # 1 swxY w Y   d S )NTfrozenc                        e Zd ZU eed<   d ZdS )'TestCase.test_overwrite_hash.<locals>.Cr6   c                     dS N-  r   r+   s    r   __hash__z0TestCase.test_overwrite_hash.<locals>.C.__hash__       sr   N)r   r   r   r8   r9   r   r   r   r   r#   r      .         FFF    r   r#   d   r   c                        e Zd ZU eed<   d ZdS )r   r6   c                     dS NFr   r+   others     r   __eq__z.TestCase.test_overwrite_hash.<locals>.C.__eq__       ur   Nr   r   r   r8   r9   r   r   r   r   r#   z'TestCase.test_overwrite_hash.<locals>.C   .         FFF    r   )r   #Cannot overwrite attribute __hash__unsafe_hashc                       e Zd Zd ZdS )r   c                     d S Nr   r   s    r   r   z0TestCase.test_overwrite_hash.<locals>.C.__hash__       Dr   Nr   r   r   r   r   r   r   r#   z'TestCase.test_overwrite_hash.<locals>.C   s#            r   c                        e Zd ZU eed<   d ZdS )r   r6   c                     d S r   r   r   s    r   r   z.TestCase.test_overwrite_hash.<locals>.C.__eq__       r   Nr   r   r   r   r#   z'TestCase.test_overwrite_hash.<locals>.C   s.         FFF    r   
   )r   c                   &    e Zd ZU eed<   d Zd ZdS )r   r6   c                     d S r   r   r   s    r   r   z.TestCase.test_overwrite_hash.<locals>.C.__eq__   r   r   c                     d S r   r   r   s    r   r   z0TestCase.test_overwrite_hash.<locals>.C.__hash__   r   r   N)r   r   r   r8   r9   r   r   r   r   r   r#   z'TestCase.test_overwrite_hash.<locals>.C   s=               r   )r&   r'   hashrF   r{   r+   r#   s     r   test_overwrite_hashzTestCase.test_overwrite_hash   s    
$				 	 	 	 	 	 	 
 		 	aaffs+++ 
$				 	 	 	 	 	 	 
 		 	aafftF||444 ##I$IK K 	 	4(((       )(	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
t	$	$	$	 	 	 	 	 	 	 
%	$	
 	aaeed5kk222
 ##I$IK K 	 	4(((       )(	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   $C77C;>C;9$F**F.1F.c                    t            G d d                      }t            G d d|                      } |            }|                     t          |          d            |            }|                     t          |          d            |d          }|                     t          |          d	           d S )
Nc                   ,    e Zd ZU dZeed<   dZeed<   dS )=TestCase.test_overwrite_fields_in_derived_class.<locals>.Baseg      .@r6   r   rm   N)r   r   r   r6   r   r9   rm   r8   r   r   r   Baser      s*         AsMMMAsJJJJJr   r   c                   ,    e Zd ZU dZeed<   dZeed<   dS );TestCase.test_overwrite_fields_in_derived_class.<locals>.C1r   z   r6   N)r   r   r   r   r8   r9   r6   r   r   r   C1r      s*         AsKKKAsKKKKKr   r   zJTestCase.test_overwrite_fields_in_derived_class.<locals>.Base(x=15.0, y=0)zLTestCase.test_overwrite_fields_in_derived_class.<locals>.C1(x=15, y=0, z=10)   rh   zKTestCase.test_overwrite_fields_in_derived_class.<locals>.C1(x=5, y=0, z=10)r&   r'   rL   )r+   r   r   r,   s       r   &test_overwrite_fields_in_derived_classz/TestCase.test_overwrite_fields_in_derived_class   s     
	 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 
	 DFFa"noooBDDa"pqqqBGGGa"opppppr   c                    t            G d d                      } |d          }|                     |j        d           t          j        |j                  }t          t          |j                            }| 	                    d|           t            G d d                      }t          j        |j                  }t          t          |j                            }|                     d|           d S )Nc                       e Zd ZU eed<   dS ))TestCase.test_field_named_self.<locals>.Cr+   Nr   r   r   strr9   r   r   r   r#   r      s         IIIIIr   r#   foor+   c                       e Zd ZU eed<   dS )r   selfxNr   r   r   r   r#   z)TestCase.test_field_named_self.<locals>.C            JJJJJr   )
r&   r'   r+   inspect	signature__init__nextiter
parametersassertNotEqual)r+   r#   csigfirsts        r   test_field_named_selfzTestCase.test_field_named_self   s   		 	 	 	 	 	 	 
	
!E((''' 
++T#.))**FE*** 
	 	 	 	 	 	 	 
	 
++T#.))**'''''r   c                     t            G d d                      } |d          }|                     |j        d           d S )Nc                       e Zd ZU eed<   dS )+TestCase.test_field_named_object.<locals>.CobjectNr   r   r   r   r#   r               KKKKKr   r#   r   r&   r'   r   r+   r#   r   s      r   test_field_named_objectz TestCase.test_field_named_object   s_    		 	 	 	 	 	 	 
	AeHH5)))))r   c                     t          d           G d d                      } |d          }|                     |j        d           d S )NTr~   c                       e Zd ZU eed<   dS )2TestCase.test_field_named_object_frozen.<locals>.Cr   Nr   r   r   r   r#   r      r   r   r#   r   r   r   s      r   test_field_named_object_frozenz'TestCase.test_field_named_object_frozen   sk    	$				 	 	 	 	 	 	 
 		AeHH5)))))r   c                     t          d           G d d                      } |d          }|                     |j        d           d S )NTr~   c                       e Zd ZU eed<   dS )4TestCase.test_field_named_BUILTINS_frozen.<locals>.CBUILTINSNr7   r   r   r   r#   r      s         MMMMMr   r#   r   )r&   r'   r   r   s      r    test_field_named_BUILTINS_frozenz)TestCase.test_field_named_BUILTINS_frozen   sk    	$				 	 	 	 	 	 	 
 		AaDDQ'''''r   c                 &   h dt          fdt          j                                        D                       }d |D             }t	          d|          } |d |D              }|D ]&}|                     t          ||          |           'd S )N>   NoneTrueFalsec              3   N   K   | ]}|                     d           s|v|V   dS __N
startswith.0b
exclusionss     r   	<genexpr>z9TestCase.test_field_named_like_builtin.<locals>.<genexpr>  N        
  
<<%% 
*+:*=*= *=*=*=*= 
  
r   c                      g | ]}|t           fS r   r   r   rN   s     r   
<listcomp>z:TestCase.test_field_named_like_builtin.<locals>.<listcomp>      ===dtSk===r   r#   c                     g | ]}|S r   r   r   s     r   r   z:TestCase.test_field_named_like_builtin.<locals>.<listcomp>      000000r   sortedbuiltins__dict__keysmake_dataclassr'   getattrr+   builtins_names
attributesr#   r   rN   r   s         @r   test_field_named_like_builtinz&TestCase.test_field_named_like_builtin  s     /..
  
  
  
  
(--// 
  
  
 
 
 >=n===
3
++A000001" 	5 	5DWQ--t4444	5 	5r   c                 *   h dt          fdt          j                                        D                       }d |D             }t	          d|d          } |d |D              }|D ]&}|                     t          ||          |           'd S )N>   r   r   r   c              3   N   K   | ]}|                     d           s|v|V   dS r   r   r   s     r   r   z@TestCase.test_field_named_like_builtin_frozen.<locals>.<genexpr>  r   r   c                      g | ]}|t           fS r   r   r   s     r   r   zATestCase.test_field_named_like_builtin_frozen.<locals>.<listcomp>!  r   r   r#   Tr~   c                     g | ]}|S r   r   r   s     r   r   zATestCase.test_field_named_like_builtin_frozen.<locals>.<listcomp>$  r   r   r   r   s         @r   $test_field_named_like_builtin_frozenz-TestCase.test_field_named_like_builtin_frozen  s    
 /..
  
  
  
  
(--// 
  
  
 
 
 >=n===
3
4888A000001" 	5 	5DWQ--t4444	5 	5r   c                 p   t            G d d                      }t          d           G d d                      }||fD ]}|                     |          5  |                      |             |                       t          d d	 d
 d g          D ]\  }}|                     |          5  |                     t
          d|j         d|j         d          5   | |             |                       d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   	 d d d            n# 1 swxY w Y   t          d           G d d                      }|                      |             |                       |                      |             |                       d S )Nc                       e Zd ZdS ))TestCase.test_0_field_compare.<locals>.C0Nr   r   r   r   C0r   +  r$   r   r   Forderc                       e Zd ZdS ))TestCase.test_0_field_compare.<locals>.C1Nr   r   r   r   r   r  /  r$   r   r   clsc                     | |k     S r   r   ar   s     r   <lambda>z/TestCase.test_0_field_compare.<locals>.<lambda>6  
    q1u r   c                     | |k    S r   r   r  s     r   r	  z/TestCase.test_0_field_compare.<locals>.<lambda>7  
    qAv r   c                     | |k    S r   r   r  s     r   r	  z/TestCase.test_0_field_compare.<locals>.<lambda>8  r
  r   c                     | |k    S r   r   r  s     r   r	  z/TestCase.test_0_field_compare.<locals>.<lambda>9  r  r   idx$not supported between instances of '' and ''Tc                       e Zd ZdS )(TestCase.test_0_field_compare.<locals>.CNr   r   r   r   r#   r  ?  r$   r   r#   )	r&   subTestr'   	enumeraterF   r{   r   assertLessEqualassertGreaterEqualr+   r   r   r  r  fnr#   s          r   test_0_field_comparezTestCase.test_0_field_compare)  s   		 	 	 	 	 	 	 
	 
				 	 	 	 	 	 	 
 		 8 
	- 
	-C#&& 	- 	-  ...(*<*<*=*=*<*<*=*=*?  @  @ - -GC #.. - -!33I4[^[g44psp|444A A - -Bssuuccee,,,- - - - - - - - - - - - - - -- - - - - - - - - - - - - - -	-	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 
				 	 	 	 	 	 	 
		QQSS!!##&&&QQSS)))))s[   AD:4-D!	!D
>D!	
DD!	DD!	D:!D%%D:(D%)D::D>	D>	c                    t            G d d                      }t          d           G d d                      }||fD ]/}|                     |          5  |                      |d           |d                     |                      |d	           |d                     t	          d
 d d d g          D ]\  }}|                     |          5  |                     t          d|j         d|j         d          5   | |d	           |d	                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   	 d d d            n# 1 swxY w Y   1t          d           G d d                      }|                      |d	           |d                     | 	                     |d	           |d                     | 	                     |d           |d                     | 
                     |d           |d	                     |                      |d           |d	                     |                      |d           |d                     d S )Nc                       e Zd ZU eed<   dS ))TestCase.test_1_field_compare.<locals>.C0r6   Nr7   r   r   r   r   r  G  r:   r   r   Fr   c                       e Zd ZU eed<   dS ))TestCase.test_1_field_compare.<locals>.C1r6   Nr7   r   r   r   r   r!  K  r:   r   r   r  rA   r   c                     | |k     S r   r   r  s     r   r	  z/TestCase.test_1_field_compare.<locals>.<lambda>S  r
  r   c                     | |k    S r   r   r  s     r   r	  z/TestCase.test_1_field_compare.<locals>.<lambda>T  r  r   c                     | |k    S r   r   r  s     r   r	  z/TestCase.test_1_field_compare.<locals>.<lambda>U  r
  r   c                     | |k    S r   r   r  s     r   r	  z/TestCase.test_1_field_compare.<locals>.<lambda>V  r  r   r  r  r  r  Tc                       e Zd ZU eed<   dS )(TestCase.test_1_field_compare.<locals>.Cr6   Nr7   r   r   r   r#   r'  \  r:   r   r#   )r&   r  r'   r   r  rF   r{   r   
assertLessr  assertGreaterr  r  s          r   test_1_field_comparezTestCase.test_1_field_compareE  s   		 	 	 	 	 	 	 
	 
				 	 	 	 	 	 	 
 		 8 	/ 	/C#&& 
/ 
/  QQ000##CCFFCCFF333(*<*<*=*=*<*<*=*=*?  @  @ / /GC #.. / /!33I4[^[g44psp|444A A / /Bss1vvss1vv.../ / / / / / / / / / / / / / // / / / / / / / / / / / / / /	/
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
/ 
				 	 	 	 	 	 	 
		!aadd###QQqTT11Q44(((QQqTT11Q44(((11Q441&&&!aadd+++!aadd+++++s[   BE&-E	D6*E	6D::E	=D:>E	E&EE&EE&&E*	-E*	c                 d   t            G d d                      }t          d           G d d                      }||fD ]}|                     |          5  |                      |dd           |dd                     |                      |d	d
           |d	d
                     |                      |d	d           |dd                     |                      |d	d           |d	d	                     t	          d d d d g          D ]\  }}|                     |          5  |                     t          d|j         d|j         d          5   | |dd           |dd                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   	 d d d            n# 1 swxY w Y   t          d           G d d                      }t	          d d d g          D ]f\  }}|                     |          5  |                      | |dd           |dd                               d d d            n# 1 swxY w Y   gt	          d d d g          D ]\  }}|                     |          5  |                      | |dd           |dd	                               |                      | |dd	           |d	d                               |                      | |d	d           |d	d	                               d d d            n# 1 swxY w Y   t	          d d d g          D ]\  }}|                     |          5  |                      | |dd	           |dd                               |                      | |d	d           |dd	                               |                      | |d	d	           |d	d                               d d d            n# 1 swxY w Y   d S )Nc                   $    e Zd ZU eed<   eed<   dS )(TestCase.test_simple_compare.<locals>.C0r6   rm   Nr7   r   r   r   r   r-  h  "         FFFFFFFFr   r   Fr   c                   $    e Zd ZU eed<   eed<   dS )(TestCase.test_simple_compare.<locals>.C1r6   rm   Nr7   r   r   r   r   r0  m  r.  r   r   r  r   rA      c                     | |k     S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>x  r
  r   c                     | |k    S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>y  r  r   c                     | |k    S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>z  r
  r   c                     | |k    S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>{  r  r   r  r  r  r  Tc                   $    e Zd ZU eed<   eed<   dS )'TestCase.test_simple_compare.<locals>.Cr6   rm   Nr7   r   r   r   r#   r7    r.  r   r#   c                     | |k    S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>  
    qAv r   c                     | |k    S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>  r9  r   c                     | |k    S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>  r9  r   c                     | |k     S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>  
    q1u r   c                     | |k    S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>  r9  r   c                     | |k    S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>  r9  r   c                     | |k    S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>  r=  r   c                     | |k    S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>  r9  r   c                     | |k    S r   r   r  s     r   r	  z.TestCase.test_simple_compare.<locals>.<lambda>  r9  r   )	r&   r  r'   r   r  rF   r{   r   
assertTruer  s          r   test_simple_comparezTestCase.test_simple_comparef  s   		 	 	 	 	 	 	 
	 
				 	 	 	 	 	 	 
 		 8 	5 	5C#&& 5 5  QCC1II666  QCC1II666##CC1IIss1ayy999##CC1IIss1ayy999(*<*<*=*=*<*<*=*=*?  @  @ 5 5GC #.. 5 5!33I4[^[g44psp|444A A 5 5Bss1ayy##a))4445 5 5 5 5 5 5 5 5 5 5 5 5 5 55 5 5 5 5 5 5 5 5 5 5 5 5 5 5	55 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
				 	 	 	 	 	 	 
		 !"5"5"5"5"5"5"7 8 8 	6 	6GC #&& 6 611Q77AAaGG 4 45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 !"4"4"5"5"5"5"7 8 8 	6 	6GC #&& 6 611Q77AAaGG 4 455511Q77AAaGG 4 455511Q77AAaGG 4 45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6
 !"4"4"5"5"5"5"7 8 8 	6 	6GC #&& 6 611Q77AAaGG 4 455511Q77AAaGG 4 455511Q77AAaGG 4 45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6s   CG 6-F'	#!FF'	FF'	FF'	G 'F++G .F+/G  G	G	 4I  I$	'I$	BMM		M	>BP$$P(	+P(	c           
         t            G d d                      }t            G d d|                      }t          d dfd dfg          D ]h\  }\  }}|                     |	          5  |                      | |d
           |d
                    |           d d d            n# 1 swxY w Y   it          d d d d g          D ]\  }}|                     |	          5  |                     t
          d          5   | |d
           |d
                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )Nc                       e Zd ZU eed<   dS )+TestCase.test_compare_subclasses.<locals>.Br1   Nr7   r   r   r   ru   rG    r:   r   ru   c                       e Zd ZdS )+TestCase.test_compare_subclasses.<locals>.CNr   r   r   r   r#   rI    r$   r   r#   c                     | |k    S r   r   r  s     r   r	  z2TestCase.test_compare_subclasses.<locals>.<lambda>  
    AF r   Fc                     | |k    S r   r   r  s     r   r	  z2TestCase.test_compare_subclasses.<locals>.<lambda>  rK  r   Tr  r   c                     | |k     S r   r   r  s     r   r	  z2TestCase.test_compare_subclasses.<locals>.<lambda>  r=  r   c                     | |k    S r   r   r  s     r   r	  z2TestCase.test_compare_subclasses.<locals>.<lambda>  r9  r   c                     | |k    S r   r   r  s     r   r	  z2TestCase.test_compare_subclasses.<locals>.<lambda>  r=  r   c                     | |k    S r   r   r  s     r   r	  z2TestCase.test_compare_subclasses.<locals>.<lambda>  r9  r   z.not supported between instances of 'B' and 'C')r&   r  r  r'   rF   r{   )r+   ru   r#   r  r  expecteds         r   test_compare_subclassesz TestCase.test_compare_subclasses  s    
	 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 
	 $-/B/BE.J/B/BD.I.K $L $L 	; 	;C"h#&& ; ;  AAaDD!!A$$:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; !"4"4"5"5"4"4"5"5"7 8 8 	# 	#GC #&& # #++I,\^ ^ # #BqqttQQqTTNNN# # # # # # # # # # # # # # ## # # # # # # # # # # # # # #		# 	#sH   +3B**B.	1B.	(ED/#E/D33E6D37EE
	E
	c                    dD ]c\  }}}|                      ||          5  |dk    rY|                     t          d          5  t          ||           G d d                      }d d d            n# 1 swxY w Y   nt          ||           G d d                      }|dk    r|                     d	|j                   |                     d
|j                   |                     d|j                   |                     d|j                   |                     d|j                   n|dk    r|                     d	|j                   |                     d
|j                   |                     d|j                   |                     d|j                   |                     d|j                   n|dk    r|                     d	|j                   |                     d
|j                   |                     d|j                   |                     d|j                   |                     d|j                   d d d            n# 1 swxY w Y   ed S )N))FFneither)FT	exception)TFeq_only)TTboth)eqr  rU  z eq must be true if order is truec                       e Zd ZdS !TestCase.test_eq_order.<locals>.CNr   r   r   r   r#   r[             Dr   r#   c                       e Zd ZdS rZ  r   r   r   r   r#   z!TestCase.test_eq_order.<locals>.C          r   rT  r   __lt____le____gt____ge__rW  rV  )r  rF   rG   r&   assertNotInr   rW   )r+   rX  r  resultr#   s        r   test_eq_orderzTestCase.test_eq_order  s&   *
 $	C $	C%RE6 511 C C[((//
<^__ ! !"b666! ! ! ! ! ! ! 76!! ! ! ! ! ! ! ! ! ! ! ! ! ! !
 "E222       32 **((1:>>>((1:>>>((1:>>>((1:>>>((1:>>>>6))h
;;;h
;;;h
;;;h
;;;h
;;;;9,,h
;;;((1:>>>((1:>>>((1:>>>((1:>>>9C C C C C C C C C C C C C C C$	C $	Cs6   "I%A4(I4A88I;A8<GII	"I	c                     t            G d d                      }|                      |d          j        d           |                     t          d          5   |             d d d            d S # 1 swxY w Y   d S )Nc                   .    e Zd ZU  e            Zeed<   dS ))TestCase.test_field_no_default.<locals>.Cr6   Nr   r   r   rE   r6   r8   r9   r   r   r   r#   rh    s(         UWWAsr   r#   r   8__init__\(\) missing 1 required positional argument: 'x')r&   r'   r6   rF   r{   r   s     r   test_field_no_defaultzTestCase.test_field_no_default  s    		 	 	 	 	 	 	 
	 	1#####I%?@ @ 	 	 ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A22A69A6c                 ^   t                      t           G fdd                      }|                     |j                    |d          }|                     |j        d           |`|                     |j                   |                      |            j                   d S )Nc                   4    e Zd ZU  e           Zeed<   dS )&TestCase.test_field_default.<locals>.CrC   r6   N)r   r   r   rE   r6   r   r9   ro  s   r   r#   rn    s0         g...Av.....r   r#   r   )r   r&   assertIsr6   r'   )r+   r#   r   rC   s      @r   test_field_defaultzTestCase.test_field_default  s    ((		/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 
	/ 	ac7###AbEEb!!! Cac7###aacceW%%%%%r   c                    t            G d d                      }|                     t                    5   |             d d d            n# 1 swxY w Y    |d          }|                     t	          |          d           t            G d d                      } |dd          }|                     t	          |          d           d S )Nc                   2    e Zd ZU  ed          Zeed<   dS )$TestCase.test_not_in_repr.<locals>.CFrL   r6   Nri  r   r   r   r#   rt    /         U&&&As&&&&&r   r#   r   z&TestCase.test_not_in_repr.<locals>.C()c                   <    e Zd ZU  ed          Zeed<   eed<   dS )rt  Fru  r6   rm   Nri  r   r   r   r#   z$TestCase.test_not_in_repr.<locals>.C  s6         U&&&As&&&FFFFFr      z*TestCase.test_not_in_repr.<locals>.C(y=20))r&   assertRaisesr{   r'   rL   r   s      r   test_not_in_reprzTestCase.test_not_in_repr  s8   		' 	' 	' 	' 	' 	' 	' 
	'y)) 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	AbEEa"JKKK		 	 	 	 	 	 	 
	 Ab"IIa"NOOOOOs   AAAc                    t            G d d                      }|                      |             |dd                     |                      |dd           |dd                     |                      |d           |dd                     |                      |dd           |dd                     d S )	Nc                   B    e Zd ZU dZeed<    edd          Zeed<   dS )'TestCase.test_not_in_compare.<locals>.Cr   r6   F   )comparerC   rm   N)r   r   r   r6   r8   r9   rE   rm   r   r   r   r#   r}    s>         AsJJJU5!444As44444r   r#   r   rx  rA   r   rp   r~  r&   r'   r   r   s     r   test_not_in_comparezTestCase.test_not_in_compare
  s    		5 	5 	5 	5 	5 	5 	5 
	5 	aa2hh'''1b11Q88,,,AAaDD!!Ar((+++AAaHHaa2hh/////r   c                 $    G d d          d}|                      t          |          5  t           G d d                      }d d d            n# 1 swxY w Y   |                      t          |          5  t           G fdd                      }d d d            n# 1 swxY w Y   |                      t          |          5               d _        t           G fdd                      }d d d            d S # 1 swxY w Y   d S )	Nc                       e Zd ZdZdS )7TestCase.test_no_unhashable_default.<locals>.UnhashableNr   r   r   r   
Unhashabler            HHHr   r  z-mutable default .* for field a is not allowedc                       e Zd ZU i Zeed<   dS .TestCase.test_no_unhashable_default.<locals>.Ar  N)r   r   r   r  dictr9   r   r   r   Ar    s         4r   r  c                   0    e Zd ZU               Zeed<   dS r  r   r   r   r  r   r9   )r  s   r   r  z.TestCase.test_no_unhashable_default.<locals>.A!  s)         #3%%%%%r   c                      dS Nr   r   r   r   r   r	  z5TestCase.test_no_unhashable_default.<locals>.<lambda>*  s    ! r   c                        e Zd ZU  Zeed<   dS r  r  )
unhashables   r   r  z.TestCase.test_no_unhashable_default.<locals>.A+  s#         #3#####r   )rF   rG   r&   r   )r+   unhashable_rer  r  r  s      @@r   test_no_unhashable_defaultz#TestCase.test_no_unhashable_default  sG   	 	 	 	 	 	 	 	 H##J>> 	 	       Y	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 ##J>> 	& 	&& & & & & & & & & Y&	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& ##J>> 	$ 	$#J"+)J$ $ $ $ $ $ $ $ $ Y$	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s5   AAA:B##B'*B'	/DD	D	c           	         dD ]\  }|                                5  t          d           G fdd                      }|dk    r:|                     t           |d                    t          d	                     n?|d
k    r9|                     t           |d                    t          d                     d d d            n# 1 swxY w Y   d S )N))TFrE   )TTrE   )FFabsent)FTr  )NFr  )NTrE   )r   r  Tr   c                   8    e Zd ZU  e d          Zeed<   dS ))TestCase.test_hash_field_rules.<locals>.Cr   )r  r   rC   r6   Nri  )r  hash_s   r   r#   r  <  s4         "U7JJJAsJJJJJr   r#   rE   r   )r   r  r   )r  r&   r'   r   )r+   rd  r#   r  r  s      @@r   test_hash_field_ruleszTestCase.test_hash_field_rules/  s[   . 	? 	?)Uw 5':: ? ?t,,,K K K K K K K K K K -,K W$$$$T!!A$$ZZd<<<<x''$$T!!A$$ZZb:::? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	? 	?s   B&CC	C	c                 \   t            G d d                      }|                     d |            j                   t            G d d                      }|                     d |d          j                   |                     t	           |d                    dddd	           d S )
Nc                   2    e Zd ZU  ed          Zeed<   dS ).TestCase.test_init_false_no_default.<locals>.CFrK   r6   Nri  r   r   r   r#   r  L  rv  r   r#   r6   c                   X    e Zd ZU eed<   dZeed<    ed          Zeed<   dZeed<   d	S )
r  r6   r   rm   Fr  r   r   tN)	r   r   r   r8   r9   rm   rE   r   r  r   r   r   r#   z.TestCase.test_init_false_no_default.<locals>.CR  sP         FFFAsJJJU&&&As&&&AsKKKKKr   r   r   r   r   )r  r6   rm   )r&   rc  r   r'   varsr   s     r   test_init_false_no_defaultz#TestCase.test_init_false_no_defaultI  s     
	' 	' 	' 	' 	' 	' 	' 
	' 	aaccl+++		 	 	 	 	 	 	 
	 	aaddm,,,aadd2AA%>%>?????r   c                 j   t            G d d                      }t          |          }|                     |t                     |D ]J}|                     t          |          t                     |                     |j        |j	                   K| 
                    t          |          d           | 
                    |d         j        d           | 
                    |d         j        t                     |                     t          |d                     |                     |d         j                   |                     |d         j                   | 
                    |d         j        d           | 
                    |d         j        t$                     |                     t)          |d                     |                     |d         j                   |                     |d         j                   | 
                    |d         j        d	           | 
                    |d         j        t$                     |                     t          |d	                     |                     |d         j                   |                     |d         j                   d S )
Nc                   `    e Zd ZU eed<    edd          Zeed<    ed          Zeed<   dS )%TestCase.test_class_marker.<locals>.Cr6   FNrK   rC   rm   ru  r   )	r   r   r   r8   r9   rE   rm   r   r   r   r   r   r#   r  ]  sW         FFFUt444As444U&&&As&&&&&r   r#   rp   r   r6   rA   rm   r1  r   )r&   r)   assertIsInstancetuplerp  rV   FieldrW   rN   r9   r'   r(   r8   assertFalsehasattrrC  rK   rL   r   assertIsNoner   )r+   r#   
the_fieldsfs       r   test_class_markerzTestCase.test_class_marker\  s\   		' 	' 	' 	' 	' 	' 	' 
	'
 AYY
 	j%000 	5 	5AMM$q''5)))MM!&!"34444Z!,,,A+S111A+S111C)))A+,,,A+,,,A+S111A+S111'!S//***A+,,,A+,,,A+S111A+S111C)))A+,,,A+,,,,,r   c                    t            G d d                      }t            G d d|                      }|                     d t          |          D             g d           t            G d d|                      }|                     d	 t          |          D             g d
           t            G d d|                      }|                     d t          |          D             g d           d S )Nc                   :    e Zd ZU dZeed<   dZeed<   dZeed<   dS )$TestCase.test_field_order.<locals>.BB:ar  B:br   B:cr   N)r   r   r   r  r   r9   r   r   r   r   r   ru   r  ~  s7         AsNNNAsNNNAsNNNNNr   ru   c                       e Zd ZU dZeed<   dS )$TestCase.test_field_order.<locals>.CC:br   N)r   r   r   r   r   r9   r   r   r   r#   r             AsNNNNNr   r#   c                 *    g | ]}|j         |j        fS r   rN   rC   r   r  s     r   r   z-TestCase.test_field_order.<locals>.<listcomp>  !    AAA!1619-AAAr   )r  r  )r   r  )r   r  c                       e Zd ZU dZeed<   dS )$TestCase.test_field_order.<locals>.DD:cr   N)r   r   r   r   r   r9   r   r   r   r`   r    r  r   r`   c                 *    g | ]}|j         |j        fS r   r  r  s     r   r   z-TestCase.test_field_order.<locals>.<listcomp>  r  r   )r  r   r  r   r  c                   ,    e Zd ZU dZeed<   dZeed<   dS )$TestCase.test_field_order.<locals>.EE:ar  E:ddN)r   r   r   r  r   r9   r  r   r   r   Er    s*         AsNNNAsNNNNNr   r  c                 *    g | ]}|j         |j        fS r   r  r  s     r   r   z-TestCase.test_field_order.<locals>.<listcomp>  r  r   ))r  r  r  r  )r  r  r&   r'   r)   )r+   ru   r#   r`   r  s        r   test_field_orderzTestCase.test_field_order}  s   		 	 	 	 	 	 	 
	
 
	 	 	 	 	 	 	 
	 	AAvayyAAA( ( (	) 	) 	)
 
	 	 	 	 	 	 	 
	 	AAvayyAAA( ( (	) 	) 	)
 
	 	 	 	 	 	 	 
	 	AAvayyAAA( ( (	) 	) 	) 	) 	)r   c                 T   t                      t           G fdd                      }|                     t          |d                     |                     t          |d                     |                     |j                   |                     |j        d           d S )Nc                   n    e Zd ZU eed<    ed          Zeed<    Zeed<    ed          Z	eed<   d	S )
$TestCase.test_class_attrs.<locals>.Cr6   Fru  rm   r   r   ro  r  N)
r   r   r   r8   r9   rE   rm   r   r   r  ro  s   r   r#   r    sf         FFFU&&&As&&&AvU3'''As'''''r   r#   r6   rm   r   )r   r&   r  r  rp  r   r'   r  )r+   r#   rC   s     @r   test_class_attrszTestCase.test_class_attrs  s     ((		( 	( 	( 	( 	( 	( 	( 	( 	( 
	( 	C)))C)))g&&&c"""""r   c                 n   t           g dgft          i ddift          t                      t          dg          ffD ]t\  |                               5  |                     t
          d d          5  t           G fdd                      }d d d            n# 1 swxY w Y   |                     t
          d d          5  t           G fd	d                      }d d d            n# 1 swxY w Y    G d
 d          |                     t
          d          5  t           G fdd                      }d d d            n# 1 swxY w Y   t           G fdd                      }t           G fdd                      }d d d            n# 1 swxY w Y   vd S )NrA   r   typzmutable default z for field x is not allowedc                        e Zd ZU  Zed<   dS )8TestCase.test_disallowed_mutable_defaults.<locals>.Pointr6   N)r   r   r   r6   r9   )emptyr  s   r   Pointr    s         !&3r   r  z for field y is not allowedc                        e Zd ZU  Zed<   dS )r  rm   N)r   r   r   rm   r9   )	non_emptyr  s   r   r  z8TestCase.test_disallowed_mutable_defaults.<locals>.Point  s#         !*3*****r   c                       e Zd ZdS );TestCase.test_disallowed_mutable_defaults.<locals>.SubclassNr   r   r   r   Subclassr    r   r   r  z7mutable default .*Subclass'> for field z is not allowedc                   0    e Zd ZU               Zed<   dS )r  r   N)r   r   r   r   r9   r  r  s   r   r  z8TestCase.test_disallowed_mutable_defaults.<locals>.Point  s)         !)3+++++r   c                   <    e Zd ZU               Ze          ed<   dS )4TestCase.test_disallowed_mutable_defaults.<locals>.Cr   N)r   r   r   r   r   r9   r  s   r   r#   r    s-         '*suuAx},,,,,r   r#   c                   <    e Zd ZU               Ze         ed<   dS )r  r6   N)r   r   r   r6   r   r9   r  s   r   r#   z4TestCase.test_disallowed_mutable_defaults.<locals>.C  s-         '/xzzAx}11111r   )listr  setr  rF   rG   r&   )r+   r  r#   r  r  r  r  s      @@@@r    test_disallowed_mutable_defaultsz)TestCase.test_disallowed_mutable_defaults  s   '+R!o'+R!A&7'*CEE3s88&<&( )	2 )	2!C	 #&& %2 %2++J-?s -? -? -?@ @ ' ' ' ' ' ' ' ' ' ' ' ' Y'	' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ++J-?s -? -? -?@ @ + + + + + + + + + + + + Y+	+ + + + + + + + + + + + + + + *))))s)))++J-J. . , , , , , , , , , , , , Y,, , , , , , , , , , , , , , , - - - - - - - - - - 2 2 2 2 2 2 2 2 2 2 2I%2 %2 %2 %2 %2 %2 %2 %2 %2 %2 %2 %2 %2 %2 %2	)	2 )	2s~    F(<B&F(&B**F(-B*."F(C:.F(:C>>F(C>,F(.EF(EF(E <F((F,	/F,	c                     G d d          t            G fdd                      }             } ||          } ||          }|                     ||           |j        j                            ddg           |                     ||           |                     |j        j        ddg           |                     |j        |j                   d S )Nc                       e Zd Zd ZdS )<TestCase.test_deliberately_mutable_defaults.<locals>.Mutablec                     g | _         d S r   lr   s    r   r   zETestCase.test_deliberately_mutable_defaults.<locals>.Mutable.__init__  s    r   Nr   r   r   r   r   r   r   Mutabler    s#            r   r  c                       e Zd ZU  ed<   dS )6TestCase.test_deliberately_mutable_defaults.<locals>.Cr6   Nr   r   r   r9   )r  s   r   r#   r    s         JJJJJr   r#   rA   r1  )r&   r'   r6   r  extendrp  )r+   r#   lsto1o2r  s        @r   "test_deliberately_mutable_defaultsz+TestCase.test_deliberately_mutable_defaults  s   	 	 	 	 	 	 	 	 
	 	 	 	 	 	 	 	 	 
	 giiQsVVQsVVR   
q!fR   !Q(((bdBD!!!!!r   c                     t                       G d d                      }|                      |d          j        d           d S )Nc                       e Zd ZU eed<   dS )#TestCase.test_no_options.<locals>.Cr6   Nr7   r   r   r   r#   r    r:   r   r#   r;   r<   r   s     r   test_no_optionszTestCase.test_no_options  s`    		 	 	 	 	 	 	 
	 	2"%%%%%r   c                    t            G d d                      }|                      |dd          d           t            G d d                      }|                      |dd           |dd                     d S )	Nc                   $    e Zd ZU eed<   eed<   dS )&TestCase.test_not_tuple.<locals>.Pointr6   rm   Nr7   r   r   r   r  r    r.  r   r  rA   r1  rA   r1  c                   $    e Zd ZU eed<   eed<   dS )"TestCase.test_not_tuple.<locals>.Cr6   rm   Nr7   r   r   r   r#   r    r.  r   r#   rp   )r&   r   )r+   r  r#   s      r   test_not_tuplezTestCase.test_not_tuple  s    		 	 	 	 	 	 	 
	 	EE!QKK000 
	 	 	 	 	 	 	 
	 	EE!QKK1a11111r   c                    t            G d d                      }t            G d d                      }|                      |ddd           |ddd                     |                      |dd	d          d
           |                     t          d          5   |ddd          \  }}}d d d            n# 1 swxY w Y   t            G d d                      }|                      |ddd           |                       d S )Nc                   .    e Zd ZU eed<   eed<   eed<   dS )2TestCase.test_not_other_dataclass.<locals>.Point3Dr6   rm   r   Nr7   r   r   r   Point3Dr    +         FFFFFFFFFFFr   r  c                   .    e Zd ZU eed<   eed<   eed<   dS )/TestCase.test_not_other_dataclass.<locals>.DateyearmonthdayNr7   r   r   r   Dater    s+         IIIJJJHHHHHr   r
  i     rp   rA   r1  )rA   r1  rp   unpackr~  r   c                   :    e Zd ZU dZeed<   dZeed<   dZeed<   dS )4TestCase.test_not_other_dataclass.<locals>.Point3Dv1r   r6   rm   r   N)r   r   r   r6   r8   r9   rm   r   r   r   r   	Point3Dv1r  "  s7         AsJJJAsJJJAsJJJJJr   r  r   )r&   r   rF   r{   )r+   r  r
  r6   rm   r   r  s          r   test_not_other_dataclassz!TestCase.test_not_other_dataclass
  s    
	 	 	 	 	 	 	 
	
 
	 	 	 	 	 	 	 
	
 	GGD!Q//dAq1A1ABBBGGAq!,,i888 ##Ix88 	' 	'gaA&&GAq!	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'
 
	 	 	 	 	 	 	 
	 	GGAq!,,iikk:::::s   B;;B?B?c                       G d d                        fd}t            G fdd                      } ||           t          dd           G fdd                      } ||           d S )	Nc                       e Zd ZdS )-TestCase.test_function_annotations.<locals>.FNr   r   r   r   Fr  +  r]   r   r  c                                         | j        d         t                                          | j        d         t                                          | j        d                                         | j        d         t                                          | j        d         t
                     t          j        | j                  }	                    |j
        d            t          |j                                                  }t          |          }                     |j        d           t          |          }                     |j        d           	                    |j        t                                          |j        t          j        j                                        |j        t          j        j                   t          |          }                     |j        d           	                    |j        t                                          |j        t          j        j                                        |j        t          j        j                   t          |          }                     |j        d           	                    |j                                        |j        t          j        j                   t          |          }                     |j        d           	                    |j        t                                          |j        t          j        j                                       t.          t          |           d S )Nr1   jkr  r   r+   )r'   r9   r8   r   floatcomplexr   r   r   rp  return_annotationr   r   valuesr   rN   
annotationrC   	Parameterr  kindPOSITIONAL_OR_KEYWORDry  StopIteration)r  r   paramsparamr  r+   s       r   validate_classz:TestCase.test_function_annotations.<locals>.validate_class/  s    S05s;;;S05s;;;S05q999S05u===S05w???  )#,77IMM)5t<<< ).557788FLLEUZ000LLEUZ---MMU-s333U]G,=,CDDDUZ):)PQQQLLEUZ---MMU-s333U]G,=,CDDDUZ):)PQQQLLEUZ---MMU-q111UZ):)PQQQLLEUZ---MMU-u555UZ):)PQQQmT6:::::r   c                   z    e Zd ZU eed<   eed<   Z ed<    ed          Ze	ed<    edd	          Z
eed
<   dS -TestCase.test_function_annotations.<locals>.Cr1   r  r  Nro  r  y      @      @FrC   rK   r   r   r   r   r8   r9   r   r  rE   r  r  r   r  r  r  s   r   r#   r&  Z  n         FFFFFFAqHHHU4(((Au(((uT666Aw66666r   r#   T)r   r   c                   z    e Zd ZU eed<   eed<   Z ed<    ed          Ze	ed<    edd	          Z
eed
<   dS r%  r(  r)  s   r   r#   z-TestCase.test_function_annotations.<locals>.Ce  r*  r   )r&   )r+   r#  r#   r  r  s   `  @@r   test_function_annotationsz"TestCase.test_function_annotations)  s   	 	 	 	 	 	 	 	ACC(	; (	; (	; (	; (	; (	;V 
	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 
	7 	q 
$D	1	1	1	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 
2	1	7 	qr   c                    t            G d d                      }|                     t          d          5   |             d d d            n# 1 swxY w Y   |                     d|j                   t            G d d                      }|                     t          d          5   |             d d d            n# 1 swxY w Y   |                     d|j                   d S )Nc                   2    e Zd ZU  ee          Zeed<   dS )(TestCase.test_missing_default.<locals>.Cro  r6   Nr   r   r   rE   rO   r6   r8   r9   r   r   r   r#   r/  r  s/         5)))As)))))r   r#   3__init__\(\) missing 1 required positional argumentr6   c                       e Zd ZU eed<   dS )(TestCase.test_missing_default.<locals>.Dr6   Nr7   r   r   r   r`   r3  {  r:   r   r`   r&   rF   r{   rc  r   rb   s      r   test_missing_defaultzTestCase.test_missing_defaulto  s    
	* 	* 	* 	* 	* 	* 	* 
	*##I%:; ; 	 	 ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	aj)))		 	 	 	 	 	 	 
	##I%:; ; 	 	 ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	aj)))))#   AAA(B??CCc                    t            G d d                      }|                     t          d          5   |             d d d            n# 1 swxY w Y   |                     d|j                   t            G d d                      }|                     t          d          5   |             d d d            n# 1 swxY w Y   |                     d|j                   d S )Nc                   2    e Zd ZU  ee          Zeed<   dS )0TestCase.test_missing_default_factory.<locals>.CrD   r6   Nr0  r   r   r   r#   r9    s/         5111As11111r   r#   r1  r6   c                   4    e Zd ZU  eee          Zeed<   dS )0TestCase.test_missing_default_factory.<locals>.DrB   r6   Nr0  r   r   r   r`   r<    s1         5'BBBAsBBBBBr   r`   r4  rb   s      r   test_missing_default_factoryz%TestCase.test_missing_default_factory  s    
	2 	2 	2 	2 	2 	2 	2 
	2##I%:; ; 	 	 ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	aj)))		C 	C 	C 	C 	C 	C 	C 
	C##I%:; ; 	 	 ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	aj)))))r6  c                 V    |                      dt          t                               d S )NzMISSING_TYPE object)rW   rL   rO   r   s    r   test_missing_reprzTestCase.test_missing_repr  s#    +T']];;;;;r   c                 ~   t            G d d                      }|                     t          |j                  dg           |                      |d                                          d           |                      |d          j        d           |                      |d          j        d           d S )Nc                   B    e Zd ZU eed<   defdZedefd            ZdS )7TestCase.test_dont_include_other_annotations.<locals>.Cr1   returnc                     dS Nr~  r   r   s    r   r   z;TestCase.test_dont_include_other_annotations.<locals>.C.foo      qr   c                     dS Nr   r   r   s    r   barz;TestCase.test_dont_include_other_annotations.<locals>.C.bar  s    qr   N)r   r   r   r8   r9   r   propertyrI  r   r   r   r#   rB    s_         FFFS    S    X  r   r#   r1   r   r~  r   )r&   r'   r  r9   r   rI  r1   r   s     r   #test_dont_include_other_annotationsz,TestCase.test_dont_include_other_annotations  s    		 	 	 	 	 	 	 
	 	a/003%8882a(((2A&&&2"%%%%%r   c                 P   t            G d d                      }|                     t                    5   |             d d d            n# 1 swxY w Y   t            G d d                      }|                     t                    5   |             d d d            n# 1 swxY w Y    |d           t          d           G d d                      } |             t            G d d                      }|                      |            j        d	           |                      |d
          j        d           t          d           G d d                      }|                     t
                    5   |             d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )"TestCase.test_post_init.<locals>.Cc                     t                      r   r   r   s    r   __post_init__z0TestCase.test_post_init.<locals>.C.__post_init__      !mm#r   Nr   r   r   rQ  r   r   r   r#   rN    #        $ $ $ $ $r   r#   c                   $    e Zd ZU dZeed<   d ZdS )rN  r   r1   c                 8    | j         dk    rt                      d S Nr   )r1   r   r   s    r   rQ  z0TestCase.test_post_init.<locals>.C.__post_init__  s    6R<<%--'  <r   N)r   r   r   r1   r8   r9   rQ  r   r   r   r#   z"TestCase.test_post_init.<locals>.C  s2         AsKKK( ( ( ( (r   r   Fr  c                       e Zd Zd ZdS )rN  c                     t                      r   rP  r   s    r   rQ  z0TestCase.test_post_init.<locals>.C.__post_init__  rR  r   NrS  r   r   r   r#   z"TestCase.test_post_init.<locals>.C  rT  r   c                   $    e Zd ZU dZeed<   d ZdS )rN  r   r6   c                 &    | xj         dz  c_         d S Nr1  rh   r   s    r   rQ  z0TestCase.test_post_init.<locals>.C.__post_init__      !r   Nr   r   r   r6   r8   r9   rQ  r   r   r   r#   z"TestCase.test_post_init.<locals>.C  2         AsJJJ    r   r   r1  r~  Tr~   c                   $    e Zd ZU dZeed<   d ZdS )rN  r   r6   c                 &    | xj         dz  c_         d S r\  rh   r   s    r   rQ  z0TestCase.test_post_init.<locals>.C.__post_init__  r]  r   Nr^  r   r   r   r#   z"TestCase.test_post_init.<locals>.C  r_  r   )r&   ry  r   r'   r6   FrozenInstanceErrorr   s     r   test_post_initzTestCase.test_post_init  s   		$ 	$ 	$ 	$ 	$ 	$ 	$ 
	$ {++ 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
	( 	( 	( 	( 	( 	( 	( 
	(
 {++ 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
! 
				$ 	$ 	$ 	$ 	$ 	$ 	$ 
		$ 	
		 	 	 	 	 	 	 
	 	"""1### 
$				 	 	 	 	 	 	 
 		 233 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s5   AAAB""B&)B&FF"Fc                     G d d          }t            G d d|                      }|                      |            j        d           t            G d d|                      }|                     t                    5   |             d d d            n# 1 swxY w Y   t            G d d|                      }|                     t                    5   |             d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )(TestCase.test_post_init_super.<locals>.Bc                     t                      r   rP  r   s    r   rQ  z6TestCase.test_post_init_super.<locals>.B.__post_init__  rR  r   NrS  r   r   r   ru   rf    s#        $ $ $ $ $r   ru   c                       e Zd Zd ZdS )(TestCase.test_post_init_super.<locals>.Cc                     d| _         d S rH  rh   r   s    r   rQ  z6TestCase.test_post_init_super.<locals>.C.__post_init__      r   NrS  r   r   r   r#   ri    s#            r   r#   r   c                        e Zd Z fdZ xZS )ri  c                 H    t                                                       d S r   )superrQ  r+   	__class__s    r   rQ  z6TestCase.test_post_init_super.<locals>.C.__post_init__  s    %%'''''r   )r   r   r   rQ  __classcell__rp  s   @r   r#   z(TestCase.test_post_init_super.<locals>.C  s8        ( ( ( ( ( ( ( ( (r   c                       e Zd ZdS )ri  Nr   r   r   r   r#   z(TestCase.test_post_init_super.<locals>.C  r$   r   )r&   r'   r6   ry  r   r+   ru   r#   s      r   test_post_init_superzTestCase.test_post_init_super  s   	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 
	 	 	 	 	 	 	 
	 	""" 
	( 	( 	( 	( 	( 	( 	( 
	( {++ 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 
	 	 	 	 	 	 	 
	 {++ 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   BBBC00C47C4c                     dt            G fdd                      }|                                 |dd          }|                     |j        |j        fd           |                                d S )NFc                   @    e Zd ZU eed<   eed<   e fd            ZdS )/TestCase.test_post_init_staticmethod.<locals>.Cr6   rm   c                      d d S NTr   flags   r   rQ  z=TestCase.test_post_init_staticmethod.<locals>.C.__post_init__  s     r   N)r   r   r   r8   r9   staticmethodrQ  r{  s   r   r#   rx    sL         FFFFFF    \  r   r#   rp   r~  rp   r~  )r&   r  r'   r6   rm   rC  )r+   r#   r   r|  s      @r   test_post_init_staticmethodz$TestCase.test_post_init_staticmethod  s    		 	 	 	 	 	 	 	 	 
	 	AaGG!#qsV,,,r   c                     t            G d d                      }|                     |j                    |dd          }|                     |j        |j        fd           |                     |j                   d S )Nc                   >    e Zd ZU dZeed<   eed<   ed             ZdS ).TestCase.test_post_init_classmethod.<locals>.CFr6   rm   c                     d| _         d S rz  r{  r  s    r   rQ  z<TestCase.test_post_init_classmethod.<locals>.C.__post_init__  s    r   N)r   r   r   r|  r8   r9   classmethodrQ  r   r   r   r#   r  
  sF         DFFFFFF    [     r   r#   rp   r~  r~  )r&   r  r|  r'   r6   rm   rC  r   s      r   test_post_init_classmethodz#TestCase.test_post_init_classmethod	  s    		  	  	  	  	  	  	  
	  	   AaGG!#qsV,,,r   c                 >   t            G d d                      }t            G d d                      }t            G d d||                      } |            }|                     |j                   |                     |j                   t            G d d                      }t            G d	 d
                      }t            G d d||                      } |            }|                     |j                   |                     |j                   d S )Nc                       e Zd ZdS )2TestCase.test_post_init_not_auto_added.<locals>.A0Nr   r   r   r   A0r    r$   r   r  c                   $    e Zd ZU dZeed<   d ZdS )2TestCase.test_post_init_not_auto_added.<locals>.B0Fb_calledc                     d| _         d S rz  r  r   s    r   rQ  z@TestCase.test_post_init_not_auto_added.<locals>.B0.__post_init__$       $r   Nr   r   r   r  boolr9   rQ  r   r   r   B0r  !  5         "Hd"""% % % % %r   r  c                   .     e Zd ZU dZeed<    fdZ xZS )2TestCase.test_post_init_not_auto_added.<locals>.C0Fc_calledc                 V    t                                                       d| _        d S rz  rn  rQ  r  ro  s    r   rQ  z@TestCase.test_post_init_not_auto_added.<locals>.C0.__post_init__*  $    %%''' $r   r   r   r   r  r  r9   rQ  rq  rr  s   @r   r   r  '  J         "Hd"""% % % % % % % % %r   r   c                       e Zd Zd ZdS )2TestCase.test_post_init_not_auto_added.<locals>.A1c                     d S r   r   r   s    r   rQ  z@TestCase.test_post_init_not_auto_added.<locals>.A1.__post_init__:  r   r   NrS  r   r   r   A1r  8  s#            r   r  c                   $    e Zd ZU dZeed<   d ZdS )2TestCase.test_post_init_not_auto_added.<locals>.B1Fr  c                     d| _         d S rz  r  r   s    r   rQ  z@TestCase.test_post_init_not_auto_added.<locals>.B1.__post_init__@  r  r   Nr  r   r   r   B1r  =  r  r   r  c                   .     e Zd ZU dZeed<    fdZ xZS )2TestCase.test_post_init_not_auto_added.<locals>.C1Fr  c                 V    t                                                       d| _        d S rz  r  ro  s    r   rQ  z@TestCase.test_post_init_not_auto_added.<locals>.C1.__post_init__F  r  r   r  rr  s   @r   r   r  C  r  r   r   )r&   rC  r  r  r  )r+   r  r  r   r   r  r  r   s           r   test_post_init_not_auto_addedz&TestCase.test_post_init_not_auto_added  s   
 
	 	 	 	 	 	 	 
	 
	% 	% 	% 	% 	% 	% 	% 
	%
 
	% 	% 	% 	% 	%R 	% 	% 
	% BDD
###
### 
	 	 	 	 	 	 	 
	 
	% 	% 	% 	% 	% 	% 	% 
	%
 
	% 	% 	% 	% 	%R 	% 	% 
	% BDD$$$
#####r   c                    t            G d d                      } |d          }|                     t          |          d           |                     t          t	          |                    d           |                     t          |j                  d           |                     |j        d           |                     |j        d           |                     |j        d	           |                     |j	        d
           |xj        dz  c_        |                     |j        d            |d          }|                     |j
        |j        fd           |                     |j        d           |                     |j        d           |                     |j        d	           |                     |j	        d
           d S )Nc                       e Zd ZU eed<   dZeed<   dZee         ed<   dZee         ed<   dZ	ee         ed	<   d
Z
eed<   dS )"TestCase.test_class_var.<locals>.Cr6   r   rm     r     w  r    sN)r   r   r   r8   r9   rm   r   r   r  r  r  r   r   r   r#   r  U  st         FFFAsKKK#Ax}####Ax}####Ax}####Ax#####r   r#   r   z-TestCase.test_class_var.<locals>.C(x=5, y=10)r1  r  r  r  r  r  rA     rx  rx  r   )r&   r'   rL   r(   r)   r9   r   r  r  r  r6   rm   r   s      r   test_class_varzTestCase.test_class_varS  s   		$ 	$ 	$ 	$ 	$ 	$ 	$ 
	$ AaDDa"QRRRVAYY+++Q.//333d###d###d###d###	qd###AbEE!#qsX...d###d###d###d#####r   c                 p    t            G d d                      }|                     d|j                   d S )Nc                   &    e Zd ZU ee         ed<   dS )-TestCase.test_class_var_no_default.<locals>.Cr6   N)r   r   r   r   r8   r9   r   r   r   r#   r  q  s"         }r   r#   r6   r&   rc  r   r   s     r   test_class_var_no_defaultz"TestCase.test_class_var_no_defaulto  sT    		 	 	 	 	 	 	 
	 	aj)))))r   c                     |                      t          d          5  t           G d d                      }|                     d|j                   d d d            d S # 1 swxY w Y   d S )Ncannot have a default factoryc                   >    e Zd ZU  ee          Zee         ed<   dS )2TestCase.test_class_var_default_factory.<locals>.Cr:  r6   Nr   r   r   rE   r8   r6   r   r9   r   r   r   r#   r  |  3         #(5#=#=#=8C======r   r#   r6   rF   r{   r&   rc  r   r   s     r   test_class_var_default_factoryz'TestCase.test_class_var_default_factoryw  s     ##I$CE E 	. 	.> > > > > > > Y> S!*---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.   6AA#&A#c                     t            G d d                      }|                     |j        d           t            G d d                      }|                     |j        d           d S )Nc                   *    e Zd ZU dZee         ed<   dS )/TestCase.test_class_var_with_default.<locals>.Cr   r6   N)r   r   r   r6   r   r8   r9   r   r   r   r#   r    s&         !Ax}!!!!!r   r#   r   c                   >    e Zd ZU  ed          Zee         ed<   dS )r  r   ro  r6   N)r   r   r   rE   r6   r   r8   r9   r   r   r   r#   z/TestCase.test_class_var_with_default.<locals>.C  s3         $uR000Ax}00000r   r<   r   s     r   test_class_var_with_defaultz$TestCase.test_class_var_with_default  s    		" 	" 	" 	" 	" 	" 	" 
	"b!!!		1 	1 	1 	1 	1 	1 	1 
	1b!!!!!r   c                 ^   t          d           G d d                      } |d          }|                     t           |d                    d           |                     t          t	          |                    d           |                     t          |j                  d           |                     |j        d           |                     |j        d	           |                     |j        d
           |xj        dz  c_        |                     |j        d            |d          }|                     |j	        |j
        fd           |                     |j        d           |                     |j        d	           |                     |j        d
           d S )NTr~   c                   v    e Zd ZU eed<   dZeed<   dZee         ed<   dZee         ed<   dZ	ee         ed	<   d
S ))TestCase.test_class_var_frozen.<locals>.Cr6   r   rm   r  r   r  r  r  r  N)
r   r   r   r8   r9   rm   r   r   r  r  r   r   r   r#   r    sd         FFFAsKKK#Ax}####Ax}####Ax}#####r   r#   r   z4TestCase.test_class_var_frozen.<locals>.C(x=5, y=10)r1  r  r  r  rA   r  rx  r  )r&   r'   rL   r(   r)   r9   r   r  r  r6   rm   r   s      r   test_class_var_frozenzTestCase.test_class_var_frozen  s   	$				$ 	$ 	$ 	$ 	$ 	$ 	$ 
 		$ AaDDaadd%[\\\VAYY+++Q.//333d###d###d### 	
qd###AbEE!#qsX...d###d###d#####r   c                 p    t            G d d                      }|                     d|j                   d S )Nc                   &    e Zd ZU ee         ed<   dS ),TestCase.test_init_var_no_default.<locals>.Cr6   N)r   r   r   InitVarr8   r9   r   r   r   r#   r    s         s|OOOOOr   r#   r6   r  r   s     r   test_init_var_no_defaultz!TestCase.test_init_var_no_default  sT    		 	 	 	 	 	 	 
	 	aj)))))r   c                     |                      t          d          5  t           G d d                      }|                     d|j                   d d d            d S # 1 swxY w Y   d S )Nr  c                   >    e Zd ZU  ee          Zee         ed<   dS )1TestCase.test_init_var_default_factory.<locals>.Cr:  r6   N)r   r   r   rE   r8   r6   r  r9   r   r   r   r#   r    s3         "'%"<"<"<73<<<<<<r   r#   r6   r  r   s     r   test_init_var_default_factoryz&TestCase.test_init_var_default_factory  s     ##I$CE E 	. 	.= = = = = = = Y= S!*---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.r  c                     t            G d d                      }|                     |j        d           t            G d d                      }|                     |j        d           d S )Nc                   *    e Zd ZU dZee         ed<   dS ).TestCase.test_init_var_with_default.<locals>.Cr   r6   N)r   r   r   r6   r  r8   r9   r   r   r   r#   r    s&          Aws|     r   r#   r   c                   >    e Zd ZU  ed          Zee         ed<   dS )r  r   ro  r6   N)r   r   r   rE   r6   r  r8   r9   r   r   r   r#   z.TestCase.test_init_var_with_default.<locals>.C  s3         #eB///Aws|/////r   r<   r   s     r   test_init_var_with_defaultz#TestCase.test_init_var_with_default  s    		! 	! 	! 	! 	! 	! 	! 
	!b!!!		0 	0 	0 	0 	0 	0 	0 
	0b!!!!!r   c                     t            G d d                      } |d          }|                     |j        d           d S )Nc                   >    e Zd ZU dZeed<   dZee         ed<   d ZdS )!TestCase.test_init_var.<locals>.CNr6   
init_paramc                 ,    | j         |dz  | _         d S d S r\  rh   )r+   r  s     r   rQ  z/TestCase.test_init_var.<locals>.C.__post_init__  s    6>'\DFFF ">r   )	r   r   r   r6   r8   r9   r  r  rQ  r   r   r   r#   r    sF         AsMMM'+J+++* * * * *r   r#   r   )r  rx  r<   r   s      r   test_init_varzTestCase.test_init_var  sf    		* 	* 	* 	* 	* 	* 	* 
	* Ab!!!!!r   c                 :   |                      t          t                   j        t                     |                      t	          t          t                             d           |                      t	          t          t
          t                                      d           |                      t	          t          t          t                                      d           |                      t	          t          t          t          z                     d           d S )Ndataclasses.InitVar[int]z%dataclasses.InitVar[typing.List[int]]zdataclasses.InitVar[list[int]]zdataclasses.InitVar[int | str])r'   r  r8   rV   rL   r   r  r   r   s    r   test_init_var_preserve_typez$TestCase.test_init_var_preserve_type  s    *C000 	gcl++-GHHHgd3i011@	B 	B 	Bgd3i0119	; 	; 	;gc#g.//9	; 	; 	; 	; 	;r   c                 :   t            G d d                      } |dd          }|                     t          |          ddi           t            G d d|                      } |ddd	d
          }|                     t          |          ddd           d S )Nc                   0    e Zd ZU eed<   ee         ed<   dS )0TestCase.test_init_var_inheritance.<locals>.Baser6   	init_baseN)r   r   r   r8   r9   r  r   r   r   r   r    s+         FFFs|#####r   r   r   r   r6   c                   6    e Zd ZU eed<   ee         ed<   d ZdS )-TestCase.test_init_var_inheritance.<locals>.Crm   init_derivedc                 B    | j         |z   | _         | j        |z   | _        d S r   r6   rm   )r+   r  r  s      r   rQ  z;TestCase.test_init_var_inheritance.<locals>.C.__post_init__  s"    )+,.r   Nr   r   r   r8   r9   r  rQ  r   r   r   r#   r    s>         FFF!#,&&&/ / / / /r   r#      2   3      e   r  )r&   r'   r  )r+   r   r   r#   r   s        r   test_init_var_inheritancez"TestCase.test_init_var_inheritance  s     
	$ 	$ 	$ 	$ 	$ 	$ 	$ 
	$ DBKKa3(+++		/ 	/ 	/ 	/ 	/ 	/ 	/ 
	/ Ab"b"a"5"566666r   c                 2   t            G d d                      } |d          } |d          }|                     |j        d           |                     |j        g            |                     ||           |                     |j        |j                   |                     t           |ddg                    ddgf           g t            G fdd                      } |d          } |d          }|                     |j        d           |                     |j        g            |                     ||           |                     |j        |j                   |                     t           |ddg                    ddgf           t            G d d                      }|                     t           |                      d           |                      |            j        g            t          d	
           G d d                      }|                     t           |                      g f           |                     t           |                      t          d                     t            G d d                      }|                     t           |                      g f           t            G d d                      }|                      |             |dg                     d S )Nc                   <    e Zd ZU eed<    ee          Zeed<   dS )(TestCase.test_default_factory.<locals>.Cr6   r:  rm   N)r   r   r   r8   r9   rE   r  rm   r   r   r   r#   r    s8         FFFeD111At11111r   r#   rp   r   rA   c                   D    e Zd ZU eed<    e fd          Zeed<   dS )r  r6   c                       S r   r   r  s   r   r	  z1TestCase.test_default_factory.<locals>.C.<lambda>  s    A r   r:  rm   N)r   r   r   r8   r9   rE   rm   r  r  s   r   r#   z(TestCase.test_default_factory.<locals>.C  s?         FFFeIIII666At66666r   c                   4    e Zd ZU  eed          Zeed<   dS )r  F)rD   rL   r6   Nr   r   r   rE   r  r6   r9   r   r   r   r#   z(TestCase.test_default_factory.<locals>.C  1         eDu===At=====r   z*TestCase.test_default_factory.<locals>.C()Tr   c                   4    e Zd ZU  eed          Zeed<   dS )r  F)rD   r   r6   Nr  r   r   r   r#   z(TestCase.test_default_factory.<locals>.C"  r  r   r   c                   4    e Zd ZU  eed          Zeed<   dS )r  FrD   rK   r6   Nr  r   r   r   r#   z(TestCase.test_default_factory.<locals>.C)  r  r   c                   4    e Zd ZU  eed          Zeed<   dS )r  F)rD   r  r6   Nr  r   r   r   r#   z(TestCase.test_default_factory.<locals>.C/  s1         eD%@@@At@@@@@r   )	r&   r'   r6   rm   assertIsNotastuplerp  rL   r   )r+   r#   c0c1r  s       @r   test_default_factoryzTestCase.test_default_factory  s   		2 	2 	2 	2 	2 	2 	2 
	2 QqTTQqTTq!!!r"""R   rt$$$1qc++a!X666 		7 	7 	7 	7 	7 	7 	7 	7 	7 
	7 QqTTQqTTq!!!r"""R   bdBD!!!1qc++a!X666 
	> 	> 	> 	> 	> 	> 	> 
	>aacc$PQQQ### 
t	$	$	$	> 	> 	> 	> 	> 	> 	> 
%	$	>u---aaccDHH--- 
	> 	> 	> 	> 	> 	> 	> 
	>u--- 
	A 	A 	A 	A 	A 	A 	A 
	Aaaff%%%%%r   c                    t                      t           G fdd                      } |            j         |                     j        d            |            j         |                     j        d           d S )Nc                   6    e Zd ZU  e d          Zeed<   dS )5TestCase.test_default_factory_with_no_init.<locals>.CFr  r6   N)r   r   r   rE   r6   r  r9   factorys   r   r#   r  8  s2         eG%@@@At@@@@@r   r#   rA   r1  r   r&   r6   r'   
call_countr+   r#   r  s     @r   !test_default_factory_with_no_initz*TestCase.test_default_factory_with_no_init4  s    &&		A 	A 	A 	A 	A 	A 	A 	A 	A 
	A 	
+Q///	+Q/////r   c                    t                      t           G fdd                      } |            j         |                     j        d           |                      |d          j        d           |                     j        d            |            j         |                     j        d           d S )Nc                   4    e Zd ZU  e           Zeed<   dS )BTestCase.test_default_factory_not_called_if_value_given.<locals>.Cr:  r6   Nri  r  s   r   r#   r  F  s0         U7333As33333r   r#   rA   r   r1  r  r
  s     @r   .test_default_factory_not_called_if_value_givenz7TestCase.test_default_factory_not_called_if_value_givenB  s    &&		4 	4 	4 	4 	4 	4 	4 	4 	4 
	4
 	
+Q///2"%%%+Q///	+Q/////r   c                    t            G d d                      }t            G d d|                      }|                      |            j        i            |                      |            j        i            |                      |            j        d           t            G d d|                      }|                      |            j        i            d S )Nc                   2    e Zd ZU  ee          Zeed<   dS )2TestCase.test_default_factory_derived.<locals>.Foor:  r6   N)r   r   r   rE   r  r6   r9   r   r   r   Foor  U  s/         eD111At11111r   r  c                       e Zd ZU dZeed<   dS )2TestCase.test_default_factory_derived.<locals>.BarrA   rm   Nr   r   r   rm   r8   r9   r   r   r   Barr  Y           AsJJJJJr   r  rA   c                       e Zd ZdS )2TestCase.test_default_factory_derived.<locals>.BazNr   r   r   r   Bazr  a  r$   r   r  )r&   r'   r6   rm   )r+   r  r  r  s       r   test_default_factory_derivedz%TestCase.test_default_factory_derivedS  s   		2 	2 	2 	2 	2 	2 	2 
	2 
	 	 	 	 	# 	 	 
	 	"%%%"%%%!$$$		 	 	 	 	# 	 	 
	"%%%%%r   c                    t            G d d                      } G d d|          }t            G d d|                      } |dd          }|                     |j        |j        fd	           |                     t
          d
          5  |j         d d d            n# 1 swxY w Y    G d d|          } |dd          }|                     |j        |j        fd           d S )Nc                       e Zd ZU eed<   dS )3TestCase.test_intermediate_non_dataclass.<locals>.Ar6   Nr7   r   r   r   r  r  j  r:   r   r  c                       e Zd ZU eed<   dS )3TestCase.test_intermediate_non_dataclass.<locals>.Brm   Nr7   r   r   r   ru   r!  n           FFFFFr   ru   c                       e Zd ZU eed<   dS )3TestCase.test_intermediate_non_dataclass.<locals>.Cr   Nr7   r   r   r   r#   r$  q  r:   r   r#   rA   rp   )rA   rp   zobject has no attributec                       e Zd ZU eed<   dS )3TestCase.test_intermediate_non_dataclass.<locals>.Dr  Nr7   r   r   r   r`   r&  ~  r"  r   r`   r~  r   )r~  r   )r&   r'   r6   r   rF   AttributeErrorrm   )r+   r  ru   r#   r   r`   r  s          r   test_intermediate_non_dataclassz(TestCase.test_intermediate_non_dataclassf  s    
	 	 	 	 	 	 	 
		 	 	 	 	 	 	 	 
	 	 	 	 	 	 	 
	 AaGG!#qsV,,, ##N$=? ? 	 	CC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
	 	 	 	 	 	 	 	AaGG!#qsV,,,,,s   B!!B%(B%c                     |                      t          d          5  t           G d d                      }d d d            d S # 1 swxY w Y   d S )Nr  c                   >    e Zd ZU  ee          Zee         ed<   dS )1TestCase.test_classvar_default_factory.<locals>.Cr:  r6   Nr  r   r   r   r#   r+    r  r   r#   rF   r{   r&   r   s     r   test_classvar_default_factoryz&TestCase.test_classvar_default_factory  s    ##I$CE E 	> 	>> > > > > > > Y>	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>   AAAc                 X    G d d          }|                      t          d                     |                      t          t                               |                      t          |                     |                      t           |                                 t           G d d                      t           G fdd                      } d          } ||d	          }|                     t                               |                     t          |                     |                      t          |j                             |                     t          |j                             |                      t          |j                             d S )
Nc                       e Zd ZdS )0TestCase.test_is_dataclass.<locals>.NotDataClassNr   r   r   r   NotDataClassr1    r]   r   r2  r   c                       e Zd ZU eed<   dS )%TestCase.test_is_dataclass.<locals>.Cr6   Nr7   r   r   r   r#   r4    r:   r   r#   c                   &    e Zd ZU  ed<   eed<   dS )%TestCase.test_is_dataclass.<locals>.Dr  eNr   r   r   r9   r8   )r#   s   r   r`   r6    s#         DDDFFFFFr   r`   r   r~  )r  is_dataclassr8   r&   rC  r6   r  r7  )r+   r2  r`   r   r  r#   s        @r   test_is_dataclasszTestCase.test_is_dataclass  s   	 	 	 	 	 	 	 	 	a)))c**+++l33444llnn55666		 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 	 	 
	 AbEEAaGGQ(((Q(((ac**+++QS))***ac**+++++r   c                     G d d          }|                      t          |                      |            } G d d          } |            }g |_        ||fD ]}|                     |          5  |                      t          |                     |                     t
          d          5  t          |           d d d            n# 1 swxY w Y   |                     t
          d          5  t          |           d d d            n# 1 swxY w Y   |                     t
          d          5  t          |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )	Nc                       e Zd Zd ZdS )ATestCase.test_is_dataclass_when_getattr_always_returns.<locals>.Ac                     dS r  r   )r+   keys     r   __getattr__zMTestCase.test_is_dataclass_when_getattr_always_returns.<locals>.A.__getattr__  rF  r   N)r   r   r   r@  r   r   r   r  r=    s#            r   r  c                       e Zd ZdS )ATestCase.test_is_dataclass_when_getattr_always_returns.<locals>.BNr   r   r   r   ru   rB    r]   r   ru   )objz'should be called on dataclass instancesr   rh   )	r  r9  ra   r  rF   r{   asdictr  replace)r+   r  r  ru   r   rC  s         r   -test_is_dataclass_when_getattr_always_returnsz6TestCase.test_is_dataclass_when_getattr_always_returns  s   	 	 	 	 	 	 	 	 	a)))ACC	 	 	 	 	 	 	 	ACC!#a4 
	& 
	&C#&& 	& 	&  c!2!2333 ++I7`aa    3KKK                             ++I7`aa ! !CLLL! ! ! ! ! ! ! ! ! ! ! ! ! ! !++I7`aa & &C1%%%%& & & & & & & & & & & & & & &	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
	& 
	&s~   5>E,3CE,CE,CE,5DE,DE,DE,7E	E,EE,EE,,E0	3E0	c                 b   t            G d dt          j                              }|                     t	          |                      |t
          t                    }|                     t	          t          |                               |                     t	          |                     d S )Nc                   $    e Zd ZU eed<   eed<   dS )2TestCase.test_is_dataclass_genericalias.<locals>.AoriginargsN)r   r   r   rV   r9   r   r   r   r  rI    s"         LLLJJJJJr   r  )r&   typesGenericAliasrC  r9  r  r8   rV   r+   r  r  s      r   test_is_dataclass_genericaliasz'TestCase.test_is_dataclass_genericalias  s    		 	 	 	 	" 	 	 
	 	Q(((AdCLLT!WW--...Q(((((r   c           	          t            G d d                      }|                     t          |          t           |dd                               d S )Nc                   $    e Zd ZU eed<   eed<   dS ):TestCase.test_helper_fields_with_class_instance.<locals>.Cr6   rm   N)r   r   r   r8   r9   r  r   r   r   r#   rR    s"         FFFHHHHHr   r#   r   g        r  r   s     r   &test_helper_fields_with_class_instancez/TestCase.test_helper_fields_with_class_instance  sl     
	 	 	 	 	 	 	 
	 	F11Q99$5$566666r   c                    |                      t          d          5  t          d           d d d            n# 1 swxY w Y    G d d          }|                      t          d          5  t          |           d d d            n# 1 swxY w Y   |                      t          d          5  t           |                       d d d            d S # 1 swxY w Y   d S )Nzdataclass type or instancer   c                       e Zd ZdS )0TestCase.test_helper_fields_exception.<locals>.CNr   r   r   r   r#   rV    r   r   r#   )rF   r{   r)   r   s     r   test_helper_fields_exceptionz%TestCase.test_helper_fields_exception  s    ##I/KLL 	 	1III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##I/KLL 	 	1III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##I/KLL 	 	1133KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s0   8<<+BBB-CCCc                 2   t          j                    }	 t          t                     n-# t          $ r }t          j        ||           Y d }~nd }~ww xY w|                                }|                     d|           |                     d|           d S )N)filer'  ra   )	ioStringIOr)   r   r{   	tracebackprint_exceptiongetvaluerc  )r+   stdoutexcprinted_tracebacks       r   *test_clean_traceback_from_fields_exceptionz3TestCase.test_clean_traceback_from_fields_exception  s    	86NNNN 	8 	8 	8%c777777777	8"OO--)+<===/1BCCCCCs   * 
AAAc                 "   t            G d d                      } |dd          }|                     t          |          ddd           |                     t          |          t          |                     |                     t          |          t          |                     d|_        |                     t          |          ddd           |                     t          t          |                    t                     d S )Nc                   $    e Zd ZU eed<   eed<   dS )&TestCase.test_helper_asdict.<locals>.Cr6   rm   Nr7   r   r   r   r#   re    r.  r   r#   rA   r1  r  r;   )r&   r'   rD  r  r6   rp  rV   r  r   s      r   test_helper_asdictzTestCase.test_helper_asdict  s    		 	 	 	 	 	 	 
	 AaGG!!$4$4555F1II...F1II..."1$5$5666d6!99oot,,,,,r   c                 N   t            G d d                      }|                     t          d          5  t          |           d d d            n# 1 swxY w Y   |                     t          d          5  t          t                     d d d            d S # 1 swxY w Y   d S )Nc                   $    e Zd ZU eed<   eed<   dS )8TestCase.test_helper_asdict_raises_on_classes.<locals>.Cr6   rm   Nr7   r   r   r   r#   ri    r.  r   r#   dataclass instance)r&   rF   r{   rD  r8   r   s     r   $test_helper_asdict_raises_on_classesz-TestCase.test_helper_asdict_raises_on_classes  s3   		 	 	 	 	 	 	 
	 ##I/CDD 	 	1III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##I/CDD 	 	3KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#   AAA8BB!Bc                    t            G d d                      }g } |d|          }t          |          }|                     |d         |           |                     |d         |            |d          }t          |          }|d                             d           |                     |j        g            d S )Nc                   H    e Zd ZU eed<    ee          Zee         ed<   dS )2TestCase.test_helper_asdict_copy_values.<locals>.Cr6   r:  rm   N	r   r   r   r8   r9   rE   r  rm   r   r   r   r   r#   ro    <         FFF 5666AtCy66666r   r#   rA   rm   )r&   rD  r'   r  appendrm   )r+   r#   initialr   r  s        r   test_helper_asdict_copy_valuesz'TestCase.test_helper_asdict_copy_values  s    		7 	7 	7 	7 	7 	7 	7 
	7 AaMM1II3)))3)))AaDD1II	#ab!!!!!r   c                    t            G d d                      t            G fdd                      } |d dd                    }t          |          }|                     |ddddd	           |                     t          |          t          |                     d
|j        _        |                     t          |          ddd
dd	           d S )Nc                   $    e Zd ZU eed<   eed<   dS )2TestCase.test_helper_asdict_nested.<locals>.UserIdtokengroupNr7   r   r   r   UserIdrw    "         JJJJJJJJr   rz  c                   &    e Zd ZU eed<    ed<   dS )0TestCase.test_helper_asdict_nested.<locals>.UserrN   rM   Nr   rz  s   r   Userr}    #         IIIJJJJJr   r  Joe{   rA   )rx  ry  rN   rM   r1  )r&   rD  r'   r  rM   ry  )r+   r  ur  rz  s       @r   test_helper_asdict_nestedz"TestCase.test_helper_asdict_nested  s4   		 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 	 	 
	 DsA''1IIUC!2L2LMMNNNF1II...
U581+E+E%G %G 	H 	H 	H 	H 	Hr   c                   	 t            G d d                      	t            G 	fdd                      }t            G 	fdd                      }t            G 	fdd                      } 	d	d
          } 	dd          } |d||g          } |d||f          } |d||d          }|                     t          |          dd	d
ddddgd           |                     t          |          dd	d
ddddfd           |                     t          |          dd	d
dddddd           d S )Nc                   $    e Zd ZU eed<   eed<   dS )<TestCase.test_helper_asdict_builtin_containers.<locals>.UserrN   rM   Nr   r   r   r   r9   r8   r   r   r   r  r  &  "         IIIGGGGGr   r  c                   2    e Zd ZU eed<   e          ed<   dS )ATestCase.test_helper_asdict_builtin_containers.<locals>.GroupListrM   usersNr   r   r   r8   r9   r   r  s   r   	GroupListr  *  ,         GGG:r   r  c                   6    e Zd ZU eed<   e df         ed<   dS )BTestCase.test_helper_asdict_builtin_containers.<locals>.GroupTuplerM   .r  Nr   r   r   r8   r9   r	   r  s   r   
GroupTupler  .  1         GGGs######r   r  c                   6    e Zd ZU eed<   ee f         ed<   dS )ATestCase.test_helper_asdict_builtin_containers.<locals>.GroupDictrM   r  Nr   r   r   r8   r9   r
   r   r  s   r   	GroupDictr  2  0         GGGT	?"""""r   r  AlicerA   Bobr1  r   r   secondr  )rM   r  r&   r'   rD  
r+   r  r  r  r  r   glgtgdr  s
            @r   %test_helper_asdict_builtin_containersz.TestCase.test_helper_asdict_builtin_containers%  sN   		 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 	 	 
	 
	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 
	$ 
	# 	# 	# 	# 	# 	# 	# 	# 	# 
	# D!DNNYq1a&!!ZAq6""YqA3344A'QR9S9SBGq9Q9Q9S &T &T 	U 	U 	UA'QR9S9SBGq9Q9Q9S &T &T 	U 	U 	UA7Z[B\B\LQYZC[C[9] 9] &^ &^ 	_ 	_ 	_ 	_ 	_r   c           
      d   t            G d d                      t            G fdd                      }|                     t           | dg                              dddgii           |                     t           | ddi                              ddddiii           d S )	Nc                       e Zd ZU eed<   dS )DTestCase.test_helper_asdict_builtin_object_containers.<locals>.Childr  Nr   r   r   r   r9   r   r   r   Childr  C           IIIIIr   r  c                       e Zd ZU  ed<   dS )ETestCase.test_helper_asdict_builtin_object_containers.<locals>.ParentchildNr  r  s   r   Parentr  G           LLLLLr   r  rA   r  r  r1  r  r+   r  r  s     @r   ,test_helper_asdict_builtin_object_containersz5TestCase.test_helper_asdict_builtin_object_containersB  s    		 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 	 	 
	 	uuaSzz 2 233gaSz5JKKKuuaV}} 5 5663A-8PQQQQQr   c                    t            G d d                      } |dd          }t          |t                    }|                     |t          ddg                     |                     |t          |t                               d|_        t          |t                    }|                     |t          d	dg                     |                     t          |          t                     d S )
Nc                   $    e Zd ZU eed<   eed<   dS ).TestCase.test_helper_asdict_factory.<locals>.Cr6   rm   Nr7   r   r   r   r#   r  O  r.  r   r#   rA   r1  dict_factory)r6   rA   )rm   r1  r;   )r6   r;   )r&   rD  r   r'   r  r6   rp  rV   r+   r#   r   r  s       r   test_helper_asdict_factoryz#TestCase.test_helper_asdict_factoryN  s    		 	 	 	 	 	 	 
	 AaGG1;///K8(<==>>>F1;???@@@1;///KH(=>>???d1gg{+++++r   c                    t          dd          t           G fdd                      } |d d |d dd	d
                    d                    }t          |          }|                     |d dd dd	d
          dd          d           t          |t                    }|                     |d dd dd	d
          dd          d           |                     t          |          t                     |                     t          |d         d                   t                     d S )NTa b cc                   &    e Zd ZU eed<    ed<   dS )1TestCase.test_helper_asdict_namedtuple.<locals>.Cr6   rm   Nr   r  s   r   r#   r  ^  #         FFFDDDDDr   r#   outerrA   innerr        r1  r  r  rm   )r   r&   rD  r'   r   rp  rV   )r+   r#   r   r  r  s       @r   test_helper_asdict_namedtuplez&TestCase.test_helper_asdict_namedtuple\  s   sG$$		 	 	 	 	 	 	 	 	 
	 AgqqAAgqqR}}55q99::1II'"#!A*1*+!BB--%9 %9$%#' #'  	 	 	 1;///'"#!A*1*+!BB--%9 %9$%#' #'  	 	 	 	d1gg{+++d1S6!9oo{33333r   c                     t            G d d                      }t          dd          } | |d          di          }|                     t          |          d |d          dii           d S )	Nc                       e Zd ZU eed<   dS )5TestCase.test_helper_asdict_namedtuple_key.<locals>.Cr  N)r   r   r   r  r9   r   r   r   r#   r    s         GGGGGr   r#   r  r  zan ar   r  r  )r&   r   r'   rD  )r+   r#   r  r   s       r   !test_helper_asdict_namedtuple_keyz*TestCase.test_helper_asdict_namedtuple_key}  s     
	 	 	 	 	 	 	 
	sC  Aqqyy!nS11v;;;*:$;<<<<<r   c                     G d dt          dd                    t           G fdd                      } d          } ||          }t          |          }|                     |d d	          i           |                     |d         |           |                     |d                                         d           d S )
Nc                       e Zd Zd ZdS )9TestCase.test_helper_asdict_namedtuple_derived.<locals>.Tc                     | j         S r   r  r   s    r   my_az>TestCase.test_helper_asdict_namedtuple_derived.<locals>.T.my_a  	    vr   N)r   r   r   r  r   r   r   r  r    #            r   r  Tbaser  c                       e Zd ZU  ed<   dS )9TestCase.test_helper_asdict_namedtuple_derived.<locals>.Cr  Nr  r  s   r   r#   r             DDDDDr   r#   r  r  r  )r   r&   rD  r'   r  r  )r+   r#   r  r   r  r  s        @r   %test_helper_asdict_namedtuple_derivedz.TestCase.test_helper_asdict_namedtuple_derived  s   	 	 	 	 	
7C(( 	 	 	 
	 	 	 	 	 	 	 	 	 
	 AaDDAaDD1IIS!!a&&&M***3###3*****r   c                    t            G d d                      } |d          }|                     t          |          d           |                     t          |          t          |                     |                     t          |          t          |                     d|_        |                     t          |          d           |                     t          t          |                    t                     d S )Nc                   (    e Zd ZU eed<   dZeed<   dS )'TestCase.test_helper_astuple.<locals>.Cr6   r   rm   Nrn   r   r   r   r#   r    ro   r   r#   rA   )rA   r   r;   )rA   r;   )r&   r'   r  r  rm   rp  rV   r  r   s      r   test_helper_astuplezTestCase.test_helper_astuple  s    		 	 	 	 	 	 	 
	 AaDDV,,,WQZZ000WQZZ000W---d71::&&.....r   c                 N   t            G d d                      }|                     t          d          5  t          |           d d d            n# 1 swxY w Y   |                     t          d          5  t          t                     d d d            d S # 1 swxY w Y   d S )Nc                   $    e Zd ZU eed<   eed<   dS )9TestCase.test_helper_astuple_raises_on_classes.<locals>.Cr6   rm   Nr7   r   r   r   r#   r    r.  r   r#   rj  )r&   rF   r{   r  r8   r   s     r   %test_helper_astuple_raises_on_classesz.TestCase.test_helper_astuple_raises_on_classes  s3   		 	 	 	 	 	 	 
	 ##I/CDD 	 	AJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##I/CDD 	 	CLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rl  c                    t            G d d                      }g } |d|          }t          |          }|                     |d         |           |                     |d         |            |d          }t          |          }|d                             d           |                     |j        g            d S )Nc                   H    e Zd ZU eed<    ee          Zee         ed<   dS )3TestCase.test_helper_astuple_copy_values.<locals>.Cr6   r:  rm   Nrp  r   r   r   r#   r    rq  r   r#   rA   )r&   r  r'   r  rr  rm   )r+   r#   rs  r   r  s        r   test_helper_astuple_copy_valuesz(TestCase.test_helper_astuple_copy_values  s    		7 	7 	7 	7 	7 	7 	7 
	7 AaMMAJJ1w'''1w'''AaDDAJJ	!Ab!!!!!r   c                    t            G d d                      t            G fdd                      } |d dd                    }t          |          }|                     |d           |                     t          |          t          |                     d	|j        _        |                     t          |          d
           d S )Nc                   $    e Zd ZU eed<   eed<   dS )3TestCase.test_helper_astuple_nested.<locals>.UserIdrx  ry  Nr7   r   r   r   rz  r    r{  r   rz  c                   &    e Zd ZU eed<    ed<   dS )1TestCase.test_helper_astuple_nested.<locals>.UserrN   rM   Nr   r~  s   r   r  r    r  r   r  r  r  rA   )r  )r  rA   r1  )r  )r  r1  )r&   r  r'   r  rM   ry  )r+   r  r  r  rz  s       @r   test_helper_astuple_nestedz#TestCase.test_helper_astuple_nested  s    		 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 	 	 
	 DsA''AJJ-...WQZZ000
%677777r   c                 N  	 t            G d d                      	t            G 	fdd                      }t            G 	fdd                      }t            G 	fdd                      } 	d	d
          } 	dd          } |d||g          } |d||f          } |d||d          }|                     t          |          dddgf           |                     t          |          d           |                     t          |          ddddf           d S )Nc                   $    e Zd ZU eed<   eed<   dS )=TestCase.test_helper_astuple_builtin_containers.<locals>.UserrN   rM   Nr  r   r   r   r  r    r  r   r  c                   2    e Zd ZU eed<   e          ed<   dS )BTestCase.test_helper_astuple_builtin_containers.<locals>.GroupListrM   r  Nr  r  s   r   r  r    r  r   r  c                   6    e Zd ZU eed<   e df         ed<   dS )CTestCase.test_helper_astuple_builtin_containers.<locals>.GroupTuplerM   .r  Nr  r  s   r   r  r    r  r   r  c                   6    e Zd ZU eed<   ee f         ed<   dS )BTestCase.test_helper_astuple_builtin_containers.<locals>.GroupDictrM   r  Nr  r  s   r   r  r    r  r   r  r  rA   r  r1  r   r  r  rA   r  r1  )r   )r  r  r&   r'   r  r  s
            @r   &test_helper_astuple_builtin_containersz/TestCase.test_helper_astuple_builtin_containers  s   		 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 	 	 
	 
	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 
	$ 
	# 	# 	# 	# 	# 	# 	# 	# 	# 
	# D!DNNYq1a&!!ZAq6""YqA3344q<*D&EFFF&EFFFqLJ*W*W&XYYYYYr   c           
      \   t            G d d                      t            G fdd                      }|                     t           | dg                              dgff           |                     t           | ddi                              ddiff           d S )Nc                       e Zd ZU eed<   dS )ETestCase.test_helper_astuple_builtin_object_containers.<locals>.Childr  Nr  r   r   r   r  r    r  r   r  c                       e Zd ZU  ed<   dS )FTestCase.test_helper_astuple_builtin_object_containers.<locals>.Parentr  Nr  r  s   r   r  r    r  r   r  rA   r1  r  r  s     @r   -test_helper_astuple_builtin_object_containersz6TestCase.test_helper_astuple_builtin_object_containers  s    		 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 	 	 
	 	qc

!3!344vi@@@q!f!6!677Aq6)FFFFFr   c                    t            G d d                      }t          dd          fd} |dd          }t          ||          }|                     | dd                     |                     |t          ||                     d	|_        t          ||          }|                     | d	d                     |                     t          |                     d S )
Nc                   $    e Zd ZU eed<   eed<   dS )/TestCase.test_helper_astuple_factory.<locals>.Cr6   rm   Nr7   r   r   r   r#   r    r.  r   r#   NTzx yc                      |  S r   r   )r  r   s    r   ntz0TestCase.test_helper_astuple_factory.<locals>.nt  s    2s8Or   rA   r1  tuple_factoryr;   )r&   r   r  r'   r  r6   rp  rV   )r+   r#   r  r   r  r   s        @r   test_helper_astuple_factoryz$TestCase.test_helper_astuple_factory  s   		 	 	 	 	 	 	 
	 e$$	 	 	 	 	AaGGAR(((BBq!HH%%%GAR888999AR(((BBr1II&&&d1ggr"""""r   c                    t          dd          t           G fdd                      } |d d |d dd	d
                    d                    }t          |          }|                     |d ddd          f           t          |t                    }|                     |d dd dd	d
          gd          g           d S )Nr  r  c                   &    e Zd ZU eed<    ed<   dS )2TestCase.test_helper_astuple_namedtuple.<locals>.Cr6   rm   Nr   r  s   r   r#   r    r  r   r#   r  rA   r  r  r  r  r1  )r  )r  r  r  r  )r   r&   r  r'   r  )r+   r#   r   r  r  s       @r   test_helper_astuple_namedtuplez'TestCase.test_helper_astuple_namedtuple  s   sG$$		 	 	 	 	 	 	 	 	 
	 AgqqAAgqqR}}55q99::AJJWaa+BA&F&FGHHH AT***WaaGQQr2r]]+CQ&G&GHIIIIIr   c                     dt           t           di}t          dd|          }t          |          }|                     ||           |                     t	           |dd                    ddd           d S )Nr9   r  r#   r   rA   r1  )r8   rV   r&   r'   rD  r+   cls_dictr  cls1s       r   test_dynamic_class_creationz$TestCase.test_dynamic_class_creation  s    %Ss';';  3H%% ~~s###Aq		**!!,<,<=====r   c                    t           t           dt          d          d}t          dd|          }t          |          }|                     ||           |                     t           |d                    ddd           d S )Nr  r   ro  )r9   rm   r#   r   rA   )r8   rE   rV   r&   r'   rD  r  s       r   'test_dynamic_class_creation_using_fieldz0TestCase.test_dynamic_class_creation_using_field(  s    -0s';';q))) 
 3H%% ~~s###Q*:*:;;;;;r   c                    t            G d d                      }g fd}||_         |dd          }|                     dd                    |                     dd                    |                     dg fd	                    |                     d
g fd                    |                     d           |                     dd                    d S )Nc                       e Zd ZU eed<    e            Zeed<    eed          Zeed<    ee          Z	eed<    edd	          Z
eed
<   dZeed<   dS )&TestCase.test_init_in_order.<locals>.Cr  r   Fr  r   r:  r  r~  r'  r7  r  N)r   r   r   r8   r9   rE   r   r  r   r  r7  r  r   r   r   r#   r  7  s         FFFUWWAseDu===At===eD111At111U15111As111AsJJJJJr   r#   c                 6                         ||f           d S r   )rr  )r+   rN   valuecallss      r   setattrz,TestCase.test_init_in_order.<locals>.setattrA  s    LL$'''''r   r   rA   )r  r   )r   rA   r   r1  r  rp   )r7  r~  )r  r~  r~  )r&   __setattr__r'   rc  )r+   r#   r  r   r  s       @r   test_init_in_orderzTestCase.test_init_in_order6  s   		 	 	 	 	 	 	 
	 	( 	( 	( 	( 	(  AaGG58,,,58,,,#rE!H---#rE!H---5)))58,,,,,r   c                    t            G d d                      } |d          }|                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   |                     |j        d           |                     d	|j                   |                     |j        d           |                     d|j                   |                     |j        d           |                     d|j                   |                     |j        g            |                     d|j                   |                     |j	        g            |                     d|j                   |                     d	|j                   |                     |j        d           d S )
Nc                       e Zd ZU eed<    eed          Zeed<    ee          Zeed<    edd          Z	eed	<   d
Z
eed<   dS )'TestCase.test_items_in_dicts.<locals>.Cr  Fr  r   r:  r   r~  r'  r  r   r7  N)r   r   r   r8   r9   rE   r  r   r   r  r7  r   r   r   r#   r  N  s         FFFeDu===At===eD111At111U15111As111AsJJJJJr   r#   r   r  r   r   r  r~  r7  )
r&   rc  r   rW   r'   r  r7  r  r   r   r   s      r   test_items_in_dictszTestCase.test_items_in_dictsM  s   		 	 	 	 	 	 	 
	 AaDDaj)))aj)))aj)))c1:&&&a   c1:&&&a   c1:&&&a   c1:&&&b!!!c1:&&&b!!!aj)))c1:&&&a     r   c                     t            G d d                      }|                     |                    d          j        d           d S )Nc                   0    e Zd ZU eed<   ed             ZdS ):TestCase.test_alternate_classmethod_constructor.<locals>.Cr6   c                     d} | |          S )Nrx  r   )r  filenamevalue_in_files      r   	from_filezDTestCase.test_alternate_classmethod_constructor.<locals>.C.from_fileq  s     !#s=)))r   N)r   r   r   r8   r9   r  r$  r   r   r   r#   r   n  s8         FFF* * [* * *r   r#   r"  rx  )r&   r'   r$  r6   r   s     r   &test_alternate_classmethod_constructorz/TestCase.test_alternate_classmethod_constructorj  sc     
	* 	* 	* 	* 	* 	* 	* 
	* 	Z002B77777r   c                    t            G d d                      }|                     t          |          d         j                   |                     t          t          |          d         j                  d           |                     t          d          5  dt          |          d         j        d<   d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZU eed<   dS )/TestCase.test_field_metadata_default.<locals>.Cr1   Nr7   r   r   r   r#   r(  }  r:   r   r#   r    does not support item assignmentrp   test)r&   r  r)   metadatar'   r(   rF   r{   r   s     r   test_field_metadata_defaultz$TestCase.test_field_metadata_defaultz  s    
	 	 	 	 	 	 	 
	 	1.///VAYYq\233Q777##I$FH H 	. 	.,-F1IIaL!&)	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   C		CCc                 T   |                      t                    5  t           G d d                      }d d d            n# 1 swxY w Y   i t           G fdd                      }|                     t	          |          d         j                   |                     t          t	          |          d         j                  d           dd<   |                     t          t	          |          d         j                  d           |                     t	          |          d         j        d         d           |                     t          d          5  dt	          |          d         j        d	<   d d d            n# 1 swxY w Y   d
dddt           G fdd                      }|                     t          t	          |          d         j                  d           |                     t	          |          d         j        d	         d
           |                     t	          |          d         j        d         d           |                     t	          |          d         j        d         d           dd<   |                     t          t	          |          d         j                  d           |                     t	          |          d         j        d         d           |                      t                    5  t	          |          d         j        d          d d d            n# 1 swxY w Y   |                     t          d          5  dt	          |          d         j        d	<   d d d            d S # 1 swxY w Y   d S )Nc                   2    e Zd ZU  ed          Zeed<   dS )/TestCase.test_field_metadata_mapping.<locals>.Cr   r+  r1   Nr   r   r   rE   r1   r8   r9   r   r   r   r#   r/    s/         ***3*****r   r#   c                   4    e Zd ZU  e           Zeed<   dS r/  r0  r1   Nr1  r  s   r   r#   z/TestCase.test_field_metadata_mapping.<locals>.C  0         UA&&&As&&&&&r   r   rA   r   r)  rp   r*  r   42three)r*  rI  rp   c                   4    e Zd ZU  e           Zeed<   dS r3  r1  r4  s   r   r#   z/TestCase.test_field_metadata_mapping.<locals>.C  r5  r   rI  r~  baz)
ry  r{   r&   r  r)   r+  r'   r(   rF   KeyError)r+   r#   r  s     @r   test_field_metadata_mappingz$TestCase.test_field_metadata_mapping  s{    y)) 	+ 	++ + + + + + + Y+	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 		' 	' 	' 	' 	' 	' 	' 	' 	' 
	'1.///VAYYq\233Q777%VAYYq\233Q7771.u5q999##I$FH H 	. 	.,-F1IIaL!&)	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.
 11		' 	' 	' 	' 	' 	' 	' 	' 	' 
	'VAYYq\233Q7771.v6;;;1.u5t<<<1.q17;;;%VAYYq\233Q7771.u5q999x(( 	) 	)1IIaL!%((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) ##I$FH H 	. 	.,-F1IIaL!&)	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.sG   AA
A#FFF!MMM2NN!$N!c                 D    G d d          t            G fdd                      }|                     t          t          |          d         j                  d           |                     t          |          d         j        d         d           |                     t                    5  t          |          d         j        d	          d d d            n# 1 swxY w Y   |                     t          |          d         j        d
         d           d S )Nc                        e Zd Zd Zd Zd ZdS )DTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpacec                 :    | j                             |           d S r   )r   update)r+   kws     r   r   zMTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__init__  s    $$R(((((r   c                 2    |dk    rdS t          | |          S )Nxyzzyplugh)r   )r+   items     r   __getitem__zPTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__getitem__  s     7??"7tT***r   c                 4    | j                                         S r   )r   __len__r   s    r   rH  zLTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__len__  s    },,...r   N)r   r   r   r   rF  rH  r   r   r   SimpleNameSpacer>    sA        ) ) )+ + +
/ / / / /r   rI  c                   H    e Zd ZU  e  d                    Zeed<   dS )6TestCase.test_field_metadata_custom_mapping.<locals>.Cr   r  r0  r1   Nr1  )rI  s   r   r#   rK    s=         UOOb$9$9$9:::As:::::r   r#   r   rA   r  r   r   rC  rD  )r&   r'   r(   r)   r+  ry  r'  )r+   r#   rI  s     @r   "test_field_metadata_custom_mappingz+TestCase.test_field_metadata_custom_mapping  so   
	/ 
	/ 
	/ 
	/ 
	/ 
	/ 
	/ 
	/ 
	; 	; 	; 	; 	; 	; 	; 	; 	; 
	; 	VAYYq\233Q7771.s3R888~.. 	' 	'1IIaL!#&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	1.w7AAAAAs   4!C!!C%(C%c                 (   t          d          t           G fddt                                         } |d          }|                     |j        d           |                     |j        d           t          |t                            }d S )Nr  c                   *    e Zd ZU  ed<   dZeed<   dS )5TestCase.test_generic_dataclasses.<locals>.LabeledBoxcontent	<unknown>labelN)r   r   r   r9   rR  r   r  s   r   
LabeledBoxrO    s,         JJJ$E3$$$$$r   rS  r;   rQ  )r   r&   r   r'   rP  rR  r   r8   )r+   rS  boxAliasr  s       @r   test_generic_dataclassesz!TestCase.test_generic_dataclasses  s    CLL		% 	% 	% 	% 	% 	% 	% 	% 	% 
	% jnnb)))K000 Z_%r   c                    t          d          t          d          t           G fddt          f                               }t           G d d|t          f                               }|t                   } |ddd	          }|                     t          |          d
            G d d|t          f                   }|t                   } |dd          }|                     |                                d           d S )NSr  c                   &    e Zd ZU ed<    ed<   dS )-TestCase.test_generic_extending.<locals>.Baser6   rm   Nr  )rX  r  s   r   r   rZ    s#         DDDDDDDDr   r   c                       e Zd ZU eed<   dS )4TestCase.test_generic_extending.<locals>.DataDerived	new_fieldNr   r   r   r   DataDerivedr\    s         NNNNNr   r^  r   test1test2)r   r_  r`  c                       e Zd Zd ZdS )7TestCase.test_generic_extending.<locals>.NonDataDerivedc                     | j         S r   rm   r   s    r   
new_methodzBTestCase.test_generic_extending.<locals>.NonDataDerived.new_method  r  r   N)r   r   r   re  r   r   r   NonDataDerivedrb    r  r   rf  r         ?)	r   r&   r   r8   r   r'   r  r  re  )r+   r   r^  rU  r   rf  rX  r  s         @@r   test_generic_extendingzTestCase.test_generic_extending  sN   CLLCLL		 	 	 	 	 	 	 	71a4= 	 	 
	 
	 	 	 	 	$sAv, 	 	 
	C E!Wg&&%:;;;	 	 	 	 	T#q&\ 	 	 	 u%E"cNN-----r   c                    t          d          t           G fddt                                         }t          ddfdt                   d fg|t
                   t                   fddi	          }|                      |t
                   d
d          j        d            |                      |t
                   d
dd          j        d           |                      |t
                   d
dd          j	        d           |         }|                      |t
                   d
d          j
        d
           |                     |j        ||t          t          f           d S )Nr  c                       e Zd ZU  ed<   dS )-TestCase.test_generic_dynamic.<locals>.Parentr6   Nr  r  s   r   r  rk    r  r   r  r  rm   r   r   r;   )bases	namespacerA   r1  rp   )r   r&   r   r   r   r8   rp  r   r'   r   r6   __mro__r   )r+   r  r  rU  r  s       @r   test_generic_dynamiczTestCase.test_generic_dynamic  sl   CLL		 	 	 	 	 	 	WQZ 	 	 
	w#qC!d3K(L&,Sk71:%>7TV-Y Y YjeCjA&&($///sAq!,,.222sAq!,,2B777asAq))+Q///(HIIIIIr   c           
         t            G d d                      at            G d d                      at            G d d                      at          d          }d|_        t          d          t          dd          t          d          |t          d          t          dg d	          g}|D ]>}t          t          j        dz             D ]}|                     ||
          5  t          j	        t          j
        ||                    }|                     |j        |j                   |                     |j        |j                   |                     ||           d|_        t          j	        t          j
        ||                    }|                     |j        |j                   |                     |j        |j                   d d d            n# 1 swxY w Y   @d S )Nc                   (    e Zd ZU eed<   dZeed<   dS )Pr6   r   rm   Nrn   r   r   r   rr  rr    ro   r   rr  c                   >    e Zd ZU eed<    edd          Zeed<   dS )Qr6   r   Fr'  rm   Nr   r   r   r8   r9   rE   rm   r   r   r   rt  rt    s:         FFFU15111As11111r   rt  c                   H    e Zd ZU eed<    ee          Zee         ed<   dS )Rr6   r:  rm   Nrp  r   r   r   rw  rw    rq  r   rw  rA   r1  )r1  rp   r~  )sampleprotor;   )r&   rr  rt  rw  rm   rangepickleHIGHEST_PROTOCOLr  loadsdumpsr'   r6   r  )r+   qsamplesrx  ry  
new_sampleanother_new_samples          r   test_dataclasses_pickleablez$TestCase.test_dataclasses_pickleable  si   		 	 	 	 	 	 	 
	 
	2 	2 	2 	2 	2 	2 	2 
	2 
	7 	7 	7 	7 	7 	7 	7 
	7 aDDQ441a!A$$1Q441iiiA 
	E 
	EFv6:;; 	E 	E\\u\== E E!'fl65.I.I!J!JJ$$VXz|<<<$$VXz|<<<$$VZ888#%JL)/fl:u6U6U)V)V&$$Z\3E3GHHH$$VX/A/CDDDE E E E E E E E E E E E E E E	E
	E 
	Es   -C,G%%G),G)c                 n   t          ddd           G d d                      }|                     |j        j        d           dD ].}|                     t	          ||          j        d|            /|                     t          d          5   |             d d d            d S # 1 swxY w Y   d S )	NT)r  r   r   c                   $    e Zd ZU eed<   eed<   dS ).TestCase.test_dataclasses_qualnames.<locals>.Ar6   rm   Nr7   r   r   r   r  r     r.  r   r  r   )
r   r_  r`  ra  rb  r   r   __repr__r  __delattr__z/TestCase.test_dataclasses_qualnames.<locals>.A.zA\.__init__\(\) missing)r&   r'   r   r   r   r   rF   r{   )r+   r  functions      r   test_dataclasses_qualnamesz#TestCase.test_dataclasses_qualnames  s,   	4	=	=	=	 	 	 	 	 	 	 
>	=	 	,j999
 	~ 	~H WQ11>@|rz@|@|}}}}##I/IJJ 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B**B.1B.N)hr   r   r   r-   r2   r=   rI   rS   rY   rc   ri   r|   r   r   r   r   r   r   r   r   r  r*  rD  rR  re  rk  rq  rz  r  r  r  r  r  r  r  r  r  r  r  r  r,  r5  r=  r?  rK  rc  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r(  r-  r:  rF  rO  rS  rW  rb  rf  rk  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r%  r,  r;  rL  rV  rh  ro  r  r  r   r   r   r   r      s=       , , ,, , ," " "? ? ?7 7 71 1 1G G G" " "* * *X3 3 3jq q q,( ( (,* * ** * *( ( (5 5 5"5 5 5$* * *8, , ,B46 46 46l# # #2&C &C &CP
 
 
& & &"P P P 	0 	0 	0$ $ $4? ? ?4@ @ @&- - -B") ") ")H# # # +2 +2 +2Z" " "*& & &2 2 2; ; ;>D D DL* * *** * *,< < <& & &- - -^  >        9$ 9$ 9$v$ $ $8* * *	. 	. 	.
" 
" 
"$ $ $6* * *	. 	. 	.
" 
" 
"" " "
; 
; 
;7 7 747& 7& 7&r0 0 00 0 0"& & &&- - -:> > >, , ,6& & &4) ) )7 7 7
 
 
D D D- - -	 	 	" " "H H H"_ _ _:
R 
R 
R, , ,4 4 4B= = =+ + +$/ / /	 	 	" " "8 8 8 Z Z Z4
G 
G 
G# # #"J J J> > >< < <- - -.! ! !:8 8 8 . . .). ). ).VB B B2& & &. . ..J J J"E E E:    r   r   c                        e Zd Zd Zd Zd ZdS )TestFieldNoAnnotationc                     |                      t          d          5  t           G d d                      }d d d            d S # 1 swxY w Y   d S )N)'f' is a field but has no type annotationc                   "    e Zd Z e            ZdS )>TestFieldNoAnnotation.test_field_without_annotation.<locals>.CNr   r   r   rE   r  r   r   r   r#   r  <          EGGr   r#   r,  r   s     r   test_field_without_annotationz3TestFieldNoAnnotation.test_field_without_annotation9  s    ##I$OQ Q 	 	       Y	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r.  c                     t            G d d                      }|                     t          d          5  t            G d d|                      }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZU eed<   dS )UTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base.<locals>.Br  Nr7   r   r   r   ru   r  A  r:   r   ru   r  c                   "    e Zd Z e            ZdS )UTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base.<locals>.CNr  r   r   r   r#   r  I  r  r   r#   r&   rF   r{   rt  s      r   4test_field_without_annotation_but_annotation_in_basezJTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base@  s    		 	 	 	 	 	 	 
	 ##I$OQ Q 	 	     A   Y	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA#&A#c                      G d d          }|                      t          d          5  t           G d d|                      }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZU eed<   dS )cTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass.<locals>.Br  Nr7   r   r   r   ru   r  O  r"  r   ru   r  c                   "    e Zd Z e            ZdS )cTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass.<locals>.CNr  r   r   r   r#   r  V  r  r   r#   r,  rt  s      r   Btest_field_without_annotation_but_annotation_in_base_not_dataclasszXTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclassM  s    	 	 	 	 	 	 	 	 ##I$OQ Q 	 	     A   Y	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAN)r   r   r   r  r  r  r   r   r   r  r  8  sA                r   r  c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestDocStringc                     |                      |                    dd          |                    dd                     d S )N  )r'   rE  )r+   r  r   s      r   assertDocStrEqualzTestDocString.assertDocStrEqual\  s<     	3++QYYsB-?-?@@@@@r   c                 p    t            G d d                      }|                     |j        d           d S )Nc                       e Zd ZU dZeed<   dS )?TestDocString.test_existing_docstring_not_overridden.<locals>.CLorem ipsumr6   N)r   r   r   __doc__r8   r9   r   r   r   r#   r  c  s         FFFFFr   r#   r  )r&   r'   r  r   s     r   &test_existing_docstring_not_overriddenz4TestDocString.test_existing_docstring_not_overriddenb  sT    		 	 	 	 	 	 	 
	 	M22222r   c                 p    t            G d d                      }|                     |j        d           d S )Nc                       e Zd ZdS )1TestDocString.test_docstring_no_fields.<locals>.CNr   r   r   r   r#   r  k  r$   r   r#   zC()r&   r  r  r   s     r   test_docstring_no_fieldsz&TestDocString.test_docstring_no_fieldsj  sT    		 	 	 	 	 	 	 
	 	qy%00000r   c                 p    t            G d d                      }|                     |j        d           d S )Nc                       e Zd ZU eed<   dS )1TestDocString.test_docstring_one_field.<locals>.Cr6   Nr7   r   r   r   r#   r  r  r:   r   r#   zC(x:int)r  r   s     r   test_docstring_one_fieldz&TestDocString.test_docstring_one_fieldq  sT    		 	 	 	 	 	 	 
	 	qy*55555r   c                 p    t            G d d                      }|                     |j        d           d S )Nc                   $    e Zd ZU eed<   eed<   dS )2TestDocString.test_docstring_two_fields.<locals>.Cr6   rm   Nr7   r   r   r   r#   r  y  r.  r   r#   zC(x:int, y:int)r  r   s     r   test_docstring_two_fieldsz'TestDocString.test_docstring_two_fieldsx  sU    		 	 	 	 	 	 	 
	 	qy*;<<<<<r   c                 p    t            G d d                      }|                     |j        d           d S )Nc                   .    e Zd ZU eed<   eed<   eed<   dS )4TestDocString.test_docstring_three_fields.<locals>.Cr6   rm   r   Nr   r   r   r8   r9   r   r   r   r   r#   r    r  r   r#   zC(x:int, y:int, z:str)r  r   s     r   test_docstring_three_fieldsz)TestDocString.test_docstring_three_fields  sU    		 	 	 	 	 	 	 
	
 	qy*BCCCCCr   c                 p    t            G d d                      }|                     |j        d           d S )Nc                       e Zd ZU dZeed<   dS )>TestDocString.test_docstring_one_field_with_default.<locals>.Crp   r6   Nrr   r   r   r   r#   r    r  r   r#   z
C(x:int=3)r  r   s     r   %test_docstring_one_field_with_defaultz3TestDocString.test_docstring_one_field_with_default  sT    		 	 	 	 	 	 	 
	 	qy,77777r   c                 p    t            G d d                      }|                     |j        d           d S )Nc                   @    e Zd ZU dZee ed          f         ed<   dS )CTestDocString.test_docstring_one_field_with_default_none.<locals>.CNr6   )r   r   r   r6   r   r8   rV   r9   r   r   r   r#   r    s3         (,AuS$$t**_%,,,,,r   r#   zC(x:Optional[int]=None)r  r   s     r   *test_docstring_one_field_with_default_nonez8TestDocString.test_docstring_one_field_with_default_none  sU    		- 	- 	- 	- 	- 	- 	- 
	- 	qy*CDDDDDr   c                 p    t            G d d                      }|                     |j        d           d S )Nc                   &    e Zd ZU ee         ed<   dS )2TestDocString.test_docstring_list_field.<locals>.Cr6   N)r   r   r   r   r8   r9   r   r   r   r#   r    s         CyLLLLLr   r#   zC(x:List[int])r  r   s     r   test_docstring_list_fieldz'TestDocString.test_docstring_list_field  sU    		 	 	 	 	 	 	 
	 	qy*:;;;;;r   c                 p    t            G d d                      }|                     |j        d           d S )Nc                   >    e Zd ZU  ee          Zee         ed<   dS )GTestDocString.test_docstring_list_field_with_default_factory.<locals>.Cr:  r6   N)	r   r   r   rE   r  r6   r   r8   r9   r   r   r   r#   r    s3          5666AtCy66666r   r#   zC(x:List[int]=<factory>)r  r   s     r   .test_docstring_list_field_with_default_factoryz<TestDocString.test_docstring_list_field_with_default_factory  sU    		7 	7 	7 	7 	7 	7 	7 
	7 	qy*DEEEEEr   c                 p    t            G d d                      }|                     |j        d           d S )Nc                       e Zd ZU eed<   dS )3TestDocString.test_docstring_deque_field.<locals>.Cr6   N)r   r   r   r   r9   r   r   r   r#   r    s         HHHHHr   r#   zC(x:collections.deque)r  r   s     r   test_docstring_deque_fieldz(TestDocString.test_docstring_deque_field  sU    		 	 	 	 	 	 	 
	 	qy*BCCCCCr   c                 p    t            G d d                      }|                     |j        d           d S )Nc                   2    e Zd ZU  ee          Zeed<   dS )HTestDocString.test_docstring_deque_field_with_default_factory.<locals>.Cr:  r6   N)r   r   r   rE   r   r6   r9   r   r   r   r#   r    s/         uU333Au33333r   r#   z C(x:collections.deque=<factory>)r  r   s     r   /test_docstring_deque_field_with_default_factoryz=TestDocString.test_docstring_deque_field_with_default_factory  sU    		4 	4 	4 	4 	4 	4 	4 
	4 	qy*LMMMMMr   c                      G d dt                     } G d d|          }t           G d d|                      }|                     |j        d           d S )Nc                       e Zd ZeZdS )<TestDocString.test_docstring_with_no_signature.<locals>.MetaN)r   r   r   r  __call__r   r   r   Metar    r  r   r  c                       e Zd ZdS )<TestDocString.test_docstring_with_no_signature.<locals>.BaseNr   r   r   r   r   r    r]   r   r   )	metaclassc                       e Zd ZdS )9TestDocString.test_docstring_with_no_signature.<locals>.CNr   r   r   r   r#   r    r$   r   r#   )rV   r&   r  r  )r+   r  r   r#   s       r    test_docstring_with_no_signaturez.TestDocString.test_docstring_with_no_signature  s    	 	 	 	 	4 	 	 		 	 	 	 	T 	 	 	 	 
	 	 	 	 	 	 	 
	 	qy#.....r   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r  r  [  s        A A A3 3 31 1 16 6 6= = =D D D8 8 8E E E< < <F F FD D DN N N/ / / / /r   r  c                   &    e Zd Zd Zd Zd Zd ZdS )TestInitc                     G d d          }t            G d d|                      } |d          }|                     |j        d           |                     dt	          |                     t          d           G d	 d|                      } |            }|                     |j        d           |                     |j        d
           d S )Nc                       e Zd Zd ZdS )&TestInit.test_base_has_init.<locals>.Bc                     d| _         d S Nr   r   r   s    r   r   z/TestInit.test_base_has_init.<locals>.B.__init__  s    r   Nr  r   r   r   ru   r    s#            r   ru   c                       e Zd ZU dZeed<   dS )&TestInit.test_base_has_init.<locals>.Cr   r6   Nrr   r   r   r   r#   r    r  r   r#   r   r   Fr  c                       e Zd ZU dZeed<   dS )r  r   r6   Nrr   r   r   r   r#   z&TestInit.test_base_has_init.<locals>.C           AsKKKKKr   r   )r&   r'   r6   rc  r  r   )r+   ru   r#   r   s       r   test_base_has_initzTestInit.test_base_has_init  s$   	 	 	 	 	 	 	 	 
	 	 	 	 	 	 	 
	AbEEb!!!d1gg&&& 
				 	 	 	 	 	 	 
		ACCb!!!c"""""r   c                    t          d           G d d                      }|                      |            j        d           t          d           G d d                      }|                      |            j        d           d S )NFr  c                       e Zd ZU dZeed<   dS ) TestInit.test_no_init.<locals>.Cr   r1   N)r   r   r   r1   r8   r9   r   r   r   r#   r    r  r   r#   r   c                   $    e Zd ZU dZeed<   d ZdS )r  r1  r1   c                     d| _         d S Nrp   r1   r   s    r   r   z)TestInit.test_no_init.<locals>.C.__init__  rk  r   N)r   r   r   r1   r8   r9   r   r   r   r   r#   z TestInit.test_no_init.<locals>.C  s2         AsJJJ    r   rp   r&   r'   r1   r   s     r   test_no_initzTestInit.test_no_init  s    					 	 	 	 	 	 	 
		"""					 	 	 	 	 	 	 
		 	"""""r   c                    t            G d d                      }|                      |d          j        d           t          d           G d d                      }|                      |d          j        d	           t          d
           G d d                      }|                      |d          j        d           d S )Nc                        e Zd ZU eed<   d ZdS ))TestInit.test_overwriting_init.<locals>.Cr6   c                     d|z  | _         d S r\  rh   r+   r6   s     r   r   z2TestInit.test_overwriting_init.<locals>.C.__init__      Qr   Nr   r   r   r8   r9   r   r   r   r   r#   r    .         FFF    r   r#   rp   r  Tr  c                        e Zd ZU eed<   d ZdS )r  r6   c                     d|z  | _         d S r\  rh   r  s     r   r   z2TestInit.test_overwriting_init.<locals>.C.__init__  r  r   Nr  r   r   r   r#   z)TestInit.test_overwriting_init.<locals>.C  r  r   r~     Fc                        e Zd ZU eed<   d ZdS )r  r6   c                     d|z  | _         d S r\  rh   r  s     r   r   z2TestInit.test_overwriting_init.<locals>.C.__init__  r  r   Nr  r   r   r   r#   z)TestInit.test_overwriting_init.<locals>.C  r  r   r   r   r<   r   s     r   test_overwriting_initzTestInit.test_overwriting_init  s    
	 	 	 	 	 	 	 
	 	1###					 	 	 	 	 	 	 
		 	1###					 	 	 	 	 	 	 
		 	1$$$$$r   c                 (    G d dt                     }t           G d d|                      }|                      |d          j        d           t           G d d|                      }|                      |d          j        d           d S )	Nc                       e Zd ZU eed<   dS ).TestInit.test_inherit_from_protocol.<locals>.Pr  Nr7   r   r   r   rr  r  	  r"  r   rr  c                       e Zd ZU eed<   dS ).TestInit.test_inherit_from_protocol.<locals>.Cr  Nr7   r   r   r   r#   r
  		  r:   r   r#   r   c                       e Zd Zd ZdS ).TestInit.test_inherit_from_protocol.<locals>.Dc                     |dz  | _         d S r\  r  )r+   r  s     r   r   z7TestInit.test_inherit_from_protocol.<locals>.D.__init__	  r  r   Nr  r   r   r   r`   r  	  s#            r   r`   r   )r   r&   r'   r  )r+   rr  r#   r`   s       r   test_inherit_from_protocolz#TestInit.test_inherit_from_protocol	  s    	 	 	 	 	 	 	 	 
	 	 	 	 	 	 	 
	 	1###		 	 	 	 	 	 	 
	 	1$$$$$r   N)r   r   r   r  r  r  r  r   r   r   r  r    sP        # # #4# # #% % %2% % % % %r   r  c                        e Zd Zd Zd Zd ZdS )TestReprc                 b   t            G d d                      }t            G d d|                      } |d          }|                     t          |          d           t            G d d|                      }|                     t           |                      d	           t            G d
 d                      }|                     t          |                    d                    d           |                     t          |                                          d           d S )Nc                       e Zd ZU eed<   dS )TestRepr.test_repr.<locals>.Br6   Nr7   r   r   r   ru   r  	  r:   r   ru   c                       e Zd ZU dZeed<   dS )TestRepr.test_repr.<locals>.Cr   rm   Nr  r   r   r   r#   r  	  r  r   r#   r~  z(TestRepr.test_repr.<locals>.C(x=4, y=10)c                       e Zd ZU dZeed<   dS )TestRepr.test_repr.<locals>.Drx  r6   Nrr   r   r   r   r`   r  $	  r  r   r`   z)TestRepr.test_repr.<locals>.D(x=20, y=10)c                   b    e Zd Ze G d d                      Ze G d d                      ZdS )r  c                       e Zd ZU eed<   dS )TestRepr.test_repr.<locals>.C.Dr1   Nr7   r   r   r   r`   r  +	  rx   r   r`   c                       e Zd ZdS )TestRepr.test_repr.<locals>.C.ENr   r   r   r   r  r  .	  s        r   r  N)r   r   r   r&   r`   r  r   r   r   r#   zTestRepr.test_repr.<locals>.C)	  sx               Y       Y  r   r   z$TestRepr.test_repr.<locals>.C.D(i=0)z!TestRepr.test_repr.<locals>.C.E())r&   r'   rL   r`   r  )r+   ru   r#   r,   r`   s        r   	test_reprzTestRepr.test_repr	  ss   		 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 
	 AaDDa"LMMM		 	 	 	 	 	 	 
	aacc$OPPP		 	 	 	 	 	 	 
	 	acc!ff'MNNNaccee&IJJJJJr   c                 R   t          d           G d d                      }|                     t           dt           |d                               t          d           G d d                      }|                     t           |d                    d           d S )	NFru  c                       e Zd ZU eed<   dS ) TestRepr.test_no_repr.<locals>.Cr6   Nr7   r   r   r   r#   r   6	  r:   r   r#   z+.TestRepr.test_no_repr.<locals>.C object atrp   c                        e Zd ZU eed<   d ZdS )r   r6   c                     dS )NC-classr   r   s    r   r  z)TestRepr.test_no_repr.<locals>.C.__repr__@	  s     yr   Nr   r   r   r8   r9   r  r   r   r   r#   z TestRepr.test_no_repr.<locals>.C=	  s.         FFF! ! ! ! !r   r#  )r&   rW   r   rL   r'   r   s     r   test_no_reprzTestRepr.test_no_repr4	  s    					 	 	 	 	 	 	 
		NNN11Q44jj	" 	" 	" 
				! 	! 	! 	! 	! 	! 	! 
		! 	aaddY/////r   c                    t            G d d                      }|                     t           |d                    d           t          d           G d d                      }|                     t           |d                    d           t          d           G d	 d                      }|                     t           |d                    d           d S )
Nc                        e Zd ZU eed<   d ZdS ))TestRepr.test_overwriting_repr.<locals>.Cr6   c                     dS Nr6   r   r   s    r   r  z2TestRepr.test_overwriting_repr.<locals>.C.__repr__K	  r   r   Nr$  r   r   r   r#   r(  H	  r   r   r#   r   r6   Tru  c                        e Zd ZU eed<   d ZdS )r(  r6   c                     dS r*  r   r   s    r   r  z2TestRepr.test_overwriting_repr.<locals>.C.__repr__R	  r   r   Nr$  r   r   r   r#   z)TestRepr.test_overwriting_repr.<locals>.CO	  r   r   Fc                        e Zd ZU eed<   d ZdS )r(  r6   c                     dS r*  r   r   s    r   r  z2TestRepr.test_overwriting_repr.<locals>.C.__repr__Y	  r   r   Nr$  r   r   r   r#   z)TestRepr.test_overwriting_repr.<locals>.CV	  r   r   r   r   s     r   test_overwriting_reprzTestRepr.test_overwriting_reprD	  s*    
	 	 	 	 	 	 	 
	 	aaddS)))					 	 	 	 	 	 	 
		 	aaddS)))					 	 	 	 	 	 	 
		 	aaddS)))))r   N)r   r   r   r  r%  r/  r   r   r   r  r  	  sD        K K K80 0 0 * * * * *r   r  c                       e Zd Zd Zd ZdS )TestEqc                 b   t          d           G d d                      }|                      |d           |d                      |d          }|                     ||           t          d           G d d                      }|                      |d          d           d S )	NFrX  c                       e Zd ZU eed<   dS )TestEq.test_no_eq.<locals>.Cr6   Nr7   r   r   r   r#   r5  a	  r:   r   r#   r   rp   c                        e Zd ZU eed<   d ZdS )r5  r6   c                     |dk    S rW  r   r   s     r   r   z#TestEq.test_no_eq.<locals>.C.__eq__l	  s    {"r   Nr   r   r   r   r#   zTestEq.test_no_eq.<locals>.Ci	  s.         FFF# # # # #r   r   )r&   r   r'   r   s      r   
test_no_eqzTestEq.test_no_eq_	  s    	e				 	 	 	 	 	 	 
		AAaDD!!A$$'''AaDDA 
e				# 	# 	# 	# 	# 	# 	# 
		# 	1r"""""r   c                 :   t            G d d                      }|                      |d          d           |                      |d          d           t          d           G d d                      }|                      |d          d           |                      |d          d           t          d	           G d
 d                      }|                      |d          d           |                      |d          d           d S )Nc                        e Zd ZU eed<   d ZdS )%TestEq.test_overwriting_eq.<locals>.Cr6   c                     |dk    S r  r   r   s     r   r   z,TestEq.test_overwriting_eq.<locals>.C.__eq__w	      z!r   Nr   r   r   r   r#   r;  t	  .         FFF" " " " "r   r#   rA   rp   Tr3  c                        e Zd ZU eed<   d ZdS )r;  r6   c                     |dk    S rE  r   r   s     r   r   z,TestEq.test_overwriting_eq.<locals>.C.__eq__	  r=  r   Nr   r   r   r   r#   z%TestEq.test_overwriting_eq.<locals>.C|	  r>  r   r~  Fc                        e Zd ZU eed<   d ZdS )r;  r6   c                     |dk    S rH  r   r   s     r   r   z,TestEq.test_overwriting_eq.<locals>.C.__eq__	  r=  r   Nr   r   r   r   r#   z%TestEq.test_overwriting_eq.<locals>.C	  r>  r   r   r  r   s     r   test_overwriting_eqzTestEq.test_overwriting_eqp	  sr    
	" 	" 	" 	" 	" 	" 	" 
	" 	1q!!!AAaDD!$$$	d				" 	" 	" 	" 	" 	" 	" 
		" 	1q!!!AAaDD!$$$	e				" 	" 	" 	" 	" 	" 	" 
		" 	1q!!!AAaDD!$$$$$r   N)r   r   r   r8  rC  r   r   r   r1  r1  ^	  s2        # # #"% % % % %r   r1  c                        e Zd Zd Zd Zd ZdS )TestOrderingc                 L   t           t           G d d                                  }|                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           d S )Nc                        e Zd ZU eed<   d ZdS )5TestOrdering.test_functools_total_ordering.<locals>.Cr6   c                     | j         |k    S r   rh   r   s     r   r_  z<TestOrdering.test_functools_total_ordering.<locals>.C.__lt__	  s     v&r   Nr   r   r   r8   r9   r_  r   r   r   r#   rH  	  s0          FFF' ' ' ' 'r   r#   r   rA   )r   r&   r(  r  r)  r  r   s     r   test_functools_total_orderingz*TestOrdering.test_functools_total_ordering	  s    			' 	' 	' 	' 	' 	' 	' 
 
	' 	!b!!!QQqTT2&&&11Q44###!a(((((r   c                    t          d           G d d                      }|                     d|j                   |                     d|j                   |                     d|j                   |                     d|j                   t          d           G d	 d                      }|                     d|j                   |                     d|j                   |                     d|j                   d S )
NFr   c                       e Zd ZU eed<   dS )%TestOrdering.test_no_order.<locals>.Cr6   Nr7   r   r   r   r#   rO  	  r:   r   r#   r`  r_  rb  ra  c                        e Zd ZU eed<   d ZdS )rO  r6   c                     dS r   r   r   s     r   r_  z,TestOrdering.test_no_order.<locals>.C.__lt__	  r   r   NrJ  r   r   r   r#   z%TestOrdering.test_no_order.<locals>.C	  r   r   r  r   s     r   test_no_orderzTestOrdering.test_no_order	  s2   					 	 	 	 	 	 	 
 		 	1:...1:...1:...1:... 
				 	 	 	 	 	 	 
 		
 	1:...1:...1:.....r   c                    |                      t          d          5  t          d           G d d                      }d d d            n# 1 swxY w Y   |                      t          d          5  t          d           G d d                      }d d d            n# 1 swxY w Y   |                      t          d          5  t          d           G d	 d                      }d d d            n# 1 swxY w Y   |                      t          d
          5  t          d           G d d                      }d d d            d S # 1 swxY w Y   d S )NzACannot overwrite attribute __lt__.*using functools.total_orderingTr   c                        e Zd ZU eed<   d ZdS ).TestOrdering.test_overwriting_order.<locals>.Cr6   c                     d S r   r   r   s    r   r_  z5TestOrdering.test_overwriting_order.<locals>.C.__lt__	  r   r   NrJ  r   r   r   r#   rU  	  .             r   r#   zACannot overwrite attribute __le__.*using functools.total_orderingc                        e Zd ZU eed<   d ZdS )rU  r6   c                     d S r   r   r   s    r   r`  z5TestOrdering.test_overwriting_order.<locals>.C.__le__	  r   r   N)r   r   r   r8   r9   r`  r   r   r   r#   z.TestOrdering.test_overwriting_order.<locals>.C	  rW  r   zACannot overwrite attribute __gt__.*using functools.total_orderingc                        e Zd ZU eed<   d ZdS )rU  r6   c                     d S r   r   r   s    r   ra  z5TestOrdering.test_overwriting_order.<locals>.C.__gt__	  r   r   N)r   r   r   r8   r9   ra  r   r   r   r#   z.TestOrdering.test_overwriting_order.<locals>.C	  rW  r   zACannot overwrite attribute __ge__.*using functools.total_orderingc                        e Zd ZU eed<   d ZdS )rU  r6   c                     d S r   r   r   s    r   rb  z5TestOrdering.test_overwriting_order.<locals>.C.__ge__	  r   r   N)r   r   r   r8   r9   rb  r   r   r   r#   z.TestOrdering.test_overwriting_order.<locals>.C	  rW  r   r,  r   s     r   test_overwriting_orderz#TestOrdering.test_overwriting_order	  s   ##I%GH H 	 	 T"""       #"		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I%GH H 	 	 T"""       #"		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I%GH H 	 	 T"""       #"		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I%GH H 	 	 T"""       #"		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sG   $AAA2$B""B&)B&$C88C<?C<$EEEN)r   r   r   rL  rR  r^  r   r   r   rE  rE  	  sA        ) ) ) / / /,# # # # #r   rE  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestHashc                     t          d           G d d                      }|                     t           |dd                    t          d                     d S )NTr   c                   $    e Zd ZU eed<   eed<   dS )$TestHash.test_unsafe_hash.<locals>.Cr6   rm   Nr  r   r   r   r#   rc  	  r.  r   r#   rA   r   )rA   r   r&   r'   r   r   s     r   test_unsafe_hashzTestHash.test_unsafe_hash	  sx    	t	$	$	$	 	 	 	 	 	 	 
%	$	 	aa5kk**D,<,<=====r   c           	      @    d } fd}t          g dd          D ]\  }\  }}}}} |||||d|            |||||d|            || ||           ||           ||          d|            || ||           ||           ||          d|           d S )Nc                     | d S | rdS dS )N)rp   r   r   )r  s    r   non_boolz*TestHash.test_hash_rules.<locals>.non_bool	  s    }t t1r   c                                         | |||          5  |dk    rM|r&t          |||           G d d                      }n%t          |||           G d d                      }|dk    r<                    d|j                                       |j        d                    n|d	k    r|s                    d|j                   n|d
k    r<                    d|j                                       |j        d                    n^|dk    rX                    t          d          5  t          |||           G d d                      }d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)caser   rX  r   rU  )r   rX  r   c                       e Zd Zd ZdS )1TestHash.test_hash_rules.<locals>.test.<locals>.Cc                     dS r  r   r   s    r   r   z:TestHash.test_hash_rules.<locals>.test.<locals>.C.__hash__	      '(qr   Nr   r   r   r   r#   rl  	  #        ) ) ) ) )r   r#   c                       e Zd ZdS )rl  Nr   r   r   r   r#   z1TestHash.test_hash_rules.<locals>.test.<locals>.C	  r\  r   r  r   r  noner   c                       e Zd Zd ZdS )rl  c                     dS r  r   r   s    r   r   z:TestHash.test_hash_rules.<locals>.test.<locals>.C.__hash__
  rn  r   Nr   r   r   r   r#   z1TestHash.test_hash_rules.<locals>.test.<locals>.C
  ro  r   )	r  r&   rW   r   assertIsNotNonerc  r  rF   r{   )rj  r   rX  r   	with_hashrd  r#   r+   s          r   r*  z&TestHash.test_hash_rules.<locals>.test	  s   4[R%+  - - (? (?[((  !"{r&QQQ) ) ) ) ) ) ) RQ) ) #{r&QQQ! ! ! ! ! ! ! RQ! T>>MM*aj999((J)?@@@@r\\$ A((QZ@@@v%%MM*aj999%%aj&<===={** //	;`aa ) )"{r&QQQ) ) ) ) ) ) ) RQ)) ) ) ) ) ) ) ) ) ) ) ) ) ) )C(? (? (? (? (? (? (? (? (? (? (? (? (? (? (? (? (? (?s6   DF8&E*F*E.	.F1E.	2FF	F))FFFr  r  )FFTr  r  )FTFrq  r  )FTTr  r  )TFFr  rU  )TFTr  rU  )TTFr  rU  )TTTr  rU  rA   FT)r  )	r+   rh  r*  rj  r   rX  r   res_no_defined_hashres_defined_hashs	   `        r   test_hash_ruleszTestHash.test_hash_rules	  s-   	 	 	)	? )	? )	? )	? )	?b [d 	e 	e 	e 	[ 	[ 	g 	gVDV;0CEU D{B7JKKKD{B7GHHH
 Dxx,,hhrllHHV<L<LeUhiiiDxx,,hhrllHHV<L<LdUeffff#	g 	gr   c                 `   t            G d d                      }|                      |d           |d                     |                      |d           |d                     t          d           G d d                      }|                      |d           |d                     |                     t           |d                    t           |d                               t          dd	           G d
 d                      }|                      |d           |d                     |                      |d           |d                     |                     t           |d                    t           |d                               d S )Nc                        e Zd ZU eed<   d ZdS ) TestHash.test_eq_only.<locals>.Cr1   c                 "    | j         |j         k    S r   r  r   s     r   r   z'TestHash.test_eq_only.<locals>.C.__eq__8
      v((r   Nr   r   r   r   r#   r{  5
  .         FFF) ) ) ) )r   r#   rA   r~  Tr   c                        e Zd ZU eed<   d ZdS )r{  r1   c                 "    | j         |j         k    S r   r  r   s     r   r   z'TestHash.test_eq_only.<locals>.C.__eq__B
  r}  r   Nr   r   r   r   r#   z TestHash.test_eq_only.<locals>.C?
  r~  r   rg  )r   rX  c                        e Zd ZU eed<   d ZdS )r{  r1   c                 8    | j         dk    o| j         |j         k    S r  r  r   s     r   r   z'TestHash.test_eq_only.<locals>.C.__eq__L
  s    v{8tv'88r   Nr   r   r   r   r#   z TestHash.test_eq_only.<locals>.CI
  s.         FFF9 9 9 9 9r   rp   )r&   r'   r   r   r   s     r   test_eq_onlyzTestHash.test_eq_only/
  s    
	) 	) 	) 	) 	) 	) 	) 
	) 	1qqtt$$$AAaDD!!A$$''' 
t	$	$	$	) 	) 	) 	) 	) 	) 	) 
%	$	) 	1qqvv&&&aaddT!!C&&\\222 
t	-	-	-	9 	9 	9 	9 	9 	9 	9 
.	-	9 	1qqtt$$$AAaDD!!A$$'''aaddT!!C&&\\22222r   c                 r   t          d           G d d                      }|                     t           |                      t          d                     t          d           G d d                      }|                     t           |                      t          d                     d S )NTr~   c                       e Zd ZdS %TestHash.test_0_field_hash.<locals>.CNr   r   r   r   r#   r  S
  r$   r   r#   r   r   c                       e Zd ZdS r  r   r   r   r   r#   z%TestHash.test_0_field_hash.<locals>.CX
  r$   r   rd  r   s     r   test_0_field_hashzTestHash.test_0_field_hashR
  s    	$				 	 	 	 	 	 	 
 		aaccDHH---	t	$	$	$	 	 	 	 	 	 	 
%	$	aaccDHH-----r   c                 Z   t          d           G d d                      }|                     t           |d                    t          d                     |                     t           |d                    t          d                     t          d	           G d
 d                      }|                     t           |d                    t          d                     |                     t           |d                    t          d                     d S )NTr~   c                       e Zd ZU eed<   dS %TestHash.test_1_field_hash.<locals>.Cr6   Nr7   r   r   r   r#   r  ^
  r:   r   r#   r~  )r~  r;   r;   r   c                       e Zd ZU eed<   dS r  r7   r   r   r   r#   z%TestHash.test_1_field_hash.<locals>.Cd
  r:   r   rd  r   s     r   test_1_field_hashzTestHash.test_1_field_hash]
  s,   	$				 	 	 	 	 	 	 
 		aaddT$ZZ000aaeed5kk222	t	$	$	$	 	 	 	 	 	 	 
%	$	aaddT$ZZ000aaeed5kk22222r   c                     G d d          }d d t           dfd d |dfd dt           dfd d|dfd dt           dfd d|dfdd t           dfdd |dfddt           dfdd|dfddt           dfdd|dfdd t           dfdd |dfddt           dfdd|dfddt           dfdd|dffD ]\  }}}}|                     ||||	          5  ||t           G d
 d|                      }ns|%t          |           G d d|                      }nL|%t          |           G d d|                      }n%t          ||           G d d|                      }|dk    rN |d          }|                     t          d          5  t          |           d d d            n# 1 swxY w Y   n|dk    r-|                     t           |d                    d           nk|dk    r&|                     |j        t           j                   n?|dk    r9|                     t           |d                    t          d                     d d d            n# 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )(TestHash.test_hash_no_args.<locals>.Basec                     dS r   r   r   s    r   r   z1TestHash.test_hash_no_args.<locals>.Base.__hash__q
  r   r   Nr   r   r   r   r   r  p
  s#            r   r   r  Fr   baseTr  )r   rX  r  rQ  c                       e Zd ZU eed<   dS %TestHash.test_hash_no_args.<locals>.Cr1   Nr7   r   r   r   r#   r  
           r   r#   r3  c                       e Zd ZU eed<   dS r  r7   r   r   r   r#   z%TestHash.test_hash_no_args.<locals>.C
  r  r   r~   c                       e Zd ZU eed<   dS r  r7   r   r   r   r#   z%TestHash.test_hash_no_args.<locals>.C
  r  r   )r   rX  c                       e Zd ZU eed<   dS r  r7   r   r   r   r#   z%TestHash.test_hash_no_args.<locals>.C
  r  r   r   unhashable typer   r;   r  )	r   r  r&   rF   r{   r   r'   rp  r   )r+   r   r   rX  r  rQ  r#   r   s           r   test_hash_no_argszTestHash.test_hash_no_argsj
  s   	 	 	 	 	 	 	 	 D6<0D4<0E68,E46*D6<0D4<0D6<0D4<0E68,E46*D6<0D4<0D67+D47+E68,E46*D67+D47+%6 <	M <	M+FB48* VQQ 'M 'M>bj    D   Y ^"%%%    D   &% Zf---    D   .-  f444    D   54 |++"A//	;LMM    Q                              ''$$T!!B%%[[#6666))
 MM!*fo>>>>(($$T!!B%%[[$u++>>>I'M 'M 'M 'M 'M 'M 'M 'M 'M 'M 'M 'M 'M 'M 'M+<	M <	Ms8   8C I
8FI
FI
FB"I

I	I	N)	r   r   r   re  rx  r  r  r  r  r   r   r   r`  r`  	  s        > > >Kg Kg Kg\!3 !3 !3F	. 	. 	.3 3 3HM HM HM HM HMr   r`  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )
TestFrozenc                 @   t          d           G d d                      } |d          }|                     |j        d           |                     t                    5  d|_        d d d            n# 1 swxY w Y   |                     |j        d           d S )NTr~   c                       e Zd ZU eed<   dS )!TestFrozen.test_frozen.<locals>.Cr1   Nr7   r   r   r   r#   r  
  r:   r   r#   r   r   )r&   r'   r1   ry  rb  r   s      r   test_frozenzTestFrozen.test_frozen
  s    	$				 	 	 	 	 	 	 
 		 AbEEb!!!233 	 	AC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	b!!!!!s   $A88A<?A<c                    t          d           G d d                      }t          d           G d d|                      } |dd          }|                     t                    5  d	|_        d d d            n# 1 swxY w Y   |                     t                    5  d
|_        d d d            n# 1 swxY w Y   |                     |j        d           |                     |j        d           d S )NTr~   c                       e Zd ZU eed<   dS )"TestFrozen.test_inherit.<locals>.Cr1   Nr7   r   r   r   r#   r  
  r:   r   r#   c                       e Zd ZU eed<   dS )"TestFrozen.test_inherit.<locals>.Dr  Nr7   r   r   r   r`   r  
  r:   r   r`   r   r   r   r  )r&   ry  rb  r1   r  r'   r+   r#   r`   r  s       r   test_inheritzTestFrozen.test_inherit
  s   	$				 	 	 	 	 	 	 
 		 
$				 	 	 	 	 	 	 
 		 AaHH233 	 	AC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	233 	 	AC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	a   b!!!!!s$   .BB	B'B;;B?B?c                     t          d           G d d                      }|                     t          d          5  t            G d d|                      }d d d            d S # 1 swxY w Y   d S )NTr~   c                       e Zd ZdS )>TestFrozen.test_inherit_nonfrozen_from_empty_frozen.<locals>.CNr   r   r   r   r#   r  
  r$   r   r#   5cannot inherit non-frozen dataclass from a frozen onec                       e Zd ZU eed<   dS )>TestFrozen.test_inherit_nonfrozen_from_empty_frozen.<locals>.Dr  Nr7   r   r   r   r`   r  
  rx   r   r`   r  rb   s      r   (test_inherit_nonfrozen_from_empty_frozenz3TestFrozen.test_inherit_nonfrozen_from_empty_frozen
  s    	$				 	 	 	 	 	 	 
 		 ##I$[] ] 	 	    A   Y	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A((A,/A,c                     t            G d d                      }t            G d d|                      } |d          }|                     |j        d           |                     ||           d S )Nc                       e Zd ZdS )7TestFrozen.test_inherit_nonfrozen_from_empty.<locals>.CNr   r   r   r   r#   r  
  r$   r   r#   c                       e Zd ZU eed<   dS )7TestFrozen.test_inherit_nonfrozen_from_empty.<locals>.Dr  Nr7   r   r   r   r`   r  
  r:   r   r`   rp   )r&   r'   r  r  r  s       r   !test_inherit_nonfrozen_from_emptyz,TestFrozen.test_inherit_nonfrozen_from_empty
  s    		 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 
	 AaDDa   a#####r   c           	      t   dD ]}|                      |          5  t          d           G d d                      }|r G d d|          }n|}|                     t          d	          5  t           G d
 d|                      }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )NTFintermediate_classTr~   c                       e Zd ZU eed<   dS )8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.Cr1   Nr7   r   r   r   r#   r  
           FFFFFr   r#   c                       e Zd ZdS )8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.INr   r   r   r   Ir  
  r   r   r  r  c                       e Zd ZdS )8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.DNr   r   r   r   r`   r  
  r^  r   r`   r  r&   rF   r{   r+   r  r#   r  r`   s        r   "test_inherit_nonfrozen_from_frozenz-TestFrozen.test_inherit_nonfrozen_from_frozen
  s   "/ 	 	1CDD  $'''       (' & $$$$$A$$$$A++I,ce e      A   Y                            	 	s6   AB,-B	B,BB,BB,,B0	3B0	c           	      t   dD ]}|                      |          5  t           G d d                      }|r G d d|          }n|}|                     t          d          5  t          d	           G d
 d|                      }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )Nr  r  c                       e Zd ZU eed<   dS )8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.Cr1   Nr7   r   r   r   r#   r    r  r   r#   c                       e Zd ZdS )8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.INr   r   r   r   r  r    r   r   r  z5cannot inherit frozen dataclass from a non-frozen oneTr~   c                       e Zd ZdS )8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.DNr   r   r   r   r`   r    r^  r   r`   r  r  s        r   "test_inherit_frozen_from_nonfrozenz-TestFrozen.test_inherit_frozen_from_nonfrozen
  s   "/ 	 	1CDD          & $$$$$A$$$$A++I,ce e  d+++    A   ,+                            	 	s6   A	B,$%B	B,BB,BB,,B0	3B0	c                 |   dD ]}|                      |          5   G d d          }|r G d d|          }n|}t          d           G d	 d
|                      }d d d            n# 1 swxY w Y    |d          }|                     t                    5  d|_        d d d            n# 1 swxY w Y   d S )Nr  r  c                       e Zd ZdS )4TestFrozen.test_inherit_from_normal_class.<locals>.CNr   r   r   r   r#   r    s        Dr   r#   c                       e Zd ZdS )4TestFrozen.test_inherit_from_normal_class.<locals>.INr   r   r   r   r  r    r   r   r  Tr~   c                       e Zd ZU eed<   dS )4TestFrozen.test_inherit_from_normal_class.<locals>.Dr1   Nr7   r   r   r   r`   r    r  r   r`   r   r   )r  r&   ry  rb  r1   )r+   r  r#   r  r`   r  s         r   test_inherit_from_normal_classz)TestFrozen.test_inherit_from_normal_class  s   "/ 	 	1CDD          & $$$$$A$$$$A$'''       ('               "A""#677                	 	s$   AA,,A0	3A0	B00B4	7B4	c                 ~   t          d           G d d                      } G d d|          } |d          }|                     |j        d           |                     |j        d           d|_        |                     t                    5  d	|_        d d d            n# 1 swxY w Y   |                     t                    5  d	|_        d d d            n# 1 swxY w Y   |                     |j        d           |                     |j        d           |                     |j        d           d S )
NTr~   c                   (    e Zd ZU eed<   dZeed<   dS )4TestFrozen.test_non_frozen_normal_derived.<locals>.Dr6   r   rm   Nrn   r   r   r   r`   r  &  s&         FFFAsKKKKKr   r`   c                       e Zd ZdS )4TestFrozen.test_non_frozen_normal_derived.<locals>.SNr   r   r   r   rX  r  +  r]   r   rX  rp   r   r   )r&   r'   r6   rm   cachedry  rb  )r+   r`   rX  r  s       r   test_non_frozen_normal_derivedz)TestFrozen.test_non_frozen_normal_derived#  s    
$				 	 	 	 	 	 	 
 			 	 	 	 	 	 	 	 AaDDa   b!!! 233 	 	AC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	233 	 	AC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	a   b!!!4(((((s$   B((B,/B,C!!C%(C%c                    |                      t          d          5  t          d           G d d                      }d d d            n# 1 swxY w Y   |                      t          d          5  t          d           G d d                      }d d d            n# 1 swxY w Y   t          d           G d	 d                      }|                      |d
          j        d           d S )Nz&Cannot overwrite attribute __setattr__Tr~   c                        e Zd ZU eed<   d ZdS )-TestFrozen.test_overwriting_frozen.<locals>.Cr6   c                     d S r   r   r   s    r   r  z9TestFrozen.test_overwriting_frozen.<locals>.C.__setattr__C  r   r   Nr   r   r   r8   r9   r  r   r   r   r#   r  @  rW  r   r#   z&Cannot overwrite attribute __delattr__c                        e Zd ZU eed<   d ZdS )r  r6   c                     d S r   r   r   s    r   r  z9TestFrozen.test_overwriting_frozen.<locals>.C.__delattr__K  r   r   N)r   r   r   r8   r9   r  r   r   r   r#   z-TestFrozen.test_overwriting_frozen.<locals>.CH  rW  r   Fc                        e Zd ZU eed<   d ZdS )r  r6   c                      |dz  | j         d<   d S )Nr1  r6   )r   )r+   rN   r  s      r   r  z9TestFrozen.test_overwriting_frozen.<locals>.C.__setattr__Q  s    %*QYc"""r   Nr  r   r   r   r#   z-TestFrozen.test_overwriting_frozen.<locals>.CN  s.         FFF/ / / / /r   r   rx  )rF   r{   r&   r'   r6   r   s     r   test_overwriting_frozenz"TestFrozen.test_overwriting_frozen<  s   ##I$LN N 	 	d###       $#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I$LN N 	 	d###       $#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
%	 	 	 	/ 	/ 	/ 	/ 	/ 	/ 	/ 
!	 	/ 	2"%%%%%s#   $AAA2$B""B&)B&c                    t          d           G d d                      }t           |d                     |                     t          d          5  t           |i                      d d d            d S # 1 swxY w Y   d S )NTr~   c                       e Zd ZU eed<   dS )&TestFrozen.test_frozen_hash.<locals>.Cr6   N)r   r   r   r   r9   r   r   r   r#   r  V  r:   r   r#   rp   r  )r&   r   rF   r{   r   s     r   test_frozen_hashzTestFrozen.test_frozen_hashU  s    	$				 	 	 	 	 	 	 
 		
 	QQqTT


 ##I/@AA 	 	2KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A==BBN)r   r   r   r  r  r  r  r  r  r  r  r  r  r   r   r   r  r  
  s        	" 	" 	"" " ""	 	 	$ $ $  $  $  &) ) )2& & &2    r   r  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	 e
dd	           G d
 d                      Z e
d           G d d                      Zd Z e
dd	           G d d                      Z e
dd	           G d d                      Z e
dd	           G d d                      Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd  Zd! Zd"S )#	TestSlotsc                    t            G d d                      }|                     t          d          5   |             d d d            n# 1 swxY w Y    |d          }|                     |j        d           d|_        |                     |j        d           |                     t
          d          5  d|_        d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZU dZeed<   dS ) TestSlots.test_simple.<locals>.Crh   r6   Nr   r   r   	__slots__r   r9   r   r   r   r#   r  e           IFFFFFr   r#   rj  r   r   z'C' object has no attribute 'y')r&   rF   r{   r'   r6   r'  rm   r   s      r   test_simplezTestSlots.test_simpled  s}   		 	 	 	 	 	 	 
	 ##I$_a a 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 AbEEb!!!a    ##N4UVV 	 	AC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AAA;CCCc                     t            G d d                      }t            G d d|                      } |dd          }|                     |j        |j        fd           d|_        d S )	Nc                       e Zd ZU dZeed<   dS )0TestSlots.test_derived_added_field.<locals>.Baserh   r6   Nr  r   r   r   r   r  }  r  r   r   c                   $    e Zd ZU eed<   eed<   dS )3TestSlots.test_derived_added_field.<locals>.Derivedr6   rm   Nr7   r   r   r   Derivedr    r.  r   r  rA   r1  r  r   )r&   r'   r6   rm   r   )r+   r   r  r  s       r   test_derived_added_fieldz"TestSlots.test_derived_added_field{  s    		 	 	 	 	 	 	 
	 
	 	 	 	 	d 	 	 
	 GAqMM!#qsV,,, r   c                 ~   t          d           G d d                      } |dd          }|                     |j        |j        fd           d|_        d	|_        |                     |j        |j        fd
           |                     t
          d          5  d|_        d d d            d S # 1 swxY w Y   d S )NTslotsc                   $    e Zd ZU eed<   eed<   dS ))TestSlots.test_generated_slots.<locals>.Cr6   rm   Nr7   r   r   r   r#   r    r.  r   r#   rA   r1  r  rp   r~  r~  z'C' object has no attribute 'z'r   )r&   r'   r6   rm   rF   r'  r   r   s      r   test_generated_slotszTestSlots.test_generated_slots  s   					 	 	 	 	 	 	 
		 AaGG!#qsV,,,!#qsV,,,##N4UVV 	 	AC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B22B69B6c                     |                      t          d          5  t          d           G d d                      }d d d            d S # 1 swxY w Y   d S )Nz^C already specifies __slots__$Tr  c                       e Zd ZU dZeed<   dS )5TestSlots.test_add_slots_when_slots_exists.<locals>.Crh   r6   N)r   r   r   r  r8   r9   r   r   r   r#   r    s         "	r   r#   r,  r   s     r    test_add_slots_when_slots_existsz*TestSlots.test_add_slots_when_slots_exists  s    ##I/PQQ 	 	T"""       #"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   $AAAc                     G d d          } G d d|          } G d d|          } G d d|          }t          d	
           G d d|                      }|                     |j        d           t          d	
           G d d|                      }|                     |j        d           t            G d d|                      }|                     d|j                   d S )Nc                       e Zd ZdhZdS )2TestSlots.test_generated_slots_value.<locals>.Rootr6   Nr   r   r   r  r   r   r   Rootr
            IIIr   r  c                       e Zd ZdddZdS )3TestSlots.test_generated_slots_value.<locals>.Root2z...r  )r  r  Nr  r   r   r   Root2r    s        #"--IIIr   r  c                       e Zd ZdgZdS )3TestSlots.test_generated_slots_value.<locals>.Root3hNr  r   r   r   Root3r    r  r   r  c                       e Zd ZdZdS )3TestSlots.test_generated_slots_value.<locals>.Root4aaNr  r   r   r   Root4r    s        IIIr   r  Tr  c                   .    e Zd ZU eed<   eed<   eed<   dS )2TestSlots.test_generated_slots_value.<locals>.Baserm   r  r  Nr  r   r   r   r   r    r  r   r   rd  c                   B    e Zd ZU eed<   eed<   eed<   eed<   eed<   dS )5TestSlots.test_generated_slots_value.<locals>.Derivedr  r6   r   r  r  N)r   r   r   r  r9   r   r8   r   r   r   r  r    s=         IIIFFFFFFFFFFFFFFr   r  r  c                       e Zd ZU eed<   dS )<TestSlots.test_generated_slots_value.<locals>.AnotherDerivedr   Nr7   r   r   r   AnotherDerivedr    r:   r   r  r  )r&   r'   r  rc  r   )r+   r  r  r  r  r   r  r  s           r   test_generated_slots_valuez$TestSlots.test_generated_slots_value  s   	 	 	 	 	 	 	 		. 	. 	. 	. 	.D 	. 	. 	.	 	 	 	 	E 	 	 		 	 	 	 	E 	 	 	 
				 	 	 	 	5 	 	 
		
 	111					 	 	 	 	d 	 	 
		 	*G444		 	 	 	 	T 	 	 
	 	n&=>>>>>r   c                      G d d          } G d d|          }|                      t          d          5  t          d           G d d	|                      }d d d            d S # 1 swxY w Y   d S )
Nc                   &    e Zd Z edg          ZdS )=TestSlots.test_cant_inherit_from_iterator_slots.<locals>.Rootr  N)r   r   r   r   r  r   r   r   r  r#    s        cUIIIr   r  c                       e Zd ZdZdS )>TestSlots.test_cant_inherit_from_iterator_slots.<locals>.Root2r   Nr  r   r   r   r  r%    s        IIIr   r  z%^Slots of 'Root' cannot be determinedTr  c                       e Zd ZU eed<   dS ):TestSlots.test_cant_inherit_from_iterator_slots.<locals>.Cr6   Nr7   r   r   r   r#   r(    rx   r   r#   r,  )r+   r  r  r#   s       r   %test_cant_inherit_from_iterator_slotsz/TestSlots.test_cant_inherit_from_iterator_slots  s   	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$	  	  	  	  	 D 	  	  	  ##3
 
 	 	 T"""    E   #"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   %A))A-0A-c                      G d d          }t          |d          }|                     ||           |                     t          |d                     |                     t          |d                     d S )Nc                       e Zd ZU eed<   dS )+TestSlots.test_returns_new_class.<locals>.Ar6   Nr7   r   r   r   r  r,    r"  r   r  Tr  r  )r&   r  r  r  rC  r+   r  ru   s      r   test_returns_new_classz TestSlots.test_returns_new_class  s    	 	 	 	 	 	 	 	 at$$$AK00111;//00000r   T)r   r  c                   $    e Zd ZU eed<   eed<   dS )TestSlots.FrozenSlotsClassr   rI  Nr  r   r   r   FrozenSlotsClassr0    "         r   r1  r~   c                   $    e Zd ZU eed<   eed<   dS )!TestSlots.FrozenWithoutSlotsClassr   rI  Nr  r   r   r   FrozenWithoutSlotsClassr4    r2  r   r5  c                    |                      | j        j        d           t          t          j        dz             D ]}|                     |          5  |                     dd          }t	          j        t	          j        ||                    }| 	                    ||           |                      ||           | 
                    dd          }t	          j        t	          j        ||                    }| 	                    ||           |                      ||           d d d            n# 1 swxY w Y   d S )N)r   rI  rA   ry  r  protocol)r'   r1  r  rz  r{  r|  r  r}  r~  r  r5  )r+   ry  rC  ps       r   test_frozen_picklezTestSlots.test_frozen_pickle  sq    	.8.III62Q677 
	) 
	)EE** 	) 	)++C33LcE!B!B!BCC  a(((  a(((223::LcE!B!B!BCC  a(((  a(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)
	) 
	)s   CD77D;	>D;	c                   N    e Zd ZU eed<   eed<    edd          Zeed<   d Z	dS )"TestSlots.FrozenSlotsGetStateClassr   rI  FrC   r  getstate_calledc                 V    t                               | dd           | j        | j        gS Nr?  Tr   r  r   rI  r   s    r   __getstate__z/TestSlots.FrozenSlotsGetStateClass.__getstate__  *    t%6===Hdh''r   N)
r   r   r   r   r9   r8   rE   r?  r  rC  r   r   r   FrozenSlotsGetStateClassr=    sV          %eU C C CCCC	( 	( 	( 	( 	(r   rE  c                   N    e Zd ZU eed<   eed<    edd          Zeed<   d Z	dS )"TestSlots.FrozenSlotsSetStateClassr   rI  Fr>  setstate_calledc                     t                               | dd           t                               | d|d                    t                               | d|d                    d S NrH  Tr   r   rI  rA   r   r  r+   states     r   __setstate__z/TestSlots.FrozenSlotsSetStateClass.__setstate__  Y    t%6===tUE!H555tUE!H55555r   N)
r   r   r   r   r9   r8   rE   rH  r  rN  r   r   r   FrozenSlotsSetStateClassrG  
  sV          %eU C C CCCC	6 	6 	6 	6 	6r   rP  c                   x    e Zd ZU eed<   eed<    edd          Zeed<    edd          Z	eed<   d Z
d Zd	S )
"TestSlots.FrozenSlotsAllStateClassr   rI  Fr>  r?  rH  c                 V    t                               | dd           | j        | j        gS rA  rB  r   s    r   rC  z/TestSlots.FrozenSlotsAllStateClass.__getstate__  rD  r   c                     t                               | dd           t                               | d|d                    t                               | d|d                    d S rJ  rK  rL  s     r   rN  z/TestSlots.FrozenSlotsAllStateClass.__setstate__"  rO  r   N)r   r   r   r   r9   r8   rE   r?  r  rH  rC  rN  r   r   r   FrozenSlotsAllStateClassrR    s          %eU C C CCCC %eU C C CCCC	( 	( 	(	6 	6 	6 	6 	6r   rU  c                    t          t          j        dz             D ]}|                     |          5  |                     dd          }t          j        ||          }|                     |j                   |                     |t          j	        |                     d d d            n# 1 swxY w Y   t          t          j        dz             D ]}|                     |          5  | 
                    dd          }t          j	        t          j        ||                    }|                     |j                   |                     ||           d d d            n# 1 swxY w Y   t          t          j        dz             D ]}|                     |          5  |                     dd          }t          j        ||          }|                     |j                   t          j	        |          }|                     |j                   |                     ||           d d d            n# 1 swxY w Y   d S )NrA   r7  r  r8  )rz  r{  r|  r  rE  r~  rC  r?  r'   r}  rP  rH  rU  )r+   ry  rC  dumpedobj2s        r   %test_frozen_slots_pickle_custom_statez/TestSlots.test_frozen_slots_pickle_custom_state'  s   62Q677 	< 	<EE** < <33C;;cE::: 3444  fl6&:&:;;;< < < < < < < < < < < < < < < 62Q677 	, 	,EE** , ,33C;;|FLu$E$E$EFF 4555  d+++, , , , , , , , , , , , , , , 62Q677 		, 		,EE** , ,33C;;cE::: 3444|F++ 4555  d+++, , , , , , , , , , , , , , ,		, 		,s8   A/B00B4	7B4	0A/E++E/	2E/	+BII		I	c                     t          d           G d d                      } |d          }|                     |j        d           |                     |j        d           d S )NTr  c                   >    e Zd ZU eed<    edd          Zeed<   dS )4TestSlots.test_slots_with_default_no_init.<locals>.Ar  r   Fr'  Nr   r   r   r   r9   rE   r   r   r   r   r  r\  E  s:         FFFU3U333As33333r   r  r  r   r&   r'   r  r   r+   r  rC  s      r   test_slots_with_default_no_initz)TestSlots.test_slots_with_default_no_initC  s    					4 	4 	4 	4 	4 	4 	4 
		4 aff$$$$$$$$r   c                     t          d           G d d                      } |d          }|                     |j        d           |                     |j        d           d S )NTr  c                   @    e Zd ZU eed<    ed d          Zeed<   dS )<TestSlots.test_slots_with_default_factory_no_init.<locals>.Ar  c                      dS )Nr   r   r   r   r   r	  zETestSlots.test_slots_with_default_factory_no_init.<locals>.A.<lambda>S  s    # r   Fr  r   Nr]  r   r   r   r  rc  P  s<         FFFU::EBBBAsBBBBBr   r  r  r   r^  r_  s      r   'test_slots_with_default_factory_no_initz1TestSlots.test_slots_with_default_factory_no_initN  s    					C 	C 	C 	C 	C 	C 	C 
		C aff$$$$$$$$r   c                    t          d           G d d                      }|                     d|j                    |            }|                     t          d          5  t          j        |           d d d            n# 1 swxY w Y   |                     t                    5  |j	         d d d            d S # 1 swxY w Y   d S )NTr  c                       e Zd ZdS )*TestSlots.test_slots_no_weakref.<locals>.ANr   r   r   r   r  rh  Z  s         Dr   r  __weakref__zcannot create weak reference)
r&   rc  r  rF   r{   weakrefrefry  r'  ri  rN  s      r   test_slots_no_weakrefzTestSlots.test_slots_no_weakrefY  se   					 	 	 	 	 	 	 
		 	444ACC##I$BD D 	 	KNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ~.. 	 	MM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   $BB	B	*B??CCc                     t          dd           G d d                      }|                     d|j                    |d          }t          j        |          }|                     |j        |           d S )NTr  weakref_slotc                       e Zd ZU eed<   dS )'TestSlots.test_slots_weakref.<locals>.Ar  Nr7   r   r   r   r  rq  h  r:   r   r  ri  rA   )r&   rW   r  rj  rk  rp  ri  )r+   r  r  a_refs       r   test_slots_weakrefzTestSlots.test_slots_weakrefg  s    	D	1	1	1	 	 	 	 	 	 	 
2	1	 	mQ[111AaDDAamU+++++r   c                     G d d          }t          d           G d d|                      }|                     d|j                   |                     d|j                    |d          }t	          j        |           d S )	Nc                       e Zd ZdZdS )3TestSlots.test_slots_weakref_base_str.<locals>.Baseri  Nr  r   r   r   r   rv  s  s        %IIIr   r   Tr  c                       e Zd ZU eed<   dS )0TestSlots.test_slots_weakref_base_str.<locals>.Ar  Nr7   r   r   r   r  rx  v  r:   r   r  ri  rA   r&   rW   r  rc  rj  rk  r+   r   r  r  s       r   test_slots_weakref_base_strz%TestSlots.test_slots_weakref_base_strr  s    	& 	& 	& 	& 	& 	& 	& 	& 
				 	 	 	 	 	 	 
		 	mT^444444AaDDAr   c                     G d d          }t          d           G d d|                      }|                     d|j                   |                     d|j                    |d          }t	          j        |           d S )	Nc                       e Zd ZdZdS )5TestSlots.test_slots_weakref_base_tuple.<locals>.Baseri  Nr  r   r   r   r   r~            (IIIr   r   Tr  c                       e Zd ZU eed<   dS )2TestSlots.test_slots_weakref_base_tuple.<locals>.Ar  Nr7   r   r   r   r  r    r:   r   r  ri  rA   ry  rz  s       r   test_slots_weakref_base_tuplez'TestSlots.test_slots_weakref_base_tuple  s    	) 	) 	) 	) 	) 	) 	) 	) 
				 	 	 	 	 	 	 
		
 	mT^444444AaDDAr   c                     |                      t          d          5  t          d           G d d                      }d d d            d S # 1 swxY w Y   d S )N'weakref_slot is True but slots is FalseTro  c                       e Zd ZU eed<   dS )3TestSlots.test_weakref_slot_without_slot.<locals>.Ar  Nr7   r   r   r   r  r    rx   r   r  r,  r+   r  s     r   test_weakref_slot_without_slotz(TestSlots.test_weakref_slot_without_slot  s    ##I$MO O 	 	D)))       *)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                 L   t          ddt          fgdd          }|                     d|j                    |d          }t	          j        |           |                     t          d          5  t          ddt          fgd	          }d d d            d S # 1 swxY w Y   d S )
Nr  r  Trn  ri  rA   r  ru   r  )r   r8   rW   r  rj  rk  rF   r{   )r+   r  r  ru   s       r    test_weakref_slot_make_dataclassz*TestSlots.test_weakref_slot_make_dataclass  s    3#sTMMMmQ[111AaDDA ##I$MO O 	F 	Fsc3ZMEEEA	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   1BB Bc                 x   t          dd           G d d                      }t          dd           G d d|                      }|                     d|j                   |                     d|j                    |d          }t	          j        |          }|                     |j        |           d S )	NTrn  c                       e Zd ZU eed<   dS )?TestSlots.test_weakref_slot_subclass_weakref_slot.<locals>.BaserE   Nr7   r   r   r   r   r    r   r   r   c                       e Zd ZdS )<TestSlots.test_weakref_slot_subclass_weakref_slot.<locals>.ANr   r   r   r   r  r            Cr   r  ri  rA   r&   rW   r  rc  rj  rk  rp  ri  r+   r   r  r  rr  s        r   'test_weakref_slot_subclass_weakref_slotz1TestSlots.test_weakref_slot_subclass_weakref_slot  s    	D	1	1	1	 	 	 	 	 	 	 
2	1	 
D	1	1	1	 	 	 	 	 	 	 
2	1	
 	mT^444444AaDDAamU+++++r   c                 v   t          dd           G d d                      }t          d           G d d|                      }|                     d|j                   |                     d|j                    |d	          }t	          j        |          }|                     |j        |           d S )
NTrn  c                       e Zd ZU eed<   dS )BTestSlots.test_weakref_slot_subclass_no_weakref_slot.<locals>.BaserE   Nr7   r   r   r   r   r    r   r   r   r  c                       e Zd ZdS )?TestSlots.test_weakref_slot_subclass_no_weakref_slot.<locals>.ANr   r   r   r   r  r    r  r   r  ri  rA   r  r  s        r   *test_weakref_slot_subclass_no_weakref_slotz4TestSlots.test_weakref_slot_subclass_no_weakref_slot  s    	D	1	1	1	 	 	 	 	 	 	 
2	1	 
				 	 	 	 	 	 	 
		
 	mT^444444AaDDAamU+++++r   c                 J    G d d          }t          dd           G d d|                      }|                     d|j                   |                     d|j                    |d          }t	          j        |          }|                     |j        |           d S )	Nc                       e Zd ZdZdS )BTestSlots.test_weakref_slot_normal_base_weakref_slot.<locals>.Baser  Nr  r   r   r   r   r    r  r   r   Trn  c                       e Zd ZU eed<   dS )?TestSlots.test_weakref_slot_normal_base_weakref_slot.<locals>.ArE   Nr7   r   r   r   r  r    r   r   r  ri  rA   r  r  s        r   *test_weakref_slot_normal_base_weakref_slotz4TestSlots.test_weakref_slot_normal_base_weakref_slot  s    	) 	) 	) 	) 	) 	) 	) 	) 
D	1	1	1	 	 	 	 	 	 	 
2	1	
 	mT^444444AaDDAamU+++++r   N)r   r   r   r  r  r  r  r   r)  r.  r&   r1  r5  r;  rE  rP  rU  rY  r`  re  rl  rs  r{  r  r  r  r  r  r  r   r   r   r  r  c  s         .  $     $? $? $?L   1 1 1 Yd$'''       (' Yd       ) ) )  Yd$'''( ( ( ( ( ( ( ('( Yd$'''	6 	6 	6 	6 	6 	6 	6 ('	6 Yd$'''6 6 6 6 6 6 6 ('6 , , ,8	% 	% 	%	% 	% 	%  	, 	, 	,    "  	F 	F 	F, , ,$, , ,", , , , ,r   r  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestDescriptorsc                 X    G d d          t            G fdd                      }|                     |j        j        d           t            G fdd                      }|                     |j        j        d           |                      |            j        d           d S )Nc                       e Zd Zd Zd ZdS )(TestDescriptors.test_set_name.<locals>.Dc                     |dz   | _         d S r*  rN   r+   ownerrN   s      r   __set_name__z5TestDescriptors.test_set_name.<locals>.D.__set_name__       3J			r   c                     |dS | S NrA   r   r+   instancer  s      r   __get__z0TestDescriptors.test_set_name.<locals>.D.__get__  s    '1r   N)r   r   r   r  r  r   r   r   r`   r    s2        ' ' '    r   r`   c                   0    e Zd ZU               Zeed<   dS )(TestDescriptors.test_set_name.<locals>.Cr   N)r   r   r   r   r8   r9   r`   s   r   r#   r    s$         133AsJJJJJr   r#   cxc                   F    e Zd ZU  e              d          Zeed<   dS )r  Fr'  r   Nr   r   r   rE   r   r8   r9   r  s   r   r#   z(TestDescriptors.test_set_name.<locals>.C  8         55111As11111r   rA   r&   r'   r   rN   rb   s     @r   test_set_namezTestDescriptors.test_set_name  s    	 	 	 	 	 	 	 	 
	 	 	 	 	 	 	 	 	 
	4(((
 
	2 	2 	2 	2 	2 	2 	2 	2 	2 
	24((("""""r   c                      G d d          t            G fdd                      }|                     |j        j        d           d S )Nc                       e Zd Zd ZdS ).TestDescriptors.test_non_descriptor.<locals>.Dc                     |dz   | _         d S r*  r  r  s      r   r  z;TestDescriptors.test_non_descriptor.<locals>.D.__set_name__  r  r   N)r   r   r   r  r   r   r   r`   r    s#        ' ' ' ' 'r   r`   c                   F    e Zd ZU  e              d          Zeed<   dS ).TestDescriptors.test_non_descriptor.<locals>.CFr'  r   Nr  r  s   r   r#   r    r  r   r#   r  r  rb   s     @r   test_non_descriptorz#TestDescriptors.test_non_descriptor  s    	' 	' 	' 	' 	' 	' 	' 	' 
	2 	2 	2 	2 	2 	2 	2 	2 	2 
	24(((((r   c                      G d d          } |            t                      _        t           G fdd                      }|                     j        j        d           d S )Nc                       e Zd ZdS )2TestDescriptors.test_lookup_on_instance.<locals>.DNr   r   r   r   r`   r    r]   r   r`   c                   6    e Zd ZU  e d          Zeed<   dS )2TestDescriptors.test_lookup_on_instance.<locals>.CFr'  r1   Nr1  r4  s   r   r#   r    s2         5///As/////r   r#   r   r   r  r&   r'   r	  )r+   r`   r#   r  s      @r   test_lookup_on_instancez'TestDescriptors.test_lookup_on_instance  s    	 	 	 	 	 	 	 	 ACC 
	0 	0 	0 	0 	0 	0 	0 	0 	0 
	0 	2A66666r   c                      G d d          t                      _        t           G fdd                      }|                     j        j        d           d S )Nc                       e Zd ZdS )/TestDescriptors.test_lookup_on_class.<locals>.DNr   r   r   r   r`   r    r]   r   r`   c                   F    e Zd ZU  e              d          Zeed<   dS )/TestDescriptors.test_lookup_on_class.<locals>.CFr'  r1   Nr1  r  s   r   r#   r    r  r   r#   rA   r  rb   s     @r   test_lookup_on_classz$TestDescriptors.test_lookup_on_class  s    	 	 	 	 	 	 	 	 
	2 	2 	2 	2 	2 	2 	2 	2 	2 
	2 	2A66666r   c                     G d d          t                      _        t           G fdd                      }j                                          |d          }|                     j        j        d           d S )Nc                       e Zd ZdS ).TestDescriptors.test_init_calls_set.<locals>.DNr   r   r   r   r`   r    r]   r   r`   c                   0    e Zd ZU               Z ed<   dS ).TestDescriptors.test_init_calls_set.<locals>.Cr1   Nr   r   r   r1   r9   r  s   r   r#   r  $  $         133AqJJJJJr   r#   r   rA   )r   __set__r&   
reset_mockr'   r	  r+   r#   r   r`   s      @r   test_init_calls_setz#TestDescriptors.test_init_calls_set  s    	 	 	 	 	 	 	 	 FF			 	 	 	 	 	 	 	 	 
	 	
	AaDD-q11111r   c                 <    G d d          t                      _        t                      _        t           G fdd                      } |d          }j                                         |j        }|                     j        j        d           d S )Nc                       e Zd ZdS )7TestDescriptors.test_getting_field_calls_get.<locals>.DNr   r   r   r   r`   r  .  r]   r   r`   c                   0    e Zd ZU               Z ed<   dS )7TestDescriptors.test_getting_field_calls_get.<locals>.Cr1   Nr  r  s   r   r#   r  4  r  r   r#   r   rA   )r   r  r  r&   r  r1   r'   r	  )r+   r#   r   r  r`   s       @r   test_getting_field_calls_getz,TestDescriptors.test_getting_field_calls_get-  s    	 	 	 	 	 	 	 	 FF	FF			 	 	 	 	 	 	 	 	 
	 AaDD 	
	-q11111r   c                     G d d          t                      _        t           G fdd                      } |d          }j                                         d|_        |                     j        j        d           d S )Nc                       e Zd ZdS )7TestDescriptors.test_setting_field_calls_set.<locals>.DNr   r   r   r   r`   r  @  r]   r   r`   c                   0    e Zd ZU               Z ed<   dS )7TestDescriptors.test_setting_field_calls_set.<locals>.Cr1   Nr  r  s   r   r#   r  E  r  r   r#   r   r   rA   )r   r  r&   r  r1   r'   r	  r  s      @r   test_setting_field_calls_setz,TestDescriptors.test_setting_field_calls_set?  s    	 	 	 	 	 	 	 	 FF			 	 	 	 	 	 	 	 	 
	 AaDD 	
	-q11111r   c                 t    G d d          t                      _        t           G fdd                      }j                                          |d          }|                     j        j        d                        |_        d|_        |                     j        j        d           d S )Nc                       e Zd ZdS )FTestDescriptors.test_setting_uninitialized_descriptor_field.<locals>.DNr   r   r   r   r`   r  Q  r]   r   r`   c                       e Zd ZU  ed<   dS )FTestDescriptors.test_setting_uninitialized_descriptor_field.<locals>.Cr1   Nr  r  s   r   r#   r  V  r  r   r#   r   r   )r   r  r&   r  r'   r	  r1   r  s      @r   +test_setting_uninitialized_descriptor_fieldz;TestDescriptors.test_setting_uninitialized_descriptor_fieldP  s    	 	 	 	 	 	 	 	 FF			 	 	 	 	 	 	 	 	 
	 	
	AaDD-q111 acc-q11111r   c                      G d d          t            G fdd                      } |            }|                     |j        d            |d          }|                     |j        d           d S )Nc                   6    e Zd ZdededefdZdededdfdZdS )-TestDescriptors.test_default_value.<locals>.Dr  r  rC  c                     |dS |j         S r  _xr  s      r   r  z5TestDescriptors.test_default_value.<locals>.D.__get__g  s    #3{"r   r  Nc                     ||_         d S r   r  r+   r  r  s      r   r  z5TestDescriptors.test_default_value.<locals>.D.__set__m      #r   r   r   r   r   r   r8   r  r  r   r   r   r`   r  f  f        # #F #s # # # #$ $C $D $ $ $ $ $ $r   r`   c                   0    e Zd ZU               Z ed<   dS )-TestDescriptors.test_default_value.<locals>.Cr1   Nr  r  s   r   r#   r  p  r  r   r#   r   r   r  r  s      @r   test_default_valuez"TestDescriptors.test_default_valuee  s    	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 
	 	 	 	 	 	 	 	 	 
	 ACCc"""AaDDa     r   c                      G d d          t            G fdd                      }|                     t          d          5   |            }d d d            d S # 1 swxY w Y   d S )Nc                   6    e Zd ZdededefdZdededdfdZdS )0TestDescriptors.test_no_default_value.<locals>.Dr  r  rC  c                 0    |t                      |j        S r   )r'  r  r  s      r   r  z8TestDescriptors.test_no_default_value.<locals>.D.__get__|  s    #(***{"r   r  Nc                     ||_         d S r   r  r  s      r   r  z8TestDescriptors.test_no_default_value.<locals>.D.__set__  r  r   r  r   r   r   r`   r  {  r  r   r`   c                   0    e Zd ZU               Z ed<   dS )0TestDescriptors.test_no_default_value.<locals>.Cr1   Nr  r  s   r   r#   r     r  r   r#   z&missing 1 required positional argumentr  r  s      @r   test_no_default_valuez%TestDescriptors.test_no_default_valuez  s    	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 
	 	 	 	 	 	 	 	 	 
	 ##I/WXX 	 	A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA"%A"N)r   r   r   r  r  r  r  r  r  r  r  r  r  r   r   r   r  r    s        # # #8) ) )7 7 7 7 7 72 2 22 2 2$2 2 2"2 2 2*! ! !*    r   r  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestStringAnnotationsc                     dD ]q|                                5  t           G fdd                      } |             |                     d|j                   d d d            n# 1 swxY w Y   rd S )N)zClassVar[int]zClassVar [int]z ClassVar [int]r   z
 ClassVar ztyping.ClassVar[int]ztyping.ClassVar[str]z typing.ClassVar[str]ztyping .ClassVar[str]ztyping. ClassVar[str]ztyping.ClassVar [str]ztyping.ClassVar [ str]ztyping.ClassVar.[int]ztyping.ClassVar+typestrc                       e Zd ZU  ed<   dS ).TestStringAnnotations.test_classvar.<locals>.Cr6   Nr  r  s   r   r#   r             JJJJJr   r#   r6   )r  r&   rc  r   r+   r#   r  s     @r   test_classvarz#TestStringAnnotations.test_classvar  s     	2 	2G$ g.. 
2 
2             aj111
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2%	2 	2s   AA**A.	1A.	c                     dD ]p|                                5  t           G fdd                      }|                      |d          j        d           d d d            n# 1 swxY w Y   qd S )N)
CVz
t.ClassVarzt.ClassVar[int]ztyping..ClassVar[int]ClassvarzClassvar[int]ztyping.ClassVarx[int]ztypong.ClassVar[int]zdataclasses.ClassVar[int]ztypingxClassVar[str]r  c                       e Zd ZU  ed<   dS )3TestStringAnnotations.test_isnt_classvar.<locals>.Cr6   Nr  r  s   r   r#   r    r	  r   r#   r   r  r&   r'   r6   r
  s     @r   test_isnt_classvarz(TestStringAnnotations.test_isnt_classvar  s    
 	. 	.G g.. . .            2"---. . . . . . . . . . . . . . .	. 	.   AA))A-	0A-	c                 ,   dD ]|                                5  t           G fdd                      }|                     t          d          5   |d          j         d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )N)zInitVar[int]zInitVar [int] InitVar [int]r  z	 InitVar r  zdataclasses.InitVar[str]z dataclasses.InitVar[str]zdataclasses .InitVar[str]zdataclasses. InitVar[str]zdataclasses.InitVar [str]zdataclasses.InitVar [ str]zdataclasses.InitVar.[int]zdataclasses.InitVar+r  c                       e Zd ZU  ed<   dS )-TestStringAnnotations.test_initvar.<locals>.Cr6   Nr  r  s   r   r#   r    r	  r   r#   zobject has no attribute 'x'rA   )r  r&   rF   r'  r6   r
  s     @r   test_initvarz"TestStringAnnotations.test_initvar  sI    	 	G$ g..            ++N,IK K  AaDDFF                            %	 	s5   8BA1%B1A55B8A59BB	B	c                     dD ]p|                                5  t           G fdd                      }|                      |d          j        d           d d d            n# 1 swxY w Y   qd S )N)IVz
dc.InitVarzxdataclasses.xInitVarztyping.xInitVar[int]r  c                       e Zd ZU  ed<   dS )2TestStringAnnotations.test_isnt_initvar.<locals>.Cr6   Nr  r  s   r   r#   r    r	  r   r#   r   r  r
  s     @r   test_isnt_initvarz'TestStringAnnotations.test_isnt_initvar  s     	. 	.G
 g.. . .            2"---. . . . . . . . . . . . . . .	. 	.r  c           
         ddl m} ddl m} ddl m} ddl m} ||||fD ]i}|                     |          5  |j        r|                    d          }n|                                }|                     |j	        d           |
                    dd	d
dd          }dD ]w}|                     |          5  |                     t          d| d          5  t          ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   x|j        r7|                     d|j                   |                     |j        d           n|                     d|j                   d d d            n# 1 swxY w Y   kd S )Nr   )dataclass_module_1)dataclass_module_1_str)dataclass_module_2)dataclass_module_2_str)mr   rx  rA   r1  rp   r~  )iv0iv1iv2iv3)
field_namezobject has no attribute 'r  not_iv4)r*  r  r  r   r!  r  USING_STRINGSr  r'   cv0r  rF   r'  r   rW   r   r(  rc  )r+   r  r  r   r!  r"  r   r'  s           r   !test_classvar_module_level_importz7TestStringAnnotations.test_classvar_module_level_import  s   ++++++//////++++++//////$&<$&< !	< !	<A "" < < ? RAAA  +++ DDAq!Q''"> 3 3J<< 3 3!33NDm`jDmDmDmnn 3 3 $Az2223 3 3 3 3 3 3 3 3 3 3 3 3 3 33 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ? <MM)QZ888$$QY2222 $$Y
;;;=< < < < < < < < < < < < < < <!	< !	<s[   B E=8 D	C5)D	5C99D	<C9=D	 E=DE=DAE==F	F	c                     ddl m} |                     t          |j                  d|j        i           |                     t          |j        j                  |j        t          d           d           d S )Nr   )dataclass_textannor   )r   rC  )r*  r-  r'   r   r  r  r   rV   )r+   r-  s     r   test_text_annotationsz+TestStringAnnotations.test_text_annotations  s    ++++++-122&*+	- 	- 	- 	-1:;;&*Dzz# #	$ 	$ 	$ 	$ 	$r   N)	r   r   r   r  r  r  r  r+  r.  r   r   r   r  r    sp        "2 "2 "2H. . .(  >. . .'< '< '<R	$ 	$ 	$ 	$ 	$r   r  c                   b    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd ZdS )TestMakeDataclassc           	         t          ddt          fdt          t          d          fgdd i          } |d	          }|                     |j        |j        fd
           |                     |                                d           d S )Nr#   r6   rm   r   ro  add_onec                     | j         dz   S r  rh   r   s    r   r	  z/TestMakeDataclass.test_simple.<locals>.<lambda>,  s    dfqj r   rm  r   )r   r   r  )r   r8   rE   r'   r6   rm   r2  r   s      r   r  zTestMakeDataclass.test_simple(  s    3 #J #uQ'7'7'78:&/1H1H%IK K K AbEE!#qsW---b)))))r   c           	          i }t          ddt          fdt          t          d          fg|          }|                     |i            d S )Nr#   r6   rm   r   ro  r4  )r   r8   rE   r'   )r+   nsr#   s      r   test_no_mutate_namespacez*TestMakeDataclass.test_no_mutate_namespace2  s_    3 #J #uQ'7'7'78:%') ) ) 	R     r   c                     G d d          } G d d          }t          ddt          fg||f          } |d          }|                     ||           |                     ||           |                     ||           d S )	Nc                       e Zd ZdS )*TestMakeDataclass.test_base.<locals>.Base1Nr   r   r   r   Base1r:  <  r]   r   r;  c                       e Zd ZdS )*TestMakeDataclass.test_base.<locals>.Base2Nr   r   r   r   Base2r=  >  r]   r   r>  r#   r6   rl  r1  )r   r8   r  r+   r;  r>  r#   r   s        r   	test_basezTestMakeDataclass.test_base;  s    	 	 	 	 	 	 	 		 	 	 	 	 	 	 	3 #J<"'1 1 1 AaDDa###a'''a'''''r   c                    t            G d d                      } G d d          }t          ddt          fg||f          }|                     t          d          5   |d	          }d d d            n# 1 swxY w Y    |d
d	          }|                     ||           |                     ||           |                     ||           |                     |j        |j        fd           d S )Nc                       e Zd ZU eed<   dS )4TestMakeDataclass.test_base_dataclass.<locals>.Base1r6   Nr7   r   r   r   r;  rD  I  r:   r   r;  c                       e Zd ZdS )4TestMakeDataclass.test_base_dataclass.<locals>.Base2Nr   r   r   r   r>  rF  L  r]   r   r>  r#   rm   r?  zrequired positionalr1  rA   r  )	r&   r   r8   rF   r{   r  r'   r6   rm   r@  s        r   test_base_dataclassz%TestMakeDataclass.test_base_dataclassH  sr   		 	 	 	 	 	 	 
		 	 	 	 	 	 	 	3 #J<"'1 1 1 ##I/DEE 	 	!A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	AaGGa###a'''a'''!#qsV,,,,,s   A77A;>A;c                 ,   d }t          ddt          fdt          t                   fgd|i          } |dd          }|                     t	          |          dd	i           |                     t          t          |                    d
           d S )Nc                 &    | xj         |z  c_         d S r   rh   r+   rm   s     r   	post_initz2TestMakeDataclass.test_init_var.<locals>.post_init[  s    FFaKFFFFr   r#   r6   rm   rQ  r4  r1  rp   r  rA   )r   r8   r  r'   r  r(   r)   )r+   rK  r#   r   s       r   r  zTestMakeDataclass.test_init_varZ  s    	 	 	 3 #J '#,/ '6y%A	   AaGGa3(+++VAYY+++++r   c           
         t          ddt          fdt          t                   dfdt          t                   t          d          fg          } |d          }|                     t          |          ddi           |                     t          t          |                    d           |                     |j        d           |                     |j	        d           d S )	Nr#   r6   rm   r   r   rx  ro  rA   )
r   r8   r   rE   r'   r  r(   r)   rm   r   r   s      r   r  z TestMakeDataclass.test_class_varh  s    3 #J (3-4 (3-r1B1B1BC 
 AaDDa3(+++VAYY+++b!!!b!!!!!r   c           
         t          ddt          fdt          t                   dfdt          t                   t          d          fgd	          }|                     d
t          |                     |                     dt          |                     |                     t          d          5  t          dg d          }d d d            d S # 1 swxY w Y   d S )Nr#   r6   rm   r   r   rx  ro  Fr  r   r  zunexpected keyword argument)xxinit)	r   r8   r   rE   rc  r  rW   rF   r{   r   s     r   test_other_paramsz#TestMakeDataclass.test_other_paramst  s!   3 #J (3-4 (3-r1B1B1BC !&' ' ' 	T!WW---j$q''*** ##I/LMM 	- 	-s!&+- - -A	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   2CCCc                    t          dg d          } |ddd          }|                     t          |          dddd           |                     |j        dddd           t          dddt          fd	g          } |ddd          }|                     t          |          dddd           |                     |j        dt          dd           d S )
Nr  r6   rm   r   rA   r1  rp   z
typing.Anyr6   rm   r   )r   r'   r  r9   r8   r   s      r   test_no_typeszTestMakeDataclass.test_no_types  s   7OOO44AaAJJa":":;;;*,2>2>-@ -@ 	A 	A 	A 7S3*c$:;;AaAJJa":":;;;*,252>-@ -@ 	A 	A 	A 	A 	Ar   c                    dD ]u}|                      |          5  |                     t          d          5  t          dd|g           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   vt          d fD ]u}|                      |          5  |                     t          d          5  t          dd|g           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   vd S )N)r   )rA   r1  rp   r~  )	bad_fieldzInvalid field: r#   r  c                     | S r   r   rh   s    r   r	  zCTestMakeDataclass.test_invalid_type_specification.<locals>.<lambda>  s    1 r   zhas no len\(\))r  rF   r{   r   r  )r+   rT  s     r   test_invalid_type_specificationz1TestMakeDataclass.test_invalid_type_specification  s    	: 	:I 	22 : :++I7IJJ : :"3i(8999: : : : : : : : : : : : : : :: : : : : : : : : : : : : : :
  $* 	: 	:I 	22 : :++I7HII : :"3i(8999: : : : : : : : : : : : : : :: : : : : : : : : : : : : : :	: 	:sj   A-A
A-AA-AA--A1	4A1	C-7C
C-CC-CC--C1	4C1	c           	          dD ]v}|                      |          5  |                     t          d          5  t          d|d|g           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   wd S )N)r  abrE   zField name duplicatedr#   r  r  rF   r{   r   r+   rE   s     r   test_duplicate_field_namesz,TestMakeDataclass.test_duplicate_field_names  s     	= 	=EE** = =++I7NOO = ="3U(;<<<= = = = = = = = = = = = = = == = = = = = = = = = = = = = =	= 	=s4   A.AA.AA.AA..A2	5A2	c                    dD ]}|                      |          5  |                     t          d          5  t          dd|g           d d d            n# 1 swxY w Y   |                     t          d          5  t          d|g           d d d            n# 1 swxY w Y   |                     t          d          5  t          d|dg           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )N)forasyncawaitasrY  zmust not be keywordsr#   r  rZ  r[  s     r   test_keyword_field_namesz*TestMakeDataclass.test_keyword_field_names  s   4 	6 	6EE** 6 6++I7MNN 6 6"3e5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6++I7MNN 1 1"30001 1 1 1 1 1 1 1 1 1 1 1 1 1 1++I7MNN 6 6"35556 6 6 6 6 6 6 6 6 6 6 6 6 6 66 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6|   C6A
C6AC6AC6<BC6BC6!B"C6 CC6C##C6&C#'C66C:	=C:	c                    dD ]}|                      |          5  |                     t          d          5  t          dd|g           d d d            n# 1 swxY w Y   |                     t          d          5  t          d|g           d d d            n# 1 swxY w Y   |                     t          d          5  t          d|dg           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )N)()x,yr   2@3r  zlittle johnny tablesrY  zmust be valid identifiersr#   r  rZ  r[  s     r   test_non_identifier_field_namesz1TestMakeDataclass.test_non_identifier_field_names  s   J 	6 	6EE** 6 6++I7RSS 6 6"3e5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6++I7RSS 1 1"30001 1 1 1 1 1 1 1 1 1 1 1 1 1 1++I7RSS 6 6"35556 6 6 6 6 6 6 6 6 6 6 6 6 6 66 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6rc  c                 *    t          dg d           d S )Nr#   )__aa_aa_)r   r   s    r   test_underscore_field_namesz-TestMakeDataclass.test_underscore_field_names  s!     	s44455555r   c                     dD ]]}|                      |          5  t          |ddg          }|                     |j        |           d d d            n# 1 swxY w Y   ^d S )N)re  rf  r   rg  r  )	classnamer  r   )r  r   r'   r   )r+   rp  r#   s      r   test_funny_class_names_namesz.TestMakeDataclass.test_funny_class_names_names  s     7 	8 	8I	22 8 8"9sCj99  Y7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8s   .AA	A	N)r   r   r   r  r7  rA  rG  r  r  rO  rR  rV  r\  rb  rh  rn  rq  r   r   r   r0  r0  '  s        * * *! ! !( ( (- - -$, , ,
" 
" 
"- - -"A A A: : : = = =6 6 66 6 66 6 6
8 8 8 8 8r   r0  c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestReplacec                     t          d           G d d                      } |dd          }t          |d          }|                     |j        d           |                     |j        d           d S )	NTr~   c                   $    e Zd ZU eed<   eed<   dS )TestReplace.test.<locals>.Cr6   rm   Nr7   r   r   r   r#   rv    r.  r   r#   rA   r1  rp   rh   )r&   rE  r'   r6   rm   r+   r#   r   r  s       r   r*  zTestReplace.test  s    	$				 	 	 	 	 	 	 
 		 AaGGQ!___q!!!q!!!!!r   c                 x   t          d           G d d                      } |dd          }t          |d          }|                     |j        |j        |j        |j        fd	           |                     |j        |j        |j        |j        fd
           |                     t          d          5  t          |ddd           d d d            n# 1 swxY w Y   |                     t          d          5  t          |d           t          |ddd           d d d            n# 1 swxY w Y   |                     t          d          5  d|_        d d d            n# 1 swxY w Y   |                     t          d          5  t          |dd          }d d d            d S # 1 swxY w Y   d S )NTr~   c                   l    e Zd ZU eed<   eed<    edd          Zeed<    edd          Zeed<   d	S )
"TestReplace.test_frozen.<locals>.Cr6   rm   Fr   r  r   r   r  N)r   r   r   r8   r9   rE   r   r  r   r   r   r#   rz    sb         FFFFFFUr222As222Us333As33333r   r#   rA   r1  rp   rh   )rA   r1  r   r   )rp   r1  r   r   
init=Falserx  r  )r6   r   r  r  zcannot assign to field 'x'z3__init__\(\) got an unexpected keyword argument 'a'r   )r6   r  )r&   rE  r'   r6   rm   r   r  rF   rG   rb  r{   rw  s       r   r  zTestReplace.test_frozen  s   	$				4 	4 	4 	4 	4 	4 	4 
 		4 AaGGQ!___!#qsAC-???"$bdBD1?CCC ##J== 	( 	(AbB''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(##J== 	( 	(AAbB''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(
 ##$79UVV 	 	BD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I 0D E E 	' 	'bA&&&B	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'sH   8CCC>%D//D36D3E))E-0E-F//F36F3c                     t          d           G d d                      } |dd          }|                     t          d          5  t          |d	          }d d d            d S # 1 swxY w Y   d S )
NTr~   c                   $    e Zd ZU eed<   eed<   dS ).TestReplace.test_invalid_field_name.<locals>.Cr6   rm   Nr7   r   r   r   r#   r~    r.  r   r#   rA   r1  z3__init__\(\) got an unexpected keyword argument 'z'rp   r  r&   rF   r{   rE  rw  s       r   test_invalid_field_namez#TestReplace.test_invalid_field_name  s    	$				 	 	 	 	 	 	 
 		 AaGG##I 0; < < 	! 	!aB	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   A**A.1A.c                 ^   t          d           G d d                      }|                     t          d          5  t          |d           d d d            n# 1 swxY w Y   |                     t          d          5  t          dd           d d d            d S # 1 swxY w Y   d S )	NTr~   c                   $    e Zd ZU eed<   eed<   dS )*TestReplace.test_invalid_object.<locals>.Cr6   rm   Nr7   r   r   r   r#   r    r.  r   r#   rj  rp   rh   r   r  r   s     r   test_invalid_objectzTestReplace.test_invalid_object  sI   	$				 	 	 	 	 	 	 
 		 ##I/CDD 	 	AOOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##I/CDD 	 	AOOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AA!$A!B""B&)B&c                    t            G d d                      } |d          }d|_        t          |d          }|                     |j        |j        fd           |                     t          d          5  t          |d	d
           d d d            n# 1 swxY w Y   |                     t          d          5  t          |d
           d d d            d S # 1 swxY w Y   d S )Nc                   >    e Zd ZU eed<    edd          Zeed<   dS )#TestReplace.test_no_init.<locals>.Cr6   Fr   r  rm   Nru  r   r   r   r#   r    s:         FFFUr222As22222r   r#   rA   rx  r   rh   )r   r   r{  r1     r  rd  )r&   rm   rE  r'   r6   rF   rG   rw  s       r   r  zTestReplace.test_no_init  s   		3 	3 	3 	3 	3 	3 	3 
	3 AaDD Q!___"$w/// ##J== 	" 	"Ab!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" ##J== 	 	A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   ;BB!B CC#&C#c                    t            G d d                      } |d          } |d          }|                     |j        |j                   |                     |j        d           |                     t
          d          5  t          |d           d d d            n# 1 swxY w Y   t          |d	
           d S )Nc                   4    e Zd ZU eed<   dZee         ed<   dS )$TestReplace.test_classvar.<locals>.Cr6   r  rm   N)r   r   r   r8   r9   rm   r   r   r   r   r#   r  #  s/         FFF#Ax}#####r   r#   rA   r1  r  z3__init__\(\) got an unexpected keyword argument 'y'r  rd  r   rh   )r&   rp  rm   r'   rF   r{   rE  r  s       r   r  zTestReplace.test_classvar"  s   		$ 	$ 	$ 	$ 	$ 	$ 	$ 
	$ AaDDAaDDac13d### ##I 0F G G 	 	A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Qs   B%%B),B)c                 j   t            G d d                      } |dd          }|                     |j        d           |                     t          d          5  t          |d           d d d            n# 1 swxY w Y   t          |dd	          }|                     |j        d
           d S )Nc                   6    e Zd ZU eed<   ee         ed<   d ZdS )0TestReplace.test_initvar_is_specified.<locals>.Cr6   rm   c                 &    | xj         |z  c_         d S r   rh   rJ  s     r   rQ  z>TestReplace.test_initvar_is_specified.<locals>.C.__post_init__;  r]  r   Nr  r   r   r   r#   r  6  s;         FFFs|OOO    r   r#   rA   r   z,InitVar 'y' must be specified with replace()rp   rh   r   r  r   )r&   r'   r6   rF   rG   rE  r   s      r   test_initvar_is_specifiedz%TestReplace.test_initvar_is_specified5  s   		 	 	 	 	 	 	 
	 AaHHb!!!##J 1? @ @ 	 	AOOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 Aa   b!!!!!s   A;;A?A?c                 v   t            G d d                      } |ddd          }|                     t          |           |d                     |                     t          |d	           |ddd
                     |                     t          |dd           |ddd                     d S )Nc                   T    e Zd ZU eed<   dZee         ed<   dZee         ed<   d ZdS )6TestReplace.test_initvar_with_default_value.<locals>.Cr6   Nrm   r;   r   c                 R    || xj         |z  c_         || xj         |z  c_         d S d S r   rh   )r+   rm   r   s      r   rQ  zDTestReplace.test_initvar_with_default_value.<locals>.C.__post_init__M  s5    =FFaKFF=FFaKFFFF !=r   )	r   r   r   r8   r9   rm   r  r   rQ  r   r   r   r#   r  G  sV         FFF"Aws|""" Aws|            r   r#   rA   r   rQ  r  rh   r~  rd  r;   )rm   r   )r&   r'   rE  r   s      r   test_initvar_with_default_valuez+TestReplace.test_initvar_with_default_valueF  s    			  		  		  		  		  		  		  
		  AR1QQWWW---a!!bA*<*<*<===a1---qq2a/@/@/@AAAAAr   c                     t            G d d                      } |d           }||_        |                     t          |          d           d S )Nc                       e Zd ZU ded<   dS )*TestReplace.test_recursive_repr.<locals>.Cr#   r  Nr  r   r   r   r#   r  Y  r:   r   r#   z1TestReplace.test_recursive_repr.<locals>.C(f=...)r&   r  r'   rL   r   s      r   test_recursive_reprzTestReplace.test_recursive_reprX  sm    		 	 	 	 	 	 	 
	 AdGGa"UVVVVVr   c                     t            G d d                      } |d d           }||_        ||_        |                     t	          |          d           d S )Nc                   $    e Zd ZU ded<   ded<   dS )4TestReplace.test_recursive_repr_two_attrs.<locals>.Cr#   r  gNr  r   r   r   r#   r  b  r.  r   r#   zBTestReplace.test_recursive_repr_two_attrs.<locals>.C(f=..., g=...))r&   r  r  r'   rL   r   s      r   test_recursive_repr_two_attrsz)TestReplace.test_recursive_repr_two_attrsa  s    		 	 	 	 	 	 	 
	 AdDMMa #> 	? 	? 	? 	? 	?r   c                     t            G d d                      }t            G d d                      } |d           } |d           }||_        ||_        |                     t          |          d           d S )Nc                       e Zd ZU ded<   dS )6TestReplace.test_recursive_repr_indirection.<locals>.Cr`   r  Nr  r   r   r   r#   r  n  r:   r   r#   c                       e Zd ZU ded<   dS )6TestReplace.test_recursive_repr_indirection.<locals>.Dr#   r  Nr  r   r   r   r`   r  r  r:   r   r`   zwTestReplace.test_recursive_repr_indirection.<locals>.C(f=TestReplace.test_recursive_repr_indirection.<locals>.D(f=...))r  )r+   r#   r`   r   r  s        r   test_recursive_repr_indirectionz+TestReplace.test_recursive_repr_indirectionm  s    		 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 
	 AdGGAdGGa #8 	9 	9 	9 	9 	9r   c                 T   t            G d d                      }t            G d d                      }t            G d d                      } |d           } |d           } |d           }||_        ||_        ||_        |                     t          |          d           d S )Nc                       e Zd ZU ded<   dS ):TestReplace.test_recursive_repr_indirection_two.<locals>.Cr`   r  Nr  r   r   r   r#   r    r:   r   r#   c                       e Zd ZU ded<   dS ):TestReplace.test_recursive_repr_indirection_two.<locals>.Dr  r  Nr  r   r   r   r`   r    r:   r   r`   c                       e Zd ZU ded<   dS ):TestReplace.test_recursive_repr_indirection_two.<locals>.Er#   r  Nr  r   r   r   r  r    r:   r   r  zTestReplace.test_recursive_repr_indirection_two.<locals>.C(f=TestReplace.test_recursive_repr_indirection_two.<locals>.D(f=TestReplace.test_recursive_repr_indirection_two.<locals>.E(f=...)))r  )r+   r#   r`   r  r   r  r7  s          r   #test_recursive_repr_indirection_twoz/TestReplace.test_recursive_repr_indirection_two~  s	   		 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 
	 
	 	 	 	 	 	 	 
	 AdGGAdGGAdGGa #9 	: 	: 	: 	: 	:r   c                     t            G d d                      } |d d          }||_        |                     t          |          d           d S )Nc                   $    e Zd ZU ded<   eed<   dS )5TestReplace.test_recursive_repr_misc_attrs.<locals>.Cr#   r  r  Nr8  r   r   r   r#   r    r.  r   r#   rA   zATestReplace.test_recursive_repr_misc_attrs.<locals>.C(f=..., g=1)r  r   s      r   test_recursive_repr_misc_attrsz*TestReplace.test_recursive_repr_misc_attrs  s{    		 	 	 	 	 	 	 
	 AdAJJa #< 	= 	= 	= 	= 	=r   N)r   r   r   r*  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   rs  rs    s        	" 	" 	"' ' '@	! 	! 	!
 
 
  (  &" " ""B B B$W W W
? 
? 
?9 9 9": : :0	= 	= 	= 	= 	=r   rs  c                       e Zd Zd Zd ZdS )TestAbstractc                 $    G d dt           j                  }t          d           G d d|                      }|                     t	          j        |                     |                      |ddd	           |dd
d                     d S )Nc                   N    e Zd Zej        d             Zej        d             ZdS )5TestAbstract.test_abc_implementation.<locals>.Orderedc                     d S r   r   r   s     r   r_  z<TestAbstract.test_abc_implementation.<locals>.Ordered.__lt__      r   c                     d S r   r   r   s     r   r`  z<TestAbstract.test_abc_implementation.<locals>.Ordered.__le__  r  r   N)r   r   r   abcabstractmethodr_  r`  r   r   r   Orderedr    sP                 r   r  Tr   c                   .    e Zd ZU eed<   ded<   ded<   dS )2TestAbstract.test_abc_implementation.<locals>.Dater  Monthr  r8   r	  Nr7   r   r   r   r
  r    +         IIINNNJJJJJr   r
  i  r     r     )r  ABCr&   r  r   
isabstractr)  )r+   r  r
  s      r   test_abc_implementationz$TestAbstract.test_abc_implementation  s    	 	 	 	 	cg 	 	 	 
				 	 	 	 	7 	 	 
		
 	+D1122244R++TT$q__=====r   c                      G d dt           j                  }t           G d d|                      }|                     t	          j        |                     d}|                     t          ||           d S )Nc                   .    e Zd Zej        d             ZdS ))TestAbstract.test_maintain_abc.<locals>.Ac                     d S r   r   r   s    r   r   z-TestAbstract.test_maintain_abc.<locals>.A.foo  r  r   N)r   r   r   r  r  r   r   r   r   r  r    s1             r   r  c                   .    e Zd ZU eed<   ded<   ded<   dS ),TestAbstract.test_maintain_abc.<locals>.Dater  r  r  r8   r	  Nr7   r   r   r   r
  r    r  r   r
  z#class Date with abstract method foo)r  r  r&   rC  r   r  rF   r{   )r+   r  r
  rH   s       r   test_maintain_abczTestAbstract.test_maintain_abc  s    	 	 	 	 	 	 	 	
 
	 	 	 	 	1 	 	 
	
 	*4001113y#t44444r   N)r   r   r   r  r  r   r   r   r  r    s2        > > >&5 5 5 5 5r   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestMatchArgsc                     t            G d d                      }|                      |d          j        d           d S )Nc                       e Zd ZU eed<   dS )(TestMatchArgs.test_match_args.<locals>.Cr  Nr7   r   r   r   r#   r    r:   r   r#   r;   r  r&   r'   __match_args__r   s     r   test_match_argszTestMatchArgs.test_match_args  s[    		 	 	 	 	 	 	 
	2-v66666r   c                     dt            G fdd                      }|                      |d          j                   d S )Nr   c                        e Zd ZU eed<    ZdS )1TestMatchArgs.test_explicit_match_args.<locals>.Cr  Nr   r   r   r8   r9   r  )mas   r   r#   r    s         FFFNNNr   r#   r;   )r&   rp  r  )r+   r#   r  s     @r   test_explicit_match_argsz&TestMatchArgs.test_explicit_match_args  sk    		  	  	  	  	  	  	  	  	  
	  	aaee*B/////r   c                     t          ddd           G d d                      }|                     |j        d           d S )NF)rL   rX  rK   c                   .    e Zd ZU eed<   eed<   eed<   dS )'TestMatchArgs.test_bpo_43764.<locals>.Xr  r   r   Nr7   r   r   r   Xr    r  r   r  r  r   r   r  )r+   r  s     r   test_bpo_43764zTestMatchArgs.test_bpo_43764  se    	%e	4	4	4	 	 	 	 	 	 	 
5	4	 	)?;;;;;r   c                 .   t          d           G d d                      }|                     d|j                   t          d           G d d                      }|                     |j        d           t          d           G d	 d
|                      }|                     |j        d           t            G d d                      }t          d           G d d|                      }|                     |j        d           d S )NF
match_argsc                       e Zd ZU eed<   dS )1TestMatchArgs.test_match_args_argument.<locals>.Xr  Nr7   r   r   r   r  r    r:   r   r  r  c                       e Zd ZU eed<   dZdS )1TestMatchArgs.test_match_args_argument.<locals>.Yr  r&  Nr  r   r   r   Yr    s         FFF#NNNr   r  r&  c                       e Zd ZU eed<   dS )1TestMatchArgs.test_match_args_argument.<locals>.Zr   Nr7   r   r   r   Zr    r:   r   r  c                   $    e Zd ZU eed<   eed<   dS )1TestMatchArgs.test_match_args_argument.<locals>.Ar  r   Nr7   r   r   r   r  r    r.  r   r  c                       e Zd ZU eed<   dS )1TestMatchArgs.test_match_args_argument.<locals>.Br   Nr7   r   r   r   ru   r    r:   r   ru   )r  r   )r&   rc  r   r'   r  )r+   r  r  r  r  ru   s         r   test_match_args_argumentz&TestMatchArgs.test_match_args_argument  s   	e	$	$	$	 	 	 	 	 	 	 
%	$	)1:666	e	$	$	$	$ 	$ 	$ 	$ 	$ 	$ 	$ 
%	$	$ 	)6222	e	$	$	$	 	 	 	 	 	 	 
%	$	)6222 
	 	 	 	 	 	 	 
	 
e	$	$	$	 	 	 	 	 	 	 
%	$	):66666r   c                    t          ddt          fdt          fg          }|                     |j        d           t          ddt          fdt          fgd          }|                     |j        d           t          ddt          fdt          fgd          }|                     d|j                   t          ddt          fdt          fgd	d
i          }|                     |j        d
           d S )Nr#   r6   rm   r  Tr  F__match__args__r  r  r4  )r   r8   r'   r  rc  r   r   s     r   test_make_dataclassesz#TestMatchArgs.test_make_dataclasses  s    3#sc3Z 899):6663#sc3Z 8TJJJ):6663#sc3Z 8UKKK*AJ7773#sc3Z 8EUW]D^___)622222r   N)r   r   r   r  r  r  r  r  r   r   r   r  r    s_        7 7 70 0 0< < <7 7 783 3 3 3 3r   r  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestKeywordArgsc                    d}|                      t          |          5  t           G d d                      }d d d            n# 1 swxY w Y   |                      t          |          5  t           G d d                      }d d d            n# 1 swxY w Y   |                      t          |          5  t          d           G d d                      }d d d            d S # 1 swxY w Y   d S )Nz+field a is a ClassVar but specifies kw_onlyc                   >    e Zd ZU  ed          Zee         ed<   dS )1TestKeywordArgs.test_no_classvar_kwarg.<locals>.ATkw_onlyr  Nr   r   r   rE   r  r   r8   r9   r   r   r   r  r    s3         #(5#6#6#68C=66666r   r  c                   >    e Zd ZU  ed          Zee         ed<   dS r  Fr  r  Nr  r   r   r   r  z1TestKeywordArgs.test_no_classvar_kwarg.<locals>.A  3         #(5#7#7#78C=77777r   Tr  c                   >    e Zd ZU  ed          Zee         ed<   dS r  r  r   r   r   r  z1TestKeywordArgs.test_no_classvar_kwarg.<locals>.A#  r  r   r,  )r+   rH   r  s      r   test_no_classvar_kwargz&TestKeywordArgs.test_no_classvar_kwarg  s   ;##Is33 	7 	77 7 7 7 7 7 7 Y7	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7
 ##Is33 	8 	88 8 8 8 8 8 8 Y8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8
 ##Is33 	8 	8t$$$8 8 8 8 8 8 8 %$8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s5   AA	A	+BBB8$C))C-0C-c                 p   t          d           G d d                      }|                     t          |          d         j                   t          d           G d d                      }|                     t          |          d         j                   t          d           G d d                      }|                     t          |          d         j                   t          d           G d	 d                      }|                     t          |          d         j                   t          d           G d
 d                      }|                     t          |          d         j                   t          d           G d d                      }|                     t          |          d         j                   t            G d d                      }|                     t          |          d         j                   t            G d d                      }|                     t          |          d         j                   t            G d d                      }|                     t          |          d         j                   d S )NTr  c                       e Zd ZU eed<   dS 6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.Ar  Nr7   r   r   r   r  r  *  r:   r   r  r   c                   2    e Zd ZU  ed          Zeed<   dS r  Tr  r  Nr   r   r   rE   r  r8   r9   r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A/  /         U4(((As(((((r   c                   2    e Zd ZU  ed          Zeed<   dS r  Fr  r  Nr  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A4  /         U5)))As)))))r   Fc                       e Zd ZU eed<   dS r  r7   r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A;  r:   r   c                   2    e Zd ZU  ed          Zeed<   dS r  r  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A@  r  r   c                   2    e Zd ZU  ed          Zeed<   dS r
  r  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.AE  r  r   c                       e Zd ZU eed<   dS r  r7   r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.AL  r:   r   c                   2    e Zd ZU  ed          Zeed<   dS r  r  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.AQ  r  r   c                   2    e Zd ZU  ed          Zeed<   dS r
  r  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.AV  r  r   )r&   rC  r)   r  r  r  s     r   test_field_marked_as_kwonlyz+TestKeywordArgs.test_field_marked_as_kwonly'  s9    
4	 	 	 	 	 	 	 	 	 	 
!	 	q		!,---	4	 	 	 	) 	) 	) 	) 	) 	) 	) 
!	 	)q		!,---	4	 	 	 	* 	* 	* 	* 	* 	* 	* 
!	 	*1-... 
5	!	!	!	 	 	 	 	 	 	 
"	!	1-...	5	!	!	!	) 	) 	) 	) 	) 	) 	) 
"	!	)q		!,---	5	!	!	!	* 	* 	* 	* 	* 	* 	* 
"	!	*1-... 
	 	 	 	 	 	 	 
	1-...		) 	) 	) 	) 	) 	) 	) 
	)q		!,---		* 	* 	* 	* 	* 	* 	* 
	*1-.....r   c                    t          d           G d d                      }|                      |d          j        d           t            G d d                      }|                      |dd	
          j        d           d S )NTr  c                       e Zd ZU eed<   dS )*TestKeywordArgs.test_match_args.<locals>.Cr  Nr7   r   r   r   r#   r  ]  r:   r   r#   r;   r  r   c                   <    e Zd ZU eed<    ed          Zeed<   dS )r  r  Tr  r   N)r   r   r   r8   r9   rE   r   r   r   r   r#   z*TestKeywordArgs.test_match_args.<locals>.Cb  s8         FFFU4(((As(((((r   r   r&  r  r   s     r   r  zTestKeywordArgs.test_match_args[  s    	4	 	 	 	 	 	 	 	 	 	 
!	 	R/444		) 	) 	) 	) 	) 	) 	) 
	) 	23V<<<<<r   c                    t            G d d                      } |ddd           d}|                     t          |          5   |ddd           d d d            n# 1 swxY w Y   t          d	           G d
 d                      } |ddd           d}|                     t          |          5   |ddd           d d d            n# 1 swxY w Y   t            G d d                      } |ddd          }|                     |j        d           |                     |j        d           |                     |j        d            |ddd          }|                     |j        d           |                     |j        d           |                     |j        d            |ddd          }|                     |j        d           |                     |j        d           |                     |j        d            |ddd          }|                     |j        d           |                     |j        d           |                     |j        d           d S )Nc                   8    e Zd ZU eed<   eed<   eed<   eed<   dS )'TestKeywordArgs.test_KW_ONLY.<locals>.Ar  rj  r   r   Nr   r   r   r8   r9   KW_ONLYr   r   r   r  r  i  4         FFFJJJFFFFFFFFr   r  rp   r   r~  r   r   -takes 2 positional arguments but 4 were givenTr  c                   8    e Zd ZU eed<   eed<   eed<   eed<   dS )'TestKeywordArgs.test_KW_ONLY.<locals>.Br  rj  r   r   Nr  r   r   r   ru   r   u  r  r   ru   r  z,takes 1 positional argument but 4 were givenc                   P    e Zd ZU eed<   eed<   eed<    ed          Zeed<   dS )'TestKeywordArgs.test_KW_ONLY.<locals>.Cr  rj  r   Fr  r   Nr   r   r   r8   r9   r  rE   r   r   r   r   r#   r"    sJ         FFFJJJFFFU5)))As)))))r   r#   rA   r1  r&  )r   r   )r   r   r  )r&   rF   r{   r'   r  r   r   )r+   r  rH   ru   r#   r   s         r   test_KW_ONLYzTestKeywordArgs.test_KW_ONLYh  sO   		 	 	 	 	 	 	 
	
 	
!qA=##Is33 	 	AaAJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
4	 	 	 	 	 	 	 	 	 	 
!	 	
 	
Aa<##Is33 	 	AaAJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
	* 	* 	* 	* 	* 	* 	* 
	*
 AaaLLLa   a   a   Aa1NNNa   a   a   Aa1NNNa   a   a   AQ!a   a   a     s$   A  A$'A$9CCCc                     t            G d d                      } |ddd           d}|                     t          |          5   |ddd           d d d            d S # 1 swxY w Y   d S )Nc                   8    e Zd ZU eed<   ded<   eed<   eed<   dS )1TestKeywordArgs.test_KW_ONLY_as_string.<locals>.Ar  zdataclasses.KW_ONLYrj  r   r   Nr7   r   r   r   r  r'    s7         FFF$$$$FFFFFFFFr   r  rp   r   r~  r  r  r  )r+   r  rH   s      r   test_KW_ONLY_as_stringz&TestKeywordArgs.test_KW_ONLY_as_string  s    		 	 	 	 	 	 	 
	
 	
!qA=##Is33 	 	AaAJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A!!A%(A%c                 H   d}|                      t          |          5  t           G d d                      }d d d            n# 1 swxY w Y   |                      t          |          5  t           G d d                      }d d d            n# 1 swxY w Y   |                      t          |          5  t           G d d                      }d d d            n# 1 swxY w Y   t           G d d                      }t           G d d                      }t           G d d	|                      }|                      t          |          5  t           G d
 d                      }t           G d d	|                      }d d d            d S # 1 swxY w Y   d S )Nz6'Y' is KW_ONLY, but KW_ONLY has already been specifiedc                   B    e Zd ZU eed<   eed<   eed<   eed<   eed<   dS )-TestKeywordArgs.test_KW_ONLY_twice.<locals>.Ar  r  r  r   r   Nr  r   r   r   r  r+    s=         





r   r  c                   B    e Zd ZU eed<   eed<   eed<   eed<   eed<   dS )r+  r  r  r   r  r   Nr  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.A  s=         





r   c                   B    e Zd ZU eed<   eed<   eed<   eed<   eed<   dS )r+  r  r  r   r   r  Nr  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.A  s=         







r   c                   P    e Zd ZU eed<   eed<   eed<    ed          Zeed<   dS )r+  r  rj  r   Tr  r   Nr#  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.A  sJ         FFFJJJFFFU4(((As(((((r   c                   8    e Zd ZU eed<   eed<   eed<   eed<   dS r+  r  rj  r   r   Nr  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.A  r  r   c                   $    e Zd ZU eed<   eed<   dS )-TestKeywordArgs.test_KW_ONLY_twice.<locals>.Brj  r  Nr   r   r   r  r9   r8   r   r   r   ru   r2    s"         JJJFFFFFr   ru   c                   8    e Zd ZU eed<   eed<   eed<   eed<   dS r0  r  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.A  s4         


r   c                   .    e Zd ZU eed<   eed<   eed<   dS )r2  r  r  r  Nr3  r   r   r   ru   z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.B  s+         







r   r,  )r+   rH   r  ru   s       r   test_KW_ONLY_twicez"TestKeywordArgs.test_KW_ONLY_twice  sd   F##Is33 	 	       Y	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##Is33 	 	       Y	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##Is33 	 	       Y	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
	) 	) 	) 	) 	) 	) 	) 
	) 
	 	 	 	 	 	 	 
	
 
	 	 	 	 	 	 	 
	
 ##Is33 	 	       Y
     A   Y	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sG   AA	A	+BBB8CC#&C#6FFFc                 \   t            G d d                      }|                     t          d          5   |dddd           d d d            n# 1 swxY w Y   t            G d	 d
                      } |dddd          }|                     t	          |          ddd           d S )Nc                   `    e Zd ZU eed<   eed<   ee         ed<   eed<   ee         ed<   d ZdS ))TestKeywordArgs.test_post_init.<locals>.Ar  rj  r   r   r  c                 ,    t          d|d|          )Nzb=z d=rP  r+   r   r  s      r   rQ  z7TestKeywordArgs.test_post_init.<locals>.A.__post_init__  s    !,Q,,!,,///r   Nr   r   r   r8   r9   r  r  rQ  r   r   r   r  r9    sZ         FFFJJJs|OOOFFFs|OOO0 0 0 0 0r   r  zb=3 d=4rA   r1  rp   r~  )r   r   r  c                   `    e Zd ZU eed<   eed<   ee         ed<   eed<   ee         ed<   d ZdS ))TestKeywordArgs.test_post_init.<locals>.Br  rj  r   r   r  c                 "    || _         || _        d S r   r  r   r;  s      r   rQ  z7TestKeywordArgs.test_post_init.<locals>.B.__post_init__  s    r   Nr<  r   r   r   ru   r>    sZ         FFFJJJs|OOOFFFs|OOO    r   ru   r@  )r&   rF   r   r'   rD  )r+   r  ru   r   s       r   rc  zTestKeywordArgs.test_post_init  s2   		0 	0 	0 	0 	0 	0 	0 
	0 ##K;; 	  	 Aa1Q	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  
	 	 	 	 	 	 	 
	 Aa1Q!!$4$455555s   AAAc                    t            G d d                      } |dd          }|                     |j        d           |                     |j        d           |                     |j        d           |                     |j        d           d}|                     t          |          5  t            G d	 d                      }d d d            d S # 1 swxY w Y   d S )
Nc                   J    e Zd ZU dZeed<   eed<   eed<   dZeed<   eed<   dS )	(TestKeywordArgs.test_defaults.<locals>.Ar   r  rj  r   rA   r   r  Nr   r   r   r  r8   r9   r  r   r   r   r   r  rC    sE         AsJJJJJJFFFAsJJJFFFFFr   r  r~  rp   )r  r   r   rA   z1non-default argument 'z' follows default argumentc                   T    e Zd ZU dZeed<   eed<   eed<   eed<   dZeed<   eed<   d	S )
rC  r   r  r   rj  r   rA   r   r  NrD  r   r   r   r  z(TestKeywordArgs.test_defaults.<locals>.A  sN         3





3


r   )r&   r'   r  r   r   r  rF   r{   )r+   r  r  	err_regexs       r   test_defaultszTestKeywordArgs.test_defaults  s[   		 	 	 	 	 	 	 
	 AQKKKa   a   a   a    H	##Iy99 	 	       Y	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   1CC Cc           	         t          ddgd          }|                     t          |          d         j                   t          dddt          t          d          fgd          }|                     t          |          d         j                   |                     t          |          d	         j                   d S )
Nr  r  Tr  r   ru   r   FrA   )r   rC  r)   r  r8   rE   r  r-  s      r   test_make_dataclassz#TestKeywordArgs.test_make_dataclass  s    3t444q		!,---3#sE%,@,@,@!AB#') ) ) 	q		!,---1-.....r   N)r   r   r   r   r  r  r$  r(  r6  rc  rG  rI  r   r   r   r  r    s        8 8 8"2/ 2/ 2/h= = =.! .! .!`
 
 
> > >B6 6 64  :/ / / / /r   r  __main__)3dataclassesr  rZ  r{  r   r   rL  rj  r\  unittestunittest.mockr   typingr   r   r   r   r	   r
   r   r   r   r   r   collectionsr   r   r   	functoolsr   	Exceptionr   r   r  r  r  r  r1  rE  r`  r  r  r  r  r0  rs  r  r  r  r   mainr   r   r   <module>rS     s  
     



 				                 ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ! ! ! ! ! ! 6 6 6 6 6 6 6 6 6 6 $ $ $ $ $ $      # " " " ") " " "Y  Y  Y  Y  Y x  Y  Y  Y x@         H-      Fc/ c/ c/ c/ c/H% c/ c/ c/LS% S% S% S% S%x  S% S% S%lD* D* D* D* D*x  D* D* D*N,% ,% ,% ,% ,%X ,% ,% ,%^J J J J J8$ J J JXYM YM YM YM YMx  YM YM YMxk k k k k" k k k\q, q, q, q, q,! q, q, q,hs s s s sh' s s sjX$ X$ X$ X$ X$H- X$ X$ X$vb8 b8 b8 b8 b8) b8 b8 b8HT= T= T= T= T=(# T= T= T=H"5 "5 "5 "5 "58$ "5 "5 "5J>3 >3 >3 >3 >3H% >3 >3 >3BO/ O/ O/ O/ O/h' O/ O/ O/d zHMOOOOO r   