
    z%i:                    L   d dl  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mZ d dlmZ d dlmZ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	jD                        Z" G d de	jD                        Z# G d de	jD                        Z$ G d de	jD                        Z% G d de	jD                        Z& G d de	jD                        Z' G d de	jD                        Z( G d de	jD                        Z) G d de	jD                        Z* G d de	jD                        Z+ G d de	jD                        Z, G d  d!e	jD                        Z- e.d"d#e/fg      Z0 e.d$d#e/fge1%      Z2 e.d&d#e/fg      Z3 e.d'd#e/fgd(%      Z4 G d) d*e	jD                        Z5 G d+ d,e	jD                        Z6 G d- d.e	jD                        Z7 G d/ d0e	jD                        Z8 G d1 d2e	jD                        Z9e1d3k(  r e	jt                          yy)4    )*N)Mock)ClassVarAnyListUnionTupleDictGenericTypeVarOptionalProtocolDefaultDict)get_type_hints)dequeOrderedDict
namedtupledefaultdict)total_orderingc                       e Zd Zy)CustomErrorN__name__
__module____qualname__     I/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_dataclasses.pyr   r          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 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 Zgdf Zhdg Zidh Zjdi Zkdj Zlyk)lTestCasec                     t          G d d             } |       }| j                  t        t        |            d       y )Nc                       e Zd Zy)"TestCase.test_no_fields.<locals>.CNr   r   r   r   Cr$          r   r%   r   	dataclassassertEquallenfieldsselfr%   os      r   test_no_fieldszTestCase.test_no_fields   s:    		 	 
	 CVAY+r   c                     t          G d d             } |       }| j                  t        t        |            d       y )Nc                       e Zd ZdZy)6TestCase.test_no_fields_but_member_variable.<locals>.Cr   N)r   r   r   ir   r   r   r%   r2   &   s    Ar   r%   r   r'   r,   s      r   "test_no_fields_but_member_variablez+TestCase.test_no_fields_but_member_variable%   s:    		 	 
	 CVAY+r   c                 r    t          G d d             } |d      }| j                  |j                  d       y )Nc                       e Zd ZU eed<   y)-TestCase.test_one_field_no_default.<locals>.CxNr   r   r   int__annotations__r   r   r   r%   r7   .       Fr   r%   *   r(   r)   r8   r,   s      r   test_one_field_no_defaultz"TestCase.test_one_field_no_default-   s8    		 	 
	 bEb!r   c                     d}| j                  t        |      5  t         G d d             }d d d        y # 1 sw Y   y xY w)Nz/cannot specify both default and default_factoryc                   ,    e Zd ZU  ede      Zeed<   y)<TestCase.test_field_default_default_factory_error.<locals>.C   defaultdefault_factoryr8   N)r   r   r   fieldr:   r8   r;   r   r   r   r%   rB   8   s    q#>3>r   r%   )assertRaisesRegex
ValueErrorr(   )r-   msgr%   s      r   (test_field_default_default_factory_errorz1TestCase.test_field_default_default_factory_error5   sC    ?##J4 	?? ? ?	? 	? 	?s   6?c                     t        ddd      }d|_        t        |      }dt        dt        d}| j	                  ||       y )	NrC   TF)rE   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))rG   namerN   MISSINGr)   )r-   	int_fieldrepr_outputexpected_outputs       r   test_field_reprzTestCase.test_field_repr<   sU    !$U;		9o88?{ C& '.[ 1/	/ 	o6r   c                 n    t               }||_        d|_        t        |      }| j	                  d|       y )NrO   
,type=...,)rG   typerP   rN   assertIn)r-   	rec_fieldrS   s      r   test_field_recursive_reprz"TestCase.test_field_recursive_reprI   s.    G	"		9olK0r   c                      G d d      }t          G d d             }| j                  dt        |j                  d                y )Nc                       e Zd Zy)-TestCase.test_recursive_annotation.<locals>.CNr   r   r   r   r%   r^   R       r   r%   c                   &    e Zd ZU  e       Zeed<   y)-TestCase.test_recursive_annotation.<locals>.Dr%   N)r   r   r   rG   r%   r;   r   r   r   Dra   U   s    7AqNr   rb   rW   )r(   rY   rN   __dataclass_fields__r-   r%   rb   s      r   test_recursive_annotationz"TestCase.test_recursive_annotationQ   sE    	 	 
	 	 
	 	lD)?)?)D$EFr   c                     t        dd       G d d             }t        |j                        }d}| j                  ||       y )NT)slotsfrozenc                       e Zd Zy)1TestCase.test_dataclass_params_repr.<locals>.SomeNr   r   r   r   Somerj   _       r   rk   z_DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=True,match_args=True,kw_only=False,slots=True,weakref_slot=False))r(   rN   __dataclass_params__r)   )r-   rk   rS   rT   s       r   test_dataclass_params_reprz#TestCase.test_dataclass_params_repr[   sE     
d	+ 
,4445; 	o6r   c                     t          G d d             }t        j                  t               j                  D ]/  }|dk(  r	| j	                  t        |j                  |      |       1 y )Nc                       e Zd Zy)6TestCase.test_dataclass_params_signature.<locals>.SomeNr   r   r   r   rk   rq   m   rl   r   rk   cls)rJ   )r(   inspect	signature
parameters
assertTruehasattrrm   )r-   rk   params      r   test_dataclass_params_signaturez(TestCase.test_dataclass_params_signaturei   s^     
 
&&y1<< 	RE~OOGD$=$=uE5OQ	Rr   c                 t    t          G d d             } |d      }| j                  |j                  d       y )Nc                       e Zd ZU eed<   y)*TestCase.test_named_init_params.<locals>.Cr8   Nr9   r   r   r   r%   r|   v   r<   r   r%       r8   r>   r,   s      r   test_named_init_paramszTestCase.test_named_init_paramsu   s8    		 	 
	 Gb!r   c                 N   t          G d d             } |d      }| j                  |j                  |j                  fd       | j	                  t
        d      5  t          G d d             }d d d        | j	                  t
        d      5  t          G d d             }t          G d	 d|             }d d d        | j	                  t
        d      5  t          G d
 d             }t          G d d|             }d d d        y # 1 sw Y   xY w# 1 sw Y   \xY w# 1 sw Y   y xY w)Nc                   &    e Zd ZU eed<   dZeed<   y)/TestCase.test_two_fields_one_default.<locals>.Cr8   r   yNr   r   r   r:   r;   r   r   r   r   r%   r   ~       FAsJr   r%      )r   r   z1non-default argument 'y' follows default argumentc                   &    e Zd ZU dZeed<   eed<   y)r   r   r8   r   Nr   r   r   r8   r:   r;   r   r   r   r%   z/TestCase.test_two_fields_one_default.<locals>.C   s    3
r   c                       e Zd ZU dZeed<   y)/TestCase.test_two_fields_one_default.<locals>.Br   r8   Nr   r   r   r   Br          3
r   r   c                       e Zd ZU eed<   y)r   r   Nr9   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<   y)r   r8   r   Nr9   r   r   r   r   z/TestCase.test_two_fields_one_default.<locals>.B   s    r   c                       e Zd ZU dZeed<   y)r   r   r8   Nr   r   r   r   r%   z/TestCase.test_two_fields_one_default.<locals>.C   r   r   )r(   r)   r8   r   rH   	TypeError)r-   r%   r.   r   s       r   test_two_fields_one_defaultz$TestCase.test_two_fields_one_default}   sJ   		 	 
	 aD!##qssV, ##I%78 	   		 ##I%78 		    A  		 ##I%78 
	    A  
	 
	-	 			 		
	 
	s$   D(D(DDDD$c                    t        d       G d d             }| j                  t         |d            d       t        d       G d d             }| j                  t         |d            t        d             | j                  t        d	      5  t        d
       G d d             }d d d        t        d
       G d d             }| j                  t         |d            t        d             | j                  t        d	      5  t        d
       G d d             }d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NTrh   c                       e Zd ZU eed<   d Zy)'TestCase.test_overwrite_hash.<locals>.Cr8   c                      yN-  r   r-   s    r   __hash__z0TestCase.test_overwrite_hash.<locals>.C.__hash__       r   N)r   r   r   r:   r;   r   r   r   r   r%   r          Fr   r%   d   r   c                       e Zd ZU eed<   d Zy)r   r8   c                      yNFr   r-   others     r   __eq__z.TestCase.test_overwrite_hash.<locals>.C.__eq__       r   Nr   r   r   r:   r;   r   r   r   r   r%   z'TestCase.test_overwrite_hash.<locals>.C       Fr   )r   #Cannot overwrite attribute __hash__unsafe_hashc                       e Zd Zd Zy)r   c                      y Nr   r   s    r   r   z0TestCase.test_overwrite_hash.<locals>.C.__hash__       r   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y)r   r8   c                      y 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    Fr   
   )r   c                   $    e Zd ZU eed<   d Zd Zy)r   r8   c                      y r   r   r   s    r   r   z.TestCase.test_overwrite_hash.<locals>.C.__eq__   r   r   c                      y r   r   r   s    r   r   z0TestCase.test_overwrite_hash.<locals>.C.__hash__   r   r   N)r   r   r   r:   r;   r   r   r   r   r   r%   z'TestCase.test_overwrite_hash.<locals>.C   s    r   )r(   r)   hashrH   r   r-   r%   s     r   test_overwrite_hashzTestCase.test_overwrite_hash   sE    
$		 	 
 	 	afs+ 
$		 	 
 	 	aftF|4 ##I$IK 	4(  )	 
t	$	 	 
%	
 	aed5k2
 ##I$IK 	4(  )	 	-	 	,	 	s   D2D>2D;>Ec                 "   t          G d d             }t          G d d|             } |       }| j                  t        |      d        |       }| j                  t        |      d        |d      }| j                  t        |      d	       y )
Nc                   *    e Zd ZU dZeed<   dZeed<   y)=TestCase.test_overwrite_fields_in_derived_class.<locals>.Baseg      .@r8   r   r   N)r   r   r   r8   r   r;   r   r:   r   r   r   Baser      s    AsMAsJr   r   c                   *    e Zd ZU dZeed<   dZeed<   y);TestCase.test_overwrite_fields_in_derived_class.<locals>.C1r   z   r8   N)r   r   r   r   r:   r;   r8   r   r   r   C1r      s    AsKAsKr   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)   r~   zKTestCase.test_overwrite_fields_in_derived_class.<locals>.C1(x=5, y=0, z=10)r(   r)   rN   )r-   r   r   r.   s       r   &test_overwrite_fields_in_derived_classz/TestCase.test_overwrite_fields_in_derived_class   s     
	 	 
	 
	 	 
	 Fa"noDa"pqGa"opr   c                    t          G d d             } |d      }| j                  |j                  d       t        j                  |j
                        }t        t        |j                              }| j                  d|       t          G d d             }t        j                  |j
                        }t        t        |j                              }| j                  d|       y )Nc                       e Zd ZU eed<   y))TestCase.test_field_named_self.<locals>.Cr-   Nr   r   r   strr;   r   r   r   r%   r      s    Ir   r%   foor-   c                       e Zd ZU eed<   y)r   selfxNr   r   r   r   r%   z)TestCase.test_field_named_self.<locals>.C      Jr   )
r(   r)   r-   rs   rt   __init__nextiterru   assertNotEqual)r-   r%   csigfirsts        r   test_field_named_selfzTestCase.test_field_named_self   s    		 	 
	
E(' 

+T#..)*FE* 
	 	 
	 

+T#..)*'r   c                 r    t          G d d             } |d      }| j                  |j                  d       y )Nc                       e Zd ZU eed<   y)+TestCase.test_field_named_object.<locals>.CobjectNr   r   r   r   r%   r         Kr   r%   r   r(   r)   r   r-   r%   r   s      r   test_field_named_objectz TestCase.test_field_named_object
  s6    		 	 
	eH5)r   c                 ~    t        d       G d d             } |d      }| j                  |j                  d       y )NTr   c                       e Zd ZU eed<   y)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  s;    	$		 	 
 	eH5)r   c                 ~    t        d       G d d             } |d      }| j                  |j                  d       y )NTr   c                       e Zd ZU eed<   y)4TestCase.test_field_named_BUILTINS_frozen.<locals>.CBUILTINSNr9   r   r   r   r%   r     s    Mr   r%   r   )r(   r)   r   r   s      r    test_field_named_BUILTINS_frozenz)TestCase.test_field_named_BUILTINS_frozen  s;    	$		 	 
 	aDQ'r   c                 ^    t          G d d             } |        t          G d d             }y )Nc                   J    e Zd ZU  ed       Zeed<    ed       Zeed<   y)CTestCase.test_field_with_special_single_underscore_names.<locals>.Xc                       yNo   r   r   r   r   <lambda>zLTestCase.test_field_with_special_single_underscore_names.<locals>.X.<lambda>%      r   rF   r8   c                       y)N   r   r   r   r   r   zLTestCase.test_field_with_special_single_underscore_names.<locals>.X.<lambda>&  r   r   _dflt_xN)r   r   r   rG   r8   r:   r;   r   r   r   r   Xr   #  s     ;7As7 =GS=r   r   c                   :    e Zd ZU  ed       Zeed<   dZeed<   y)CTestCase.test_field_with_special_single_underscore_names.<locals>.Yc                       yr   r   r   r   r   r   zLTestCase.test_field_with_special_single_underscore_names.<locals>.Y.<lambda>,  r   r   r   r   r   _HAS_DEFAULT_FACTORYN)r   r   r   rG   r   r:   r;   r   r   r   r   Yr   *  s    ;7As7(+ #+r   r   r(   )r-   r   r   s      r   /test_field_with_special_single_underscore_namesz8TestCase.test_field_with_special_single_underscore_names   s9     
	> 	> 
	> 	
		, 	, 
	,r   c                 0   h dt        fdt        j                  j                         D              }|D cg c]
  }|t        f }}t        d|      } ||D cg c]  }| c} }|D ]  }| j                  t        ||      |         y c c}w c c}w )N>   NoneTrueFalsec              3   L   K   | ]  }|j                  d       s|vr|  yw__N
startswith.0b
exclusionss     r   	<genexpr>z9TestCase.test_field_named_like_builtin.<locals>.<genexpr>6  ,       
<<%!:*=  
   !$r%   sortedbuiltins__dict__keysr   make_dataclassr)   getattrr-   builtins_namesrP   
attributesr%   r   r  s         @r   test_field_named_like_builtinz&TestCase.test_field_named_like_builtin1  s     /
  
((--/ 
 
 /==dtSk=
=3
+001" 	5DWQ-t4	5 > 1s   B	Bc                 4   h dt        fdt        j                  j                         D              }|D cg c]
  }|t        f }}t        d|d      } ||D cg c]  }| c} }|D ]  }| j                  t        ||      |         y c c}w c c}w )N>   r   r   r   c              3   L   K   | ]  }|j                  d       s|vr|  ywr  r  r  s     r   r	  z@TestCase.test_field_named_like_builtin_frozen.<locals>.<genexpr>H  r
  r  r%   Tr   r  r  s         @r   $test_field_named_like_builtin_frozenz-TestCase.test_field_named_like_builtin_frozenB  s    
 /
  
((--/ 
 
 /==dtSk=
=3
48001" 	5DWQ-t4	5 > 1s   B	Bc                    t          G d d             }t        d       G d d             }||fD ]  }| j                  |      5  | j                   |        |              t        d d	 d
 d g      D ]m  \  }}| j                  |      5  | j	                  t
        d|j                   d|j                   d      5   | |        |              d d d        d d d        o 	 d d d         t        d       G d d             }| j                   |        |              | j                   |        |              y # 1 sw Y   pxY w# 1 sw Y   xY w# 1 sw Y   4xY w)Nc                       e Zd Zy))TestCase.test_0_field_compare.<locals>.C0Nr   r   r   r   C0r  V  r&   r   r  Forderc                       e Zd Zy))TestCase.test_0_field_compare.<locals>.C1Nr   r   r   r   r   r!  Z  r&   r   r   rr   c                     | |k  S r   r   ar  s     r   r   z/TestCase.test_0_field_compare.<locals>.<lambda>a  
    q1u r   c                     | |k  S r   r   r$  s     r   r   z/TestCase.test_0_field_compare.<locals>.<lambda>b  
    qAv r   c                     | |kD  S r   r   r$  s     r   r   z/TestCase.test_0_field_compare.<locals>.<lambda>c  r&  r   c                     | |k\  S r   r   r$  s     r   r   z/TestCase.test_0_field_compare.<locals>.<lambda>d  r(  r   idx$not supported between instances of '' and ''Tc                       e Zd Zy)(TestCase.test_0_field_compare.<locals>.CNr   r   r   r   r%   r1  j  r&   r   r%   )	r(   subTestr)   	enumeraterH   r   r   assertLessEqualassertGreaterEqualr-   r  r   rr   r,  fnr%   s          r   test_0_field_comparezTestCase.test_0_field_compareT  sz   		 	 
	 
		 	 
 	 8 
	-C#& 	-  .(*<*=*<*=*?  @ -GC #. -!33I6Z[^[g[gZhhopsp|p|o}}~4A -suce,-- -	-	- 	-
	- 
		 	 
	QS!#&QS)- -- -	- 	-s=   AE2E	 EE	
EEE	EEE%	c                    t          G d d             }t        d       G d d             }||fD ]  }| j                  |      5  | j                   |d       |d             | j                   |d	       |d             t	        d
 d d d g      D ]o  \  }}| j                  |      5  | j                  t        d|j                   d|j                   d      5   | |d	       |d	             d d d        d d d        q 	 d d d         t        d       G d d             }| j                   |d	       |d             | j                   |d	       |d             | j                   |d       |d             | j                   |d       |d	             | j                   |d       |d	             | j                   |d       |d             y # 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   xY w)Nc                       e Zd ZU eed<   y))TestCase.test_1_field_compare.<locals>.C0r8   Nr9   r   r   r   r  r;  r  r<   r   r  Fr  c                       e Zd ZU eed<   y))TestCase.test_1_field_compare.<locals>.C1r8   Nr9   r   r   r   r   r=  v  r<   r   r   r"  rC   r   c                     | |k  S r   r   r$  s     r   r   z/TestCase.test_1_field_compare.<locals>.<lambda>~  r&  r   c                     | |k  S r   r   r$  s     r   r   z/TestCase.test_1_field_compare.<locals>.<lambda>  r(  r   c                     | |kD  S r   r   r$  s     r   r   z/TestCase.test_1_field_compare.<locals>.<lambda>  r&  r   c                     | |k\  S r   r   r$  s     r   r   z/TestCase.test_1_field_compare.<locals>.<lambda>  r(  r   r+  r-  r.  r/  Tc                       e Zd ZU eed<   y)(TestCase.test_1_field_compare.<locals>.Cr8   Nr9   r   r   r   r%   rC    r<   r   r%   )r(   r2  r)   r   r3  rH   r   r   
assertLessr4  assertGreaterr5  r6  s          r   test_1_field_comparezTestCase.test_1_field_comparep  s    		 	 
	 
		 	 
 	 8 	/C#& 
/  QQ0##CFCF3(*<*=*<*=*?  @ /GC #. /!33I6Z[^[g[gZhhopsp|p|o}}~4A /s1vs1v.// /	/
/ 
/	/ 
		 	 
	!ad#QqT1Q4(QqT1Q4(1Q41&!ad+!ad+/ // /
/ 
/s=   A(G:.2G-	 G!6G-	>
G:!G*&G-	-G72G::H	c                    t          G d d             }t        d       G d d             }||fD ]&  }| j                  |      5  | j                   |dd       |dd             | j                   |d	d
       |d	d
             | j                   |d	d       |dd             | j                   |d	d       |d	d	             t	        d d d d g      D ]q  \  }}| j                  |      5  | j                  t        d|j                   d|j                   d      5   | |dd       |dd             d d d        d d d        s 	 d d d        ) t        d       G d d             }t	        d d d g      D ]F  \  }}| j                  |      5  | j                   | |dd       |dd                   d d d        H t	        d d d g      D ]  \  }}| j                  |      5  | j                   | |dd       |dd	                   | j                   | |dd	       |d	d                   | j                   | |d	d       |d	d	                   d d d         t	        d d d g      D ]  \  }}| j                  |      5  | j                   | |dd	       |dd                   | j                   | |d	d       |dd	                   | j                   | |d	d	       |d	d                   d d d         y # 1 sw Y   xY w# 1 sw Y   WxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   zxY w# 1 sw Y   xY w)Nc                   "    e Zd ZU eed<   eed<   y)(TestCase.test_simple_compare.<locals>.C0r8   r   Nr9   r   r   r   r  rI        FFr   r  Fr  c                   "    e Zd ZU eed<   eed<   y)(TestCase.test_simple_compare.<locals>.C1r8   r   Nr9   r   r   r   r   rL    rJ  r   r   r"  r   rC      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>  r(  r   c                     | |kD  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>  r(  r   r+  r-  r.  r/  Tc                   "    e Zd ZU eed<   eed<   y)'TestCase.test_simple_compare.<locals>.Cr8   r   Nr9   r   r   r   r%   rS    rJ  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>  rU  r   c                     | |k\  S r   r   r$  s     r   r   z.TestCase.test_simple_compare.<locals>.<lambda>  rU  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>  rU  r   c                     | |k7  S r   r   r$  s     r   r   z.TestCase.test_simple_compare.<locals>.<lambda>  rU  r   c                     | |kD  S r   r   r$  s     r   r   z.TestCase.test_simple_compare.<locals>.<lambda>  rY  r   c                     | |k\  S r   r   r$  s     r   r   z.TestCase.test_simple_compare.<locals>.<lambda>  rU  r   c                     | |k7  S r   r   r$  s     r   r   z.TestCase.test_simple_compare.<locals>.<lambda>  rU  r   )	r(   r2  r)   r   r3  rH   r   r   rv   r6  s          r   test_simple_comparezTestCase.test_simple_compare  s   		 	 
	 
		 	 
 	 8 	5C#& 5  QC1I6  QC1I6##C1Is1ay9##C1Is1ay9(*<*=*<*=*?  @ 5GC #. 5!33I6Z[^[g[gZhhopsp|p|o}}~4A 5s1ay#a)455 5	55 5	5 
		 	 
	 !"5"5"5"7 8 	6GC #& 61Q7AaG 456 6	6 !"4"5"5"7 8 	6GC #& 61Q7AaG 451Q7AaG 451Q7AaG 456 6	6 !"4"5"5"7 8 	6GC #& 61Q7AaG 451Q7AaG 451Q7AaG 456 6	6/5 55 55 5,6 66 66 6sc   B,L532L(	%L=L(	
L5'M7A3MA3ML% L(	(L2-L55L?	M	M	M%	c           
      *   t          G d d             }t          G d d|             }t        d dfd dfg      D ]H  \  }\  }}| j                  |	      5  | j                   | |d
       |d
            |       d d d        J t        d d d d g      D ]T  \  }}| j                  |	      5  | j	                  t
        d      5   | |d
       |d
             d d d        d d d        V y # 1 sw Y   xY w# 1 sw Y    xY w# 1 sw Y   yxY w)Nc                       e Zd ZU eed<   y)+TestCase.test_compare_subclasses.<locals>.Br3   Nr9   r   r   r   r   rb    r<   r   r   c                       e Zd Zy)+TestCase.test_compare_subclasses.<locals>.CNr   r   r   r   r%   rd    r&   r   r%   c                     | |k(  S r   r   r$  s     r   r   z2TestCase.test_compare_subclasses.<locals>.<lambda>  
    AF r   Fc                     | |k7  S r   r   r$  s     r   r   z2TestCase.test_compare_subclasses.<locals>.<lambda>  rf  r   Tr+  r   c                     | |k  S r   r   r$  s     r   r   z2TestCase.test_compare_subclasses.<locals>.<lambda>  rY  r   c                     | |k  S r   r   r$  s     r   r   z2TestCase.test_compare_subclasses.<locals>.<lambda>  rU  r   c                     | |kD  S r   r   r$  s     r   r   z2TestCase.test_compare_subclasses.<locals>.<lambda>  rY  r   c                     | |k\  S r   r   r$  s     r   r   z2TestCase.test_compare_subclasses.<locals>.<lambda>  rU  r   z.not supported between instances of 'B' and 'C')r(   r3  r2  r)   rH   r   )r-   r   r%   r,  r7  expecteds         r   test_compare_subclassesz TestCase.test_compare_subclasses  sA    
	 	 
	 
	 	 
	 $-/BE.J/BD.I.K $L 	;C"h#& ;  AaD!A$:; ;	;
 !"4"5"4"5"7 8 	#GC #& #++I,\^ #qtQqTN## #		#; ;# ## #s0   &C11D	C=D	1C:	=DD		D	c                    dD ]3  \  }}}| j                  ||      5  |dk(  r;| j                  t        d      5  t        ||       G d d             }d d d        nt        ||       G d d             }|dk(  r| j	                  d	|j
                         | j	                  d
|j
                         | j	                  d|j
                         | j	                  d|j
                         | j	                  d|j
                         n#|dk(  r| j                  d	|j
                         | j                  d
|j
                         | j                  d|j
                         | j                  d|j
                         | j                  d|j
                         n|dk(  r| j                  d	|j
                         | j	                  d
|j
                         | j	                  d|j
                         | j	                  d|j
                         | j	                  d|j
                         d d d        6 y # 1 sw Y   xY w# 1 sw Y   NxY w)N))FFneither)FT	exception)TFeq_only)TTboth)eqr  rp  z eq must be true if order is truec                       e Zd Zy!TestCase.test_eq_order.<locals>.CNr   r   r   r   r%   rv         r   r%   c                       e Zd Zyru  r   r   r   r   r%   z!TestCase.test_eq_order.<locals>.C      r   ro  r   __lt____le____gt____ge__rr  rq  )r2  rH   rI   r(   assertNotInr  rY   )r-   rs  r  resultr%   s        r   test_eq_orderzTestCase.test_eq_order  s   *
 $	C%RE6 51 C[(//
<^_ !"b6! ! 7!! !
 "E2  3 *((1::>((1::>((1::>((1::>((1::>6)h

;h

;h

;h

;h

;9,h

;((1::>((1::>((1::>((1::>9C C$	C! !C Cs#   IH;GI;I II	c                     t          G d d             }| j                   |d      j                  d       | j                  t        d      5   |        d d d        y # 1 sw Y   y xY w)Nc                   &    e Zd ZU  e       Zeed<   y))TestCase.test_field_no_default.<locals>.Cr8   Nr   r   r   rG   r8   r:   r;   r   r   r   r%   r  	  s    WAsr   r%   r   8__init__\(\) missing 1 required positional argument: 'x')r(   r)   r8   rH   r   r   s     r   test_field_no_defaultzTestCase.test_field_no_default  se    		 	 
	 	1###I%?@ 	 C	 	 	s   AA&c                 B   t               t         G fdd             }| j                  |j                          |d      }| j	                  |j                  d       |`| j                  |j                         | j                   |       j                         y )Nc                   .    e Zd ZU  eW        Zeed<   y)&TestCase.test_field_default.<locals>.CrE   r8   N)r   r   r   rG   r8   r   r;   r  s   r   r%   r    s    g.Av.r   r%   r   )r   r(   assertIsr8   r)   )r-   r%   r   rE   s      @r   test_field_defaultzTestCase.test_field_default  s    (		/ 	/ 
	/ 	acc7#bEb! Cacc7#aceeW%r   c                 @   t          G d d             }| j                  t              5   |        d d d         |d      }| j                  t	        |      d       t          G d d             } |dd      }| j                  t	        |      d       y # 1 sw Y   dxY w)Nc                   *    e Zd ZU  ed      Zeed<   y)$TestCase.test_not_in_repr.<locals>.CFrN   r8   Nr  r   r   r   r%   r  &      &As&r   r%   r   z&TestCase.test_not_in_repr.<locals>.C()c                   4    e Zd ZU  ed      Zeed<   eed<   y)r  Fr  r8   r   Nr  r   r   r   r%   z$TestCase.test_not_in_repr.<locals>.C.  s    &As&Fr      z*TestCase.test_not_in_repr.<locals>.C(y=20))r(   assertRaisesr   r)   rN   r   s      r   test_not_in_reprzTestCase.test_not_in_repr%  s    		' 	' 
	'y) 	C	bEa"JK		 	 
	 b"Ia"NO	 	s   BBc                 $   t          G d d             }| j                   |        |dd             | j                   |dd       |dd             | j                   |d       |dd             | j                   |dd       |dd             y )	Nc                   :    e Zd ZU dZeed<    edd      Zeed<   y)'TestCase.test_not_in_compare.<locals>.Cr   r8   F   )comparerE   r   N)r   r   r   r8   r:   r;   rG   r   r   r   r   r%   r  6  s    AsJ5!4As4r   r%   r   r  rC   r   r   r  r(   r)   r   r   s     r   test_not_in_comparezTestCase.test_not_in_compare5  s    		5 	5 
	5 	a2h'1b1Q8,AaD!Ar(+AaHa2h/r   c                     G d d      d}| j                  t        |      5  t         G d d             }d d d        | j                  t        |      5  t         G fdd             }d d d        | j                  t        |      5          d _        t         G fdd             }d d d        y # 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   y xY w)	Nc                       e Zd ZdZy)7TestCase.test_no_unhashable_default.<locals>.UnhashableNr   r   r   r   
Unhashabler  B      Hr   r  z-mutable default .* for field a is not allowedc                       e Zd ZU i Zeed<   y.TestCase.test_no_unhashable_default.<locals>.Ar%  N)r   r   r   r%  dictr;   r   r   r   Ar  G  s    4r   r  c                   *    e Zd ZU  W         Zeed<   yr  r   r   r   r%  r   r;   )r  s   r   r  z.TestCase.test_no_unhashable_default.<locals>.AL  s    #3%r   c                       yNr   r   r   r   r   r   z5TestCase.test_no_unhashable_default.<locals>.<lambda>U  r   r   c                        e Zd ZU W  Zeed<   yr  r  )
unhashables   r   r  z.TestCase.test_no_unhashable_default.<locals>.AV  s    #3#r   )rH   rI   r(   r   )r-   unhashable_rer  r  r  s      @@r   test_no_unhashable_defaultz#TestCase.test_no_unhashable_default@  s    	 	 H##J> 	  	
 ##J> 	&& & &	& ##J> 	$#J"+J$ $ $	$ 	$	 	
	& 	&	$ 	$s#   B9C%C9CCCc           	      d   dD ]  \  }| j                        5  t        d       G fdd             }|dk(  r+| j                  t         |d            t        d	             n/|d
k(  r*| j                  t         |d            t        d             d d d         y # 1 sw Y   xY w)N))TFrG   )TTrG   )FFabsent)FTr  )NFr  )NTrG   )r   r  Tr   c                   4    e Zd ZU  eW  W d      Zeed<   y))TestCase.test_hash_field_rules.<locals>.Cr   )r  r   rE   r8   Nr  )r  hash_s   r   r%   r  g  s    "7JAsJr   r%   rG   r   )r   r  r   )r2  r(   r)   r   )r-   r  r%   r  r  s      @@r   test_hash_field_ruleszTestCase.test_hash_field_rulesZ  s    . 	?)Uw 5': ?t,K K -K W$$$T!A$Zd<x'$$T!A$Zb:? ?	?? ?s   A<B&&B/	c                     t          G d d             }| j                  d |       j                         t          G d d             }| j                  d |d      j                         | j                  t	         |d            dddd	       y )
Nc                   *    e Zd ZU  ed      Zeed<   y).TestCase.test_init_false_no_default.<locals>.CFrM   r8   Nr  r   r   r   r%   r  w  r  r   r%   r8   c                   P    e Zd ZU eed<   dZeed<    ed      Zeed<   dZeed<   y	)
r  r8   r   r   Fr  r   r   tN)	r   r   r   r:   r;   r   rG   r   r  r   r   r   r%   z.TestCase.test_init_false_no_default.<locals>.C}  s(    FAsJ&As&AsKr   r   r   r   r   )r  r8   r   )r(   r~  r  r)   varsr   s     r   test_init_false_no_defaultz#TestCase.test_init_false_no_defaultt  s     
	' 	' 
	' 	acll+		 	 
	 	admm,ad2AA%>?r   c                    t          G d d             }t        |      }| j                  |t               |D ]G  }| j	                  t        |      t               | j                  |j                  |j                         I | j                  t        |      d       | j                  |d   j                  d       | j                  |d   j
                  t               | j                  t        |d             | j                  |d   j                          | j                  |d   j"                         | j                  |d   j                  d       | j                  |d   j
                  t$               | j'                  t)        |d             | j                  |d   j                          | j                  |d   j"                         | j                  |d   j                  d	       | j                  |d   j
                  t$               | j                  t        |d	             | j                  |d   j                          | j                  |d   j"                         y )
Nc                   R    e Zd ZU eed<    edd      Zeed<    ed      Zeed<   y)%TestCase.test_class_marker.<locals>.Cr8   FNrM   rE   r   r  r   )	r   r   r   r:   r;   rG   r   r   r   r   r   r   r%   r    s'    Ft4As4&As&r   r%   r   r   r8   rC   r   rM  r   )r(   r+   assertIsInstancetupler  rX   FieldrY   rP   r;   r)   r*   r:   assertFalserw   rv   rM   rN   r   assertIsNoner  )r-   r%   
the_fieldsfs       r   test_class_markerzTestCase.test_class_marker  s   		' 	' 
	'
 AY
 	j%0 	5AMM$q'5)MM!&&!"3"34	5 	Z!,A++S1A++S1C)A++,A++,A++S1A++S1'!S/*A++,A++,A++S1A++S1C)A++,A++,r   c                 F   t          G d d             }t          G d d|             }| j                  t        |      D cg c]  }|j                  |j                  f c}g d       t          G d d|             }| j                  t        |      D cg c]  }|j                  |j                  f c}g d       t          G d	 d
|             }| j                  t        |      D cg c]  }|j                  |j                  f c}g d       y c c}w c c}w c c}w )Nc                   8    e Zd ZU dZeed<   dZeed<   dZeed<   y)$TestCase.test_field_order.<locals>.BB:ar%  B:br  B:cr   N)r   r   r   r%  r   r;   r  r   r   r   r   r   r    s    AsNAsNAsNr   r   c                       e Zd ZU dZeed<   y)$TestCase.test_field_order.<locals>.CC:br  N)r   r   r   r  r   r;   r   r   r   r%   r        AsNr   r%   )r%  r  )r  r  )r   r  c                       e Zd ZU dZeed<   y)$TestCase.test_field_order.<locals>.DD:cr   N)r   r   r   r   r   r;   r   r   r   rb   r    r  r   rb   )r  r  r  r   r  c                   *    e Zd ZU dZeed<   dZeed<   y)$TestCase.test_field_order.<locals>.EE:ar%  E:ddN)r   r   r   r%  r   r;   r  r   r   r   Er    s    AsNAsNr   r  ))r%  r  r  r  )r  r  )r(   r)   r+   rP   rE   )r-   r   r%   r  rb   r  s         r   test_field_orderzTestCase.test_field_order  s   		 	 
	
 
	 	 
	 	vayA!166199-A(	)
 
	 	 
	 	vayA!166199-A(	)
 
	 	 
	 	vayA!166199-A(	)' B B Bs    DD*Dc                     t               t         G fdd             }| j                  t        |d             | j                  t        |d             | j	                  |j
                         | j                  |j                  d       y )Nc                   b    e Zd ZU eed<    ed      Zeed<   W  Zeed<    ed      Z	eed<   y	)
$TestCase.test_class_attrs.<locals>.Cr8   Fr  r   r   r   r  r  N)
r   r   r   r:   r;   rG   r   r   r   r  r  s   r   r%   r    s0    F&As&Av3'As'r   r%   r8   r   r   )r   r(   r  rw   r  r   r)   r  )r-   r%   rE   s     @r   test_class_attrszTestCase.test_class_attrs  ss     (		( 	( 
	( 	C)C)g&c"r   c                    t         g dgft        i ddift        t               t        dg      ffD ]  \  | j                        5  | j	                  t
        d d      5  t         G fdd             }d d d        | j	                  t
        d d      5  t         G fd	d             }d d d         G d
 d      | j	                  t
        d      5  t         G fdd             }d d d        t         G fdd             }t         G fdd             }d d d         y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   1xY w)NrC   r   typzmutable default z for field x is not allowedc                   "    e Zd ZU W  ZW ed<   y)8TestCase.test_disallowed_mutable_defaults.<locals>.Pointr8   N)r   r   r   r8   r;   )emptyr  s   r   Pointr    s    !&3r   r  z for field y is not allowedc                   "    e Zd ZU W  ZW ed<   y)r  r   N)r   r   r   r   r;   )	non_emptyr  s   r   r  z8TestCase.test_disallowed_mutable_defaults.<locals>.Point  s    !*3*r   c                       e Zd Zy);TestCase.test_disallowed_mutable_defaults.<locals>.SubclassNr   r   r   r   Subclassr    r   r   r  z7mutable default .*Subclass'> for field z is not allowedc                   ,    e Zd ZU  W         ZW ed<   y)r  r   N)r   r   r   r   r;   r  r  s   r   r  z8TestCase.test_disallowed_mutable_defaults.<locals>.Point  s    !)3+r   c                   2    e Zd ZU  W         ZeW     ed<   y)4TestCase.test_disallowed_mutable_defaults.<locals>.Cr   N)r   r   r   r   r   r;   r  s   r   r%   r     s    '*uAx},r   r%   c                   2    e Zd ZU  W         ZeW    ed<   y)r  r8   N)r   r   r   r8   r   r;   r  s   r   r%   z4TestCase.test_disallowed_mutable_defaults.<locals>.C  s    '/zAx}1r   )listr  setr2  rH   rI   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'*CE3s8&<&( )	2!C	 #& %2++J.>se D? -?@ ' ' ' '	' ++J.>se D? -?@ + + + +	+ *s)++J-J. , , , ,, - - - 2 2 2I%2 %2	)	2' '+ +, ,+%2 %2sT   E(D7?"E!E8)E!E83E7E <EEEEEE%	c                     G d d      t          G fdd             }        } ||      } ||      }| j                  ||       |j                  j                  j	                  ddg       | j                  ||       | j                  |j                  j                  ddg       | j                  |j                  |j                         y )Nc                       e Zd Zd Zy)<TestCase.test_deliberately_mutable_defaults.<locals>.Mutablec                     g | _         y 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 W  ed<   y)6TestCase.test_deliberately_mutable_defaults.<locals>.Cr8   Nr   r   r   r;   )r  s   r   r%   r    s    Jr   r%   rC   rM  )r(   r)   r8   r  extendr  )r-   r%   lsto1o2r  s        @r   "test_deliberately_mutable_defaultsz+TestCase.test_deliberately_mutable_defaults	  s    	 	 
	 	 
	 isVsVR 
q!fR !Q(bddBDD!r   c                 v    t                G d d             }| j                   |d      j                  d       y )Nc                       e Zd ZU eed<   y)#TestCase.test_no_options.<locals>.Cr8   Nr9   r   r   r   r%   r
     r<   r   r%   r=   r>   r   s     r   test_no_optionszTestCase.test_no_options  s5    		 	 
	 	2"%r   c                     t          G d d             }| j                   |dd      d       t          G d d             }| j                   |dd       |dd             y )	Nc                   "    e Zd ZU eed<   eed<   y)&TestCase.test_not_tuple.<locals>.Pointr8   r   Nr9   r   r   r   r  r  (  rJ  r   r  rC   rM  rC   rM  c                   "    e Zd ZU eed<   eed<   y)"TestCase.test_not_tuple.<locals>.Cr8   r   Nr9   r   r   r   r%   r  /  rJ  r   r%   r   )r(   r   )r-   r  r%   s      r   test_not_tuplezTestCase.test_not_tuple&  sh    		 	 
	 	E!QK0 
	 	 
	 	E!QK1a1r   c                    t          G d d             }t          G d d             }| j                   |ddd       |ddd             | j                   |dd	d      d
       | j                  t        d      5   |ddd      \  }}}d d d        t          G d d             }| j                   |ddd       |              y # 1 sw Y   <xY w)Nc                   ,    e Zd ZU eed<   eed<   eed<   y)2TestCase.test_not_other_dataclass.<locals>.Point3Dr8   r   r   Nr9   r   r   r   Point3Dr  8      FFFr   r  c                   ,    e Zd ZU eed<   eed<   eed<   y)/TestCase.test_not_other_dataclass.<locals>.DateyearmonthdayNr9   r   r   r   Dater  >  s    IJHr   r  i     r   rC   rM  )rC   rM  r   unpackr  r   c                   8    e Zd ZU dZeed<   dZeed<   dZeed<   y)4TestCase.test_not_other_dataclass.<locals>.Point3Dv1r   r8   r   r   N)r   r   r   r8   r:   r;   r   r   r   r   r   	Point3Dv1r!  M  s    AsJAsJAsJr   r"  r   )r(   r   rH   r   )r-   r  r  r8   r   r   r"  s          r   test_not_other_dataclassz!TestCase.test_not_other_dataclass5  s     
	 	 
	
 
	 	 
	
 	GD!Q/dAq1ABGAq!,i8 ##Ix8 	'aA&GAq!	'
 
	 	 
	 	GAq!,ik:	' 	's   9CCc                       G d d               fd}t          G fdd             } ||       t        dd       G fdd             } ||       y )	Nc                       e Zd Zy)-TestCase.test_function_annotations.<locals>.FNr   r   r   r   Fr&  V  r_   r   r'  c                 <   j                  | j                  d   t               j                  | j                  d   t               j                  | j                  d          j                  | j                  d   t               j                  | j                  d   t
               t        j                  | j                        }j                  |j                  d        t        |j                  j                               }t        |      }j                  |j                  d       t        |      }j                  |j                  d       j                  |j                   t               j                  |j"                  t        j$                  j&                         j                  |j(                  t        j$                  j*                         t        |      }j                  |j                  d       j                  |j                   t               j                  |j"                  t        j$                  j&                         j                  |j(                  t        j$                  j*                         t        |      }j                  |j                  d       j                  |j                          j                  |j(                  t        j$                  j*                         t        |      }j                  |j                  d       j                  |j                   t               j                  |j(                  t        j$                  j*                         j-                  t.        t        |       y )Nr3   jkr  r   r-   )r)   r;   r:   r   floatcomplexrs   rt   r   r  return_annotationr   ru   valuesr   rP   
annotationrE   	Parameterr  kindPOSITIONAL_OR_KEYWORDr  StopIteration)rr   rt   paramsrx   r'  r-   s       r   validate_classz:TestCase.test_function_annotations.<locals>.validate_classZ  s    S005s;S005s;S005q9S005u=S005w?  ))#,,7IMM)55t< )..5578FLEUZZ0LEUZZ-MMU--s3U]]G,=,=,C,CDUZZ):):)P)PQLEUZZ-MMU--s3U]]G,=,=,C,CDUZZ):):)P)PQLEUZZ-MMU--q1UZZ):):)P)PQLEUZZ-MMU--u5UZZ):):)P)PQmT6:r   c                   p    e Zd ZU eed<   eed<   W ZW  ed<    ed      Ze	ed<    edd	      Z
eed
<   y-TestCase.test_function_annotations.<locals>.Cr3   r)  r*  Nr  r  y      @      @FrE   rM   r   r   r   r   r:   r;   r   r*  rG   r  r+  r   r,  r'  r  s   r   r%   r8    6    FFAqH4(Au(T6Aw6r   r%   T)rh   r   c                   p    e Zd ZU eed<   eed<   W ZW  ed<    ed      Ze	ed<    edd	      Z
eed
<   yr7  r:  r;  s   r   r%   z-TestCase.test_function_annotations.<locals>.C  r<  r   r   )r-   r5  r%   r'  r  s   `  @@r   test_function_annotationsz"TestCase.test_function_annotationsT  sg    	 	C(	;V 
	7 	7 
	7 	q 
$D	1	7 	7 
2	7 	qr   c                    t          G d d             }| j                  t        d      5   |        d d d        | j                  d|j                         t          G d d             }| j                  t        d      5   |        d d d        | j                  d|j                         y # 1 sw Y   {xY w# 1 sw Y   2xY w)Nc                   *    e Zd ZU  ee      Zeed<   y)(TestCase.test_missing_default.<locals>.Cr  r8   Nr   r   r   rG   rQ   r8   r:   r;   r   r   r   r%   rA    s    )As)r   r%   3__init__\(\) missing 1 required positional argumentr8   c                       e Zd ZU eed<   y)(TestCase.test_missing_default.<locals>.Dr8   Nr9   r   r   r   rb   rE    r<   r   rb   r(   rH   r   r~  r  rd   s      r   test_missing_defaultzTestCase.test_missing_default  s     
	* 	* 
	*##I%:; 	 C	 	ajj)		 	 
	##I%:; 	 C	 	ajj)	 		 	   B,?B8,B58Cc                    t          G d d             }| j                  t        d      5   |        d d d        | j                  d|j                         t          G d d             }| j                  t        d      5   |        d d d        | j                  d|j                         y # 1 sw Y   {xY w# 1 sw Y   2xY w)Nc                   *    e Zd ZU  ee      Zeed<   y)0TestCase.test_missing_default_factory.<locals>.Cr   r8   NrB  r   r   r   r%   rK    s    1As1r   r%   rC  r8   c                   ,    e Zd ZU  eee      Zeed<   y)0TestCase.test_missing_default_factory.<locals>.DrD   r8   NrB  r   r   r   rb   rM    s    'BAsBr   rb   rF  rd   s      r   test_missing_default_factoryz%TestCase.test_missing_default_factory  s     
	2 	2 
	2##I%:; 	 C	 	ajj)		C 	C 
	C##I%:; 	 C	 	ajj)	 		 	rH  c                 B    | j                  dt        t                     y )NzMISSING_TYPE object)rY   rN   rQ   r   s    r   test_missing_reprzTestCase.test_missing_repr  s    +T'];r   c                 J   t          G d d             }| j                  t        |j                        dg       | j                   |d      j	                         d       | j                   |d      j
                  d       | j                   |d      j                  d       y )Nc                   :    e Zd ZU eed<   defdZedefd       Zy)7TestCase.test_dont_include_other_annotations.<locals>.Cr3   returnc                      yNr  r   r   s    r   r   z;TestCase.test_dont_include_other_annotations.<locals>.C.foo      r   c                      yNr   r   r   s    r   barz;TestCase.test_dont_include_other_annotations.<locals>.C.bar  s    r   N)r   r   r   r:   r;   r   propertyrZ  r   r   r   r%   rS    s,    FS S  r   r%   r3   r   r  r   )r(   r)   r  r;   r   rZ  r3   r   s     r   #test_dont_include_other_annotationsz,TestCase.test_dont_include_other_annotations  s    		 	 
	 	a//03%82a(2A&2"%r   c                    t          G d d             }| j                  t              5   |        d d d        t          G d d             }| j                  t              5   |        d d d         |d       t        d       G d d             } |        t          G d d             }| j                   |       j                  d	       | j                   |d
      j                  d       t        d       G d d             }| j                  t
              5   |        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                       e Zd Zd Zy)"TestCase.test_post_init.<locals>.Cc                     t               r   r   r   s    r   __post_init__z0TestCase.test_post_init.<locals>.C.__post_init__  
    !m#r   Nr   r   r   rb  r   r   r   r%   r_        $r   r%   c                   "    e Zd ZU dZeed<   d Zy)r_  r   r3   c                 6    | j                   dk(  r
t               y Nr   )r3   r   r   s    r   rb  z0TestCase.test_post_init.<locals>.C.__post_init__  s    66R<%-'  r   N)r   r   r   r3   r:   r;   rb  r   r   r   r%   z"TestCase.test_post_init.<locals>.C  s    AsK(r   r   Fr  c                       e Zd Zd Zy)r_  c                     t               r   ra  r   s    r   rb  z0TestCase.test_post_init.<locals>.C.__post_init__  rc  r   Nrd  r   r   r   r%   z"TestCase.test_post_init.<locals>.C  re  r   c                   "    e Zd ZU dZeed<   d Zy)r_  r   r8   c                 .    | xj                   dz  c_         y NrM  r~   r   s    r   rb  z0TestCase.test_post_init.<locals>.C.__post_init__      !r   Nr   r   r   r8   r:   r;   rb  r   r   r   r%   z"TestCase.test_post_init.<locals>.C      AsJr   r   rM  r  Tr   c                   "    e Zd ZU dZeed<   d Zy)r_  r   r8   c                 .    | xj                   dz  c_         y rm  r~   r   s    r   rb  z0TestCase.test_post_init.<locals>.C.__post_init__   rn  r   Nro  r   r   r   r%   z"TestCase.test_post_init.<locals>.C  rp  r   )r(   r  r   r)   r8   FrozenInstanceErrorr   s     r   test_post_initzTestCase.test_post_init  sJ   		$ 	$ 
	$ {+ 	C	 
	( 	( 
	(
 {+ 	C	 	
! 
		$ 	$ 
	$ 	
		 	 
	 	"1# 
$		 	 
 	 23 	C	 	M	 		 	:	 	s#   D.!D:E.D7:EEc                     G d d      }t          G d d|             }| j                   |       j                  d       t          G d d|             }| j                  t              5   |        d d d        t          G d d|             }| j                  t              5   |        d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)Nc                       e Zd Zd Zy)(TestCase.test_post_init_super.<locals>.Bc                     t               r   ra  r   s    r   rb  z6TestCase.test_post_init_super.<locals>.B.__post_init__  rc  r   Nrd  r   r   r   r   rw    s    $r   r   c                       e Zd Zd Zy)(TestCase.test_post_init_super.<locals>.Cc                     d| _         y rY  r~   r   s    r   rb  z6TestCase.test_post_init_super.<locals>.C.__post_init__  	    r   Nrd  r   r   r   r%   rz    s    r   r%   r   c                        e Zd Z fdZ xZS )rz  c                 "    t         |           y r   )superrb  r-   	__class__s    r   rb  z6TestCase.test_post_init_super.<locals>.C.__post_init__  s    %'r   )r   r   r   rb  __classcell__r  s   @r   r%   z(TestCase.test_post_init_super.<locals>.C  s    ( (r   c                       e Zd Zy)rz  Nr   r   r   r   r%   z(TestCase.test_post_init_super.<locals>.C  r&   r   )r(   r)   r8   r  r   r-   r   r%   s      r   test_post_init_superzTestCase.test_post_init_super  s    	$ 	$ 
	 	 
	 	" 
	( 	( 
	( {+ 	C	
 
	 	 
	 {+ 	C	 		 		 	s   )B3"B?3B<?Cc                     dt          G fdd             }| j                          |dd      }| j                  |j                  |j                  fd       | j                         y )NFc                   8    e Zd ZU eed<   eed<   e fd       Zy)/TestCase.test_post_init_staticmethod.<locals>.Cr8   r   c                  
    d y NTr   flags   r   rb  z=TestCase.test_post_init_staticmethod.<locals>.C.__post_init__*  s
     r   N)r   r   r   r:   r;   staticmethodrb  r  s   r   r%   r  &  s    FF r   r%   r   r  r   r  )r(   r  r)   r8   r   rv   )r-   r%   r   r  s      @r   test_post_init_staticmethodz$TestCase.test_post_init_staticmethod$  sb    		 	 
	 	aG!##qssV,r   c                     t          G d d             }| j                  |j                          |dd      }| j                  |j                  |j
                  fd       | j                  |j                         y )Nc                   6    e Zd ZU dZeed<   eed<   ed        Zy).TestCase.test_post_init_classmethod.<locals>.CFr8   r   c                     d| _         y r  r  r"  s    r   rb  z<TestCase.test_post_init_classmethod.<locals>.C.__post_init__:  s	    r   N)r   r   r   r  r:   r;   classmethodrb  r   r   r   r%   r  5  s#    DFF   r   r%   r   r  r  )r(   r  r  r)   r8   r   rv   r   s      r   test_post_init_classmethodz#TestCase.test_post_init_classmethod4  sd    		  	  
	  	 aG!##qssV,r   c                    t          G d d             }t          G d d             }t          G d d||             } |       }| j                  |j                         | j                  |j                         t          G d d             }t          G d	 d
             }t          G d d||             } |       }| j	                  |j                         | j                  |j                         y )Nc                       e Zd Zy)2TestCase.test_post_init_not_auto_added.<locals>.A0Nr   r   r   r   A0r  H  r&   r   r  c                   "    e Zd ZU dZeed<   d Zy)2TestCase.test_post_init_not_auto_added.<locals>.B0Fb_calledc                     d| _         y r  r  r   s    r   rb  z@TestCase.test_post_init_not_auto_added.<locals>.B0.__post_init__O  	     $r   Nr   r   r   r  boolr;   rb  r   r   r   B0r  L      "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                 0    t         |           d| _        y r  r  rb  r  r  s    r   rb  z@TestCase.test_post_init_not_auto_added.<locals>.C0.__post_init__U      %' $r   r   r   r   r  r  r;   rb  r  r  s   @r   r  r  R      "Hd"% %r   r  c                       e Zd Zd Zy)2TestCase.test_post_init_not_auto_added.<locals>.A1c                      y r   r   r   s    r   rb  z@TestCase.test_post_init_not_auto_added.<locals>.A1.__post_init__e  r   r   Nrd  r   r   r   A1r  c  s    r   r  c                   "    e Zd ZU dZeed<   d Zy)2TestCase.test_post_init_not_auto_added.<locals>.B1Fr  c                     d| _         y r  r  r   s    r   rb  z@TestCase.test_post_init_not_auto_added.<locals>.B1.__post_init__k  r  r   Nr  r   r   r   B1r  h  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                 0    t         |           d| _        y r  r  r  s    r   rb  z@TestCase.test_post_init_not_auto_added.<locals>.C1.__post_init__q  r  r   r  r  s   @r   r   r  n  r  r   r   )r(   rv   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_addedC  s    
 
	 	 
	 
	% 	% 
	%
 
	%R 	% 
	% D

#

# 
	 	 
	 
	% 	% 
	%
 
	%R 	% 
	% D$

#r   c                    t          G d d             } |d      }| j                  t        |      d       | j                  t        t	        |            d       | j                  t        |j
                        d       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d	       | j                  |j                  d
       |xj                  dz  c_        | j                  |j                  d        |d      }| j                  |j                  |j                  fd       | j                  |j                  d       | j                  |j                  d       | j                  |j                  d	       | j                  |j                  d
       y )Nc                   p    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<   y)"TestCase.test_class_var.<locals>.Cr8   r   r     r     w  r    sN)r   r   r   r:   r;   r   r   r   r  r  r  r   r   r   r%   r    sD    FAsK#Ax}##Ax}##Ax}##Ax#r   r%   r   z-TestCase.test_class_var.<locals>.C(x=5, y=10)rM  r  r  r  r  r  rC     r  r  r   )r(   r)   rN   r*   r+   r;   r   r  r  r  r8   r   r   s      r   test_class_varzTestCase.test_class_var~  sR   		$ 	$ 
	$ aDa"QRVAY+Q../3d#d#d#d#	qd#bE!##qssX.d#d#d#d#r   c                 b    t          G d d             }| j                  d|j                         y )Nc                       e Zd ZU ee   ed<   y)-TestCase.test_class_var_no_default.<locals>.Cr8   N)r   r   r   r   r:   r;   r   r   r   r%   r    s    }r   r%   r8   r(   r~  r  r   s     r   test_class_var_no_defaultz"TestCase.test_class_var_no_default  s/    		 	 
	 	ajj)r   c                     | j                  t        d      5  t         G d d             }| j                  d|j                         d d d        y # 1 sw Y   y xY w)Ncannot have a default factoryc                   0    e Zd ZU  ee      Zee   ed<   y)2TestCase.test_class_var_default_factory.<locals>.Cr   r8   Nr   r   r   rG   r:   r8   r   r;   r   r   r   r%   r        #(#=8C==r   r%   r8   rH   r   r(   r~  r  r   s     r   test_class_var_default_factoryz'TestCase.test_class_var_default_factory  sZ     ##I$CE 	.> > > S!**-	. 	. 	.   0AAc                     t          G d d             }| j                  |j                  d       t          G d d             }| j                  |j                  d       y )Nc                   "    e Zd ZU dZee   ed<   y)/TestCase.test_class_var_with_default.<locals>.Cr   r8   N)r   r   r   r8   r   r:   r;   r   r   r   r%   r    s    !Ax}!r   r%   r   c                   0    e Zd ZU  ed      Zee   ed<   y)r  r   r  r8   N)r   r   r   rG   r8   r   r:   r;   r   r   r   r%   z/TestCase.test_class_var_with_default.<locals>.C  s    $R0Ax}0r   r>   r   s     r   test_class_var_with_defaultz$TestCase.test_class_var_with_default  sX    		" 	" 
	"b!		1 	1 
	1b!r   c                 ,   t        d       G d d             } |d      }| j                  t         |d            d       | j                  t        t	        |            d       | j                  t        |j
                        d       | j                  |j                  d       | j                  |j                  d	       | j                  |j                  d
       |xj                  dz  c_        | j                  |j                  d        |d      }| j                  |j                  |j                  fd       | j                  |j                  d       | j                  |j                  d	       | j                  |j                  d
       y )NTr   c                   b    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	<   y
))TestCase.test_class_var_frozen.<locals>.Cr8   r   r   r  r   r  r  r  r  N)
r   r   r   r:   r;   r   r   r   r  r  r   r   r   r%   r    s:    FAsK#Ax}##Ax}##Ax}#r   r%   r   z4TestCase.test_class_var_frozen.<locals>.C(x=5, y=10)rM  r  r  r  rC   r  r  r  )r(   r)   rN   r*   r+   r;   r   r  r  r8   r   r   s      r   test_class_var_frozenzTestCase.test_class_var_frozen  s5   	$		$ 	$ 
 	$ aDad%[\VAY+Q../3d#d#d# 	
qd#bE!##qssX.d#d#d#r   c                 b    t          G d d             }| j                  d|j                         y )Nc                       e Zd ZU ee   ed<   y),TestCase.test_init_var_no_default.<locals>.Cr8   N)r   r   r   InitVarr:   r;   r   r   r   r%   r    s    s|Or   r%   r8   r  r   s     r   test_init_var_no_defaultz!TestCase.test_init_var_no_default  s/    		 	 
	 	ajj)r   c                     | j                  t        d      5  t         G d d             }| j                  d|j                         d d d        y # 1 sw Y   y xY w)Nr  c                   0    e Zd ZU  ee      Zee   ed<   y)1TestCase.test_init_var_default_factory.<locals>.Cr   r8   N)r   r   r   rG   r:   r8   r  r;   r   r   r   r%   r    s    "'"<73<<r   r%   r8   r  r   s     r   test_init_var_default_factoryz&TestCase.test_init_var_default_factory  sZ     ##I$CE 	.= = = S!**-	. 	. 	.r  c                     t          G d d             }| j                  |j                  d       t          G d d             }| j                  |j                  d       y )Nc                   "    e Zd ZU dZee   ed<   y).TestCase.test_init_var_with_default.<locals>.Cr   r8   N)r   r   r   r8   r  r:   r;   r   r   r   r%   r    s     Aws| r   r%   r   c                   0    e Zd ZU  ed      Zee   ed<   y)r  r   r  r8   N)r   r   r   rG   r8   r  r:   r;   r   r   r   r%   z.TestCase.test_init_var_with_default.<locals>.C  s    #B/Aws|/r   r>   r   s     r   test_init_var_with_defaultz#TestCase.test_init_var_with_default  sX    		! 	! 
	!b!		0 	0 
	0b!r   c                 t    t          G d d             } |d      }| j                  |j                  d       y )Nc                   6    e Zd ZU dZeed<   dZee   ed<   d Zy)!TestCase.test_init_var.<locals>.CNr8   
init_paramc                 2    | j                   |dz  | _         y y rm  r~   )r-   r  s     r   rb  z/TestCase.test_init_var.<locals>.C.__post_init__  s    66>'\DF "r   )	r   r   r   r8   r:   r;   r  r  rb  r   r   r   r%   r    s    AsM'+J+*r   r%   r   )r  r  r>   r   s      r   test_init_varzTestCase.test_init_var  s9    		* 	* 
	* b!r   c                    | j                  t        t           j                  t               | j                  t	        t        t                 d       | j                  t	        t        t
        t                    d       | j                  t	        t        t        t                    d       | j                  t	        t        t        t        z           d       y )Ndataclasses.InitVar[int]z%dataclasses.InitVar[typing.List[int]]zdataclasses.InitVar[list[int]]zdataclasses.InitVar[int | str])r)   r  r:   rX   rN   r   r  r   r   s    r   test_init_var_preserve_typez$TestCase.test_init_var_preserve_type   s    **C0 	gcl+-GHgd3i01@	Bgd3i019	;gc#g./9	;r   c                     t          G d d             } |dd      }| j                  t        |      ddi       t          G d d|             } |ddd	d
      }| j                  t        |      ddd       y )Nc                   (    e Zd ZU eed<   ee   ed<   y)0TestCase.test_init_var_inheritance.<locals>.Baser8   	init_baseN)r   r   r   r:   r;   r  r   r   r   r   r    s    Fs|#r   r   r   r   r8   c                   .    e Zd ZU eed<   ee   ed<   d Zy)-TestCase.test_init_var_inheritance.<locals>.Cr   init_derivedc                 T    | j                   |z   | _         | j                  |z   | _        y r   r8   r   )r-   r  r  s      r   rb  z;TestCase.test_init_var_inheritance.<locals>.C.__post_init__  s"    )+,.r   Nr   r   r   r:   r;   r  rb  r   r   r   r%   r    s    F!#,&/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     
	$ 	$ 
	$ BKa3(+		/ 	/ 
	/ b"b"a"56r   c                 *   t          G d d             } |d      } |d      }| j                  |j                  d       | j                  |j                  g        | j                  ||       | j	                  |j                  |j                         | j                  t         |ddg            ddgf       g t          G fdd             } |d      } |d      }| j                  |j                  d       | j                  |j                  g        | j                  ||       | j                  |j                  |j                         | j                  t         |ddg            ddgf       t          G d d             }| j                  t         |             d       | j                   |       j                  g        t        d	
       G d d             }| j                  t         |             g f       | j                  t         |             t        d             t          G d d             }| j                  t         |             g f       t          G d d             }| j                   |        |dg             y )Nc                   4    e Zd ZU eed<    ee      Zeed<   y)(TestCase.test_default_factory.<locals>.Cr8   r   r   N)r   r   r   r:   r;   rG   r  r   r   r   r   r%   r  (  s    FD1At1r   r%   r   r   rC   c                   <    e Zd ZU eed<    e fd      Zeed<   y)r  r8   c                       S r   r   r  s   r   r   z1TestCase.test_default_factory.<locals>.C.<lambda>:  s    A r   r   r   N)r   r   r   r:   r;   rG   r   r  r  s   r   r%   z(TestCase.test_default_factory.<locals>.C7  s    FI6At6r   c                   ,    e Zd ZU  eed      Zeed<   y)r  F)rF   rN   r8   Nr   r   r   rG   r  r8   r;   r   r   r   r%   z(TestCase.test_default_factory.<locals>.CF      Du=At=r   z*TestCase.test_default_factory.<locals>.C()Tr   c                   ,    e Zd ZU  eed      Zeed<   y)r  F)rF   r   r8   Nr	  r   r   r   r%   z(TestCase.test_default_factory.<locals>.CM  r
  r   r   c                   ,    e Zd ZU  eed      Zeed<   y)r  FrF   rM   r8   Nr	  r   r   r   r%   z(TestCase.test_default_factory.<locals>.CT  r
  r   c                   ,    e Zd ZU  eed      Zeed<   y)r  F)rF   r  r8   Nr	  r   r   r   r%   z(TestCase.test_default_factory.<locals>.CZ  s    D%@At@r   )	r(   r)   r8   r   assertIsNotastupler  rN   r   )r-   r%   c0c1r  s       @r   test_default_factoryzTestCase.test_default_factory&  s?   		2 	2 
	2 qTqTq!r"R rtt$1qc+a!X6 		7 	7 
	7 qTqTq!r"R bddBDD!1qc+a!X6 
	> 	> 
	>ac$PQ# 
t	$	> 	> 
%	>u-acDH- 
	> 	> 
	>u- 
	A 	A 
	Aaf%r   c                     t               t         G fdd             } |       j                   | j                  j                  d        |       j                   | j                  j                  d       y )Nc                   0    e Zd ZU  eW  d      Zeed<   y)5TestCase.test_default_factory_with_no_init.<locals>.CFr  r8   N)r   r   r   rG   r8   r  r;   factorys   r   r%   r  c  s    G%@At@r   r%   rC   rM  r   r(   r8   r)   
call_countr-   r%   r  s     @r   !test_default_factory_with_no_initz*TestCase.test_default_factory_with_no_init_  sd    &		A 	A 
	A 	
++Q/	++Q/r   c                 t   t               t         G fdd             } |       j                   | j                  j                  d       | j                   |d      j                  d       | j                  j                  d        |       j                   | j                  j                  d       y )Nc                   .    e Zd ZU  eW        Zeed<   y)BTestCase.test_default_factory_not_called_if_value_given.<locals>.Cr   r8   Nr  r  s   r   r%   r  q  s    73As3r   r%   rC   r   rM  r  r  s     @r   .test_default_factory_not_called_if_value_givenz7TestCase.test_default_factory_not_called_if_value_givenm  s    &		4 	4 
	4
 	
++Q/2"%++Q/	++Q/r   c                    t          G d d             }t          G d d|             }| j                   |       j                  i        | j                   |       j                  i        | j                   |       j                  d       t          G d d|             }| j                   |       j                  i        y )Nc                   *    e Zd ZU  ee      Zeed<   y)2TestCase.test_default_factory_derived.<locals>.Foor   r8   N)r   r   r   rG   r  r8   r;   r   r   r   Foor#    s    D1At1r   r$  c                       e Zd ZU dZeed<   y)2TestCase.test_default_factory_derived.<locals>.BarrC   r   Nr   r   r   r   r:   r;   r   r   r   Barr&        AsJr   r(  rC   c                       e Zd Zy)2TestCase.test_default_factory_derived.<locals>.BazNr   r   r   r   Bazr+    r&   r   r,  )r(   r)   r8   r   )r-   r$  r(  r,  s       r   test_default_factory_derivedz%TestCase.test_default_factory_derived~  s    		2 	2 
	2 
	# 	 
	 	"%"%!$		# 	 
	"%r   c                    t          G d d             } G d d|      }t          G d d|             } |dd      }| j                  |j                  |j                  fd	       | j	                  t
        d
      5  |j                   d d d         G d d|      } |dd      }| j                  |j                  |j                  fd       y # 1 sw Y   FxY w)Nc                       e Zd ZU eed<   y)3TestCase.test_intermediate_non_dataclass.<locals>.Ar8   Nr9   r   r   r   r  r0    r<   r   r  c                       e Zd ZU eed<   y)3TestCase.test_intermediate_non_dataclass.<locals>.Br   Nr9   r   r   r   r   r2        Fr   r   c                       e Zd ZU eed<   y)3TestCase.test_intermediate_non_dataclass.<locals>.Cr   Nr9   r   r   r   r%   r5    r<   r   r%   rC   r   )rC   r   zobject has no attributec                       e Zd ZU eed<   y)3TestCase.test_intermediate_non_dataclass.<locals>.Dr  Nr9   r   r   r   rb   r7    r3  r   rb   r  r   )r  r   )r(   r)   r8   r   rH   AttributeErrorr   )r-   r  r   r%   r   rb   r  s          r   test_intermediate_non_dataclassz(TestCase.test_intermediate_non_dataclass  s     
	 	 
		 	 
	 	 
	 aG!##qssV, ##N$=? 	CC	
	 	aG!##qssV,	 	s   :CCc                     | j                  t        d      5  t         G d d             }d d d        y # 1 sw Y   y xY w)Nr  c                   0    e Zd ZU  ee      Zee   ed<   y)1TestCase.test_classvar_default_factory.<locals>.Cr   r8   Nr  r   r   r   r%   r<    r  r   r%   rH   r   r(   r   s     r   test_classvar_default_factoryz&TestCase.test_classvar_default_factory  sB    ##I$CE 	>> > >	> 	> 	>   4=c                     G d d      }| j                  t        d             | j                  t        t                     | j                  t        |             | j                  t         |                    t         G d d             t         G fdd             } d      } ||d	      }| j	                  t                     | j	                  t        |             | j                  t        |j
                               | j	                  t        |j                               | j                  t        |j                               y )
Nc                       e Zd Zy)0TestCase.test_is_dataclass.<locals>.NotDataClassNr   r   r   r   NotDataClassrB    r_   r   rC  r   c                       e Zd ZU eed<   y)%TestCase.test_is_dataclass.<locals>.Cr8   Nr9   r   r   r   r%   rE    r<   r   r%   c                   &    e Zd ZU W  ed<   eed<   y)%TestCase.test_is_dataclass.<locals>.Dr  eNr   r   r   r;   r:   )r%   s   r   rb   rG    s    DFr   rb   r   r  )r  is_dataclassr:   r(   rv   r8   r  rH  )r-   rC  rb   r   r  r%   s        @r   test_is_dataclasszTestCase.test_is_dataclass  s   	 	 	a)c*+l34ln56		 	 
	 
	 	 
	 bEaGQ(Q(acc*+QSS)*acc*+r   c                 f    G d d      }| j                  t        |              |       } G d d      } |       }g |_        ||fD ]  }| j                  |      5  | j                  t        |             | j	                  t
        d      5  t        |       d d d        | j	                  t
        d      5  t        |       d d d        | j	                  t
        d      5  t        |d       d d d        d d d         y # 1 sw Y   jxY w# 1 sw Y   LxY w# 1 sw Y   ,xY w# 1 sw Y   xY w)	Nc                       e Zd Zd Zy)ATestCase.test_is_dataclass_when_getattr_always_returns.<locals>.Ac                      yr  r   )r-   keys     r   __getattr__zMTestCase.test_is_dataclass_when_getattr_always_returns.<locals>.A.__getattr__  rW  r   N)r   r   r   rQ  r   r   r   r  rN    s    r   r  c                       e Zd Zy)ATestCase.test_is_dataclass_when_getattr_always_returns.<locals>.BNr   r   r   r   r   rS    r_   r   r   )objz'should be called on dataclass instancesr   r~   )	r  rJ  rc   r2  rH   r   asdictr  replace)r-   r  r%  r   r  rT  s         r   -test_is_dataclass_when_getattr_always_returnsz6TestCase.test_is_dataclass_when_getattr_always_returns  s   	 	 	a)C	 	C!#a4 
	&C#& 	&  c!23 ++I7`a  3K ++I7`a !CL!++I7`a &C1%&	& 	&
	&
   ! !& &	& 	&sT   1D'DD'8DD'"D0D'DD'DD'D$ D''D0	c                    t          G d dt        j                               }| j                  t	        |              |t
        t              }| j                  t	        t        |                   | j                  t	        |             y )Nc                   "    e Zd ZU eed<   eed<   y)2TestCase.test_is_dataclass_genericalias.<locals>.AoriginargsN)r   r   r   rX   r;   r   r   r   r  rZ    s    LJr   r  )r(   typesGenericAliasrv   rJ  r  r:   rX   r-   r  r%  s      r   test_is_dataclass_genericaliasz'TestCase.test_is_dataclass_genericalias  sc    		"" 	 
	 	Q(dCLT!W-.Q(r   c           	          t          G d d             }| j                  t        |      t         |dd                   y )Nc                   "    e Zd ZU eed<   eed<   y):TestCase.test_helper_fields_with_class_instance.<locals>.Cr8   r   N)r   r   r   r:   r;   r+  r   r   r   r%   rc    s    FHr   r%   r   g        )r(   r)   r+   r   s     r   &test_helper_fields_with_class_instancez/TestCase.test_helper_fields_with_class_instance  s<     
	 	 
	 	F1Q9$56r   c                 f   | j                  t        d      5  t        d       d d d         G d d      }| j                  t        d      5  t        |       d d d        | j                  t        d      5  t         |              d d d        y # 1 sw Y   mxY w# 1 sw Y   ExY w# 1 sw Y   y xY w)Nzdataclass type or instancer   c                       e Zd Zy)0TestCase.test_helper_fields_exception.<locals>.CNr   r   r   r   r%   rg    r   r   r%   )rH   r   r+   r   s     r   test_helper_fields_exceptionz%TestCase.test_helper_fields_exception   s     ##I/KL 	1I	 	##I/KL 	1I	##I/KL 	13K	 		 		 		 	s#   BB5B'BB$'B0c                    t        j                         }	 t        t               |j                         }| j                  d|       | j                  d|       y # t        $ r!}t        j                  ||       Y d }~Zd }~ww xY w)N)filer8  rc   )	ioStringIOr+   r   r   	tracebackprint_exceptiongetvaluer~  )r-   stdoutexcprinted_tracebacks       r   *test_clean_traceback_from_fields_exceptionz3TestCase.test_clean_traceback_from_fields_exception  sq    	86N #OO-)+<=/1BC	  	8%%c77	8s   A 	B#A??Bc                    t          G d d             } |dd      }| j                  t        |      ddd       | j                  t        |      t        |             | j                  t        |      t        |             d|_        | j                  t        |      ddd       | j                  t        t        |            t               y )Nc                   "    e Zd ZU eed<   eed<   y)&TestCase.test_helper_asdict.<locals>.Cr8   r   Nr9   r   r   r   r%   rv    rJ  r   r%   rC   rM  r  r=   )r(   r)   rU  r  r8   r  rX   r  r   s      r   test_helper_asdictzTestCase.test_helper_asdict  s    		 	 
	 aG!!$45F1I.F1I."1$56d6!9ot,r   c                 
   t          G d d             }| j                  t        d      5  t        |       d d d        | j                  t        d      5  t        t               d d d        y # 1 sw Y   8xY w# 1 sw Y   y xY w)Nc                   "    e Zd ZU eed<   eed<   y)8TestCase.test_helper_asdict_raises_on_classes.<locals>.Cr8   r   Nr9   r   r   r   r%   rz  '  rJ  r   r%   dataclass instance)r(   rH   r   rU  r:   r   s     r   $test_helper_asdict_raises_on_classesz-TestCase.test_helper_asdict_raises_on_classes%  sz    		 	 
	 ##I/CD 	1I	##I/CD 	3K	 		 		 	   A-A9-A69Bc                 0   t          G d d             }g } |d|      }t        |      }| j                  |d   |       | j                  |d   |        |d      }t        |      }|d   j	                  d       | j                  |j
                  g        y )Nc                   :    e Zd ZU eed<    ee      Zee   ed<   y)2TestCase.test_helper_asdict_copy_values.<locals>.Cr8   r   r   N	r   r   r   r:   r;   rG   r  r   r   r   r   r   r%   r  1      F 6AtCy6r   r%   rC   r   )r(   rU  r)   r  appendr   )r-   r%   initialr   r  s        r   test_helper_asdict_copy_valuesz'TestCase.test_helper_asdict_copy_values0  s    		7 	7 
	7 aM1I3)3)aD1I	#ab!r   c                 h   t          G d d             t          G fdd             } |d dd            }t        |      }| j                  |ddddd	       | j                  t        |      t        |             d
|j                  _        | j                  t        |      ddd
dd	       y )Nc                   "    e Zd ZU eed<   eed<   y)2TestCase.test_helper_asdict_nested.<locals>.UserIdtokengroupNr9   r   r   r   UserIdr  @      JJr   r  c                   &    e Zd ZU eed<   W  ed<   y)0TestCase.test_helper_asdict_nested.<locals>.UserrP   rO   Nr   r  s   r   Userr  D      IJr   r  Joe{   rC   )r  r  rP   rO   rM  )r(   rU  r)   r  rO   r  )r-   r  ur  r  s       @r   test_helper_asdict_nestedz"TestCase.test_helper_asdict_nested?  s    		 	 
	 
	 	 
	 sA'1IUC!2LMNF1I.
U581+E%G 	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      }| j                  t        |      dd	d
ddddgd       | j                  t        |      dd	d
ddddfd       | j                  t        |      dd	d
dddddd       y )Nc                   "    e Zd ZU eed<   eed<   y)<TestCase.test_helper_asdict_builtin_containers.<locals>.UserrP   rO   Nr   r   r   r   r;   r:   r   r   r   r  r  Q      IGr   r  c                   ,    e Zd ZU eed<   eW     ed<   y)ATestCase.test_helper_asdict_builtin_containers.<locals>.GroupListrO   usersNr   r   r   r:   r;   r   r  s   r   	GroupListr  U      G:r   r  c                   0    e Zd ZU eed<   eW  df   ed<   y)BTestCase.test_helper_asdict_builtin_containers.<locals>.GroupTuplerO   .r  Nr   r   r   r:   r;   r	   r  s   r   
GroupTupler  Y      Gs##r   r  c                   0    e Zd ZU eed<   eeW  f   ed<   y)ATestCase.test_helper_asdict_builtin_containers.<locals>.GroupDictrO   r  Nr   r   r   r:   r;   r
   r   r  s   r   	GroupDictr  ]      GT	?"r   r  AlicerC   BobrM  r   r   secondr  )rO   r  r(   r)   rU  
r-   r  r  r  r%  r  glgtgdr  s
            @r   %test_helper_asdict_builtin_containersz.TestCase.test_helper_asdict_builtin_containersP  sI   		 	 
	 
	 	 
	 
	$ 	$ 
	$ 
	# 	# 
	# !Nq1a&!Aq6"qA34A'QR9SBGq9Q9S &T 	UA'QR9SBGq9Q9S &T 	UA7Z[B\LQYZC[9] &^ 	_r   c           
         t          G d d             t          G fdd             }| j                  t         | dg                  dddgii       | j                  t         | ddi                  ddddiii       y )	Nc                       e Zd ZU eed<   y)DTestCase.test_helper_asdict_builtin_object_containers.<locals>.Childr  Nr   r   r   r   r;   r   r   r   Childr  n      Ir   r  c                       e Zd ZU W  ed<   y)ETestCase.test_helper_asdict_builtin_object_containers.<locals>.ParentchildNr  r  s   r   Parentr  r      Lr   r  rC   r  r  rM  r  r-   r  r  s     @r   ,test_helper_asdict_builtin_object_containersz5TestCase.test_helper_asdict_builtin_object_containersm  s    		 	 
	 
	 	 
	 	uaSz 23gaSz5JKuaV} 563A-8PQr   c                    t          G d d             } |dd      }t        |t              }| j                  |t        ddg             | j	                  |t        |t                     d|_        t        |t              }| j                  |t        d	dg             | j                  t        |      t               y )
Nc                   "    e Zd ZU eed<   eed<   y).TestCase.test_helper_asdict_factory.<locals>.Cr8   r   Nr9   r   r   r   r%   r  z  rJ  r   r%   rC   rM  dict_factory)r8   rC   )r   rM  r=   )r8   r=   )r(   rU  r   r)   r  r8   r  rX   r-   r%   r   r  s       r   test_helper_asdict_factoryz#TestCase.test_helper_asdict_factoryy  s    		 	 
	 aG1;/K8(<=>F1;?@1;/KH(=>?d1g{+r   c                    t        dd      t         G fdd             } |d d |d dd	d
            d            }t        |      }| j                  |d dd dd	d
      dd      d       t        |t              }| j                  |d dd dd	d
      dd      d       | j                  t        |      t               | j                  t        |d   d         t               y )NTa b cc                   &    e Zd ZU eed<   W  ed<   y)1TestCase.test_helper_asdict_namedtuple.<locals>.Cr8   r   Nr   r  s   r   r%   r        FDr   r%   outerrC   innerr        rM  r  r  r   )r   r(   rU  r)   r   r  rX   )r-   r%   r   r  r  s       @r   test_helper_asdict_namedtuplez&TestCase.test_helper_asdict_namedtuple  s    sG$		 	 
	 gqAgqR}5q9:1I'"#A*1*+BB-%9$%#' 	 1;/'"#A*1*+BB-%9$%#' 	 	d1g{+d1S6!9o{3r   c                     t          G d d             }t        dd      } | |d      di      }| j                  t        |      d |d      dii       y )	Nc                       e Zd ZU eed<   y)5TestCase.test_helper_asdict_namedtuple_key.<locals>.Cr  N)r   r   r   r  r;   r   r   r   r%   r    s    Gr   r%   r  r%  zan ar   r  r%  )r(   r   r)   rU  )r-   r%   r  r   s       r   !test_helper_asdict_namedtuple_keyz*TestCase.test_helper_asdict_namedtuple_key  s[     
	 	 
	sC qy!nS1v;*:$;<r   c                 6    G d dt        dd            t         G fdd             } d      } ||      }t        |      }| j                  |d d	      i       | j	                  |d   |       | j                  |d   j                         d       y )
Nc                       e Zd Zd Zy)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      vvr   N)r   r   r   r  r   r   r   r  r        r   r  Tbaser%  c                       e Zd ZU W  ed<   y)9TestCase.test_helper_asdict_namedtuple_derived.<locals>.Cr  Nr  r  s   r   r%   r        Dr   r%   r  r  r  )r   r(   rU  r)   r  r  )r-   r%   r  r   r  r  s        @r   %test_helper_asdict_namedtuple_derivedz.TestCase.test_helper_asdict_namedtuple_derived  s    	
7C( 	 
	 	 
	 aDaD1IS!a&M*3#3*r   c                    t          G d d             }t        t              }|d   j                  d        ||      }t	        |      }| j                  |dddgii       | j                  |d   |j                  u       y )Nc                   "    e Zd ZU eeef   ed<   y)2TestCase.test_helper_asdict_defaultdict.<locals>.CmpNr   r   r   r   r   r   r;   r   r   r   r%   r        CI&&r   r%   r8   r  r  r  )r(   r   r  r  rU  r)   rv   r  )r-   r%   ddr   r  s        r   test_helper_asdict_defaultdictz'TestCase.test_helper_asdict_defaultdict  s}     
	' 	' 
	' 
3rH1ITC";/0$qtt+,r   c                    t          G d d             } |d      }| j                  t        |      d       | j                  t        |      t        |             | j                  t        |      t        |             d|_        | j                  t        |      d       | j                  t        t        |            t               y )Nc                   &    e Zd ZU eed<   dZeed<   y)'TestCase.test_helper_astuple.<locals>.Cr8   r   r   Nr   r   r   r   r%   r    r   r   r%   rC   )rC   r   r=   )rC   r=   )r(   r)   r  r  r   r  rX   r  r   s      r   test_helper_astuplezTestCase.test_helper_astuple  s    		 	 
	 aDV,WQZ0WQZ0W-d71:&.r   c                 
   t          G d d             }| j                  t        d      5  t        |       d d d        | j                  t        d      5  t        t               d d d        y # 1 sw Y   8xY w# 1 sw Y   y xY w)Nc                   "    e Zd ZU eed<   eed<   y)9TestCase.test_helper_astuple_raises_on_classes.<locals>.Cr8   r   Nr9   r   r   r   r%   r    rJ  r   r%   r{  )r(   rH   r   r  r:   r   s     r   %test_helper_astuple_raises_on_classesz.TestCase.test_helper_astuple_raises_on_classes  sz    		 	 
	 ##I/CD 	AJ	##I/CD 	CL	 		 		 	r}  c                 0   t          G d d             }g } |d|      }t        |      }| j                  |d   |       | j                  |d   |        |d      }t        |      }|d   j	                  d       | j                  |j
                  g        y )Nc                   :    e Zd ZU eed<    ee      Zee   ed<   y)3TestCase.test_helper_astuple_copy_values.<locals>.Cr8   r   r   Nr  r   r   r   r%   r    r  r   r%   rC   )r(   r  r)   r  r  r   )r-   r%   r  r   r  s        r   test_helper_astuple_copy_valuesz(TestCase.test_helper_astuple_copy_values  s    		7 	7 
	7 aMAJ1w'1w'aDAJ	!Ab!r   c                 P   t          G d d             t          G fdd             } |d dd            }t        |      }| j                  |d       | j                  t        |      t        |             d	|j                  _        | j                  t        |      d
       y )Nc                   "    e Zd ZU eed<   eed<   y)3TestCase.test_helper_astuple_nested.<locals>.UserIdr  r  Nr9   r   r   r   r  r      r  r   r  c                   &    e Zd ZU eed<   W  ed<   y)1TestCase.test_helper_astuple_nested.<locals>.UserrP   rO   Nr   r  s   r   r  r    r  r   r  r  r  rC   )r  )r  rC   rM  )r  )r  rM  )r(   r  r)   r  rO   r  )r-   r  r  r  r  s       @r   test_helper_astuple_nestedz#TestCase.test_helper_astuple_nested  s    		 	 
	 
	 	 
	 sA'AJ-.WQZ0
%67r   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      }| j                  t        |      dddgf       | j                  t        |      d       | j                  t        |      ddddf       y )Nc                   "    e Zd ZU eed<   eed<   y)=TestCase.test_helper_astuple_builtin_containers.<locals>.UserrP   rO   Nr  r   r   r   r  r    r  r   r  c                   ,    e Zd ZU eed<   eW     ed<   y)BTestCase.test_helper_astuple_builtin_containers.<locals>.GroupListrO   r  Nr  r  s   r   r  r    r  r   r  c                   0    e Zd ZU eed<   eW  df   ed<   y)CTestCase.test_helper_astuple_builtin_containers.<locals>.GroupTuplerO   .r  Nr  r  s   r   r  r
    r  r   r  c                   0    e Zd ZU eed<   eeW  f   ed<   y)BTestCase.test_helper_astuple_builtin_containers.<locals>.GroupDictrO   r  Nr  r  s   r   r  r    r  r   r  r  rC   r  rM  r   r  r  rC   r  rM  )r   )r  r  r(   r)   r  r  s
            @r   &test_helper_astuple_builtin_containersz/TestCase.test_helper_astuple_builtin_containers  s    		 	 
	 
	 	 
	 
	$ 	$ 
	$ 
	# 	# 
	# !Nq1a&!Aq6"qA34q<*D&EF&EFqLJ*W&XYr   c           
         t          G d d             t          G fdd             }| j                  t         | dg                  dgff       | j                  t         | ddi                  ddiff       y )Nc                       e Zd ZU eed<   y)ETestCase.test_helper_astuple_builtin_object_containers.<locals>.Childr  Nr  r   r   r   r  r  *  r  r   r  c                       e Zd ZU W  ed<   y)FTestCase.test_helper_astuple_builtin_object_containers.<locals>.Parentr  Nr  r  s   r   r  r  .  r  r   r  rC   rM  r  r  s     @r   -test_helper_astuple_builtin_object_containersz6TestCase.test_helper_astuple_builtin_object_containers)  s    		 	 
	 
	 	 
	 	qc
!34vi@q!f!67Aq6)Fr   c                 v   t          G d d             }t        dd      fd} |dd      }t        ||      }| j                  | dd             | j	                  |t        ||             d	|_        t        ||      }| j                  | d	d             | j                  t        |             y )
Nc                   "    e Zd ZU eed<   eed<   y)/TestCase.test_helper_astuple_factory.<locals>.Cr8   r   Nr9   r   r   r   r%   r  6  rJ  r   r%   NTzx yc                      |  S r   r   )r  r  s    r   ntz0TestCase.test_helper_astuple_factory.<locals>.nt;  s    s8Or   rC   rM  tuple_factoryr=   )r(   r   r  r)   r  r8   r  rX   )r-   r%   r  r   r  r  s        @r   test_helper_astuple_factoryz$TestCase.test_helper_astuple_factory5  s    		 	 
	 e$	aGAR(Bq!H%GAR89AR(Br1I&d1gr"r   c                 D   t        dd      t         G fdd             } |d d |d dd	d
            d            }t        |      }| j                  |d ddd      f       t        |t              }| j                  |d dd dd	d
      gd      g       y )Nr  r  c                   &    e Zd ZU eed<   W  ed<   y)2TestCase.test_helper_astuple_namedtuple.<locals>.Cr8   r   Nr   r  s   r   r%   r"  H  r  r   r%   r  rC   r  r  r  r  rM  )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_namedtupleF  s    sG$		 	 
	 gqAgqR}5q9:AJWa+BA&FGH AT*WaGQr2r]+CQ&GHIr   c                     t          G d d             }t        t              }|d   j                  d        ||      }t	        |      }| j                  |ddgif       | j                  |d   |u       y )Nc                   "    e Zd ZU eeef   ed<   y)3TestCase.test_helper_astuple_defaultdict.<locals>.Cr  Nr  r   r   r   r%   r&  X  r  r   r%   r8   r  r  r   )r(   r   r  r  r  r)   rv   )r-   r%   r  r   r  s        r   test_helper_astuple_defaultdictz(TestCase.test_helper_astuple_defaultdictU  su     
	' 	' 
	' 
3rHAJcB4[N+!B'r   c                     dt         t         di}t        dd|      }t        |      }| j                  ||       | j                  t	         |dd            ddd       y )Nr;   r  r%   r   rC   rM  )r:   rX   r(   r)   rU  r-   cls_dictrr   cls1s       r   test_dynamic_class_creationz$TestCase.test_dynamic_class_creationd  s^    %Ss';  3H% ~s#Aq	*!!,<=r   c                     t         t         dt        d      d}t        dd|      }t        |      }| j	                  ||       | j	                  t         |d            ddd       y )Nr  r   r  )r;   r   r%   r   rC   )r:   rG   rX   r(   r)   rU  r)  s       r   'test_dynamic_class_creation_using_fieldz0TestCase.test_dynamic_class_creation_using_fieldq  sa    -0s';q)
 3H% ~s#Q*:;r   c                 X   t          G d d             }g fd}||_         |dd      }| j                  dd          | j                  dd          | j                  dg fd	          | j                  d
g fd          | j                  d       | j                  dd          y )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<   y)&TestCase.test_init_in_order.<locals>.Cr%  r  Fr  r   r   r  r  r9  rH  r  N)r   r   r   r:   r;   rG   r  r  r   r  rH  r  r   r   r   r%   r1    sM    FWAsDu=At=D1At1151As1AsJr   r%   c                 ,    j                  ||f       y r   )r  )r-   rP   valuecallss      r   setattrz,TestCase.test_init_in_order.<locals>.setattr  s    LL$'r   r   rC   )r%  r   )r  rC   r   rM  r  r   )rH  r  )r  r  r  )r(   __setattr__r)   r~  )r-   r%   r5  r   r4  s       @r   test_init_in_orderzTestCase.test_init_in_order  s    		 	 
	 	(  aG58,58,#rE!H-#rE!H-5)58,r   c                    t          G d d             } |d      }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         | j	                  |j
                  d       | j                  d	|j                         | j	                  |j                  d       | j                  d|j                         | j	                  |j                  d       | j                  d|j                         | j	                  |j                  g        | j                  d|j                         | j	                  |j                  g        | j                  d|j                         | j                  d	|j                         | j	                  |j                  d       y )
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<   y)'TestCase.test_items_in_dicts.<locals>.Cr%  Fr  r  r   r   r  r9  r  r   rH  N)r   r   r   r:   r;   rG   r  r  r   r  rH  r   r   r   r%   r:    sA    FDu=At=D1At1151As1AsJr   r%   r   r%  r  r   r  r  rH  )
r(   r~  r  rY   r)   r  rH  r%  r  r   r   s      r   test_items_in_dictszTestCase.test_items_in_dicts  sX   		 	 
	 aDajj)ajj)ajj)c1::&a c1::&a c1::&a c1::&b!c1::&b!ajj)c1::&a r   c                     t          G d d             }| j                  |j                  d      j                  d       y )Nc                   (    e Zd ZU eed<   ed        Zy):TestCase.test_alternate_classmethod_constructor.<locals>.Cr8   c                     d} | |      S )Nr  r   )rr   filenamevalue_in_files      r   	from_filezDTestCase.test_alternate_classmethod_constructor.<locals>.C.from_file  s     !#=))r   N)r   r   r   r:   r;   r  rB  r   r   r   r%   r>    s    F* *r   r%   r@  r  )r(   r)   rB  r8   r   s     r   &test_alternate_classmethod_constructorz/TestCase.test_alternate_classmethod_constructor  s<     
	* 	* 
	* 	Z022B7r   c                 f   t          G d d             }| j                  t        |      d   j                         | j	                  t        t        |      d   j                        d       | j                  t        d      5  dt        |      d   j                  d<   d d d        y # 1 sw Y   y xY w)Nc                       e Zd ZU eed<   y)/TestCase.test_field_metadata_default.<locals>.Cr3   Nr9   r   r   r   r%   rF    r<   r   r%   r    does not support item assignmentr   test)r(   r  r+   metadatar)   r*   rH   r   r   s     r   test_field_metadata_defaultz$TestCase.test_field_metadata_default  s     
	 	 
	 	1../VAYq\223Q7##I$FH 	.,-F1IaL!!&)	. 	. 	.s   B''B0c                 "   | j                  t              5  t         G d d             }d d d        i t         G fdd             }| j                  t	        |      d   j
                         | j                  t        t	        |      d   j
                        d       dd<   | j                  t        t	        |      d   j
                        d       | j                  t	        |      d   j
                  d   d       | j                  t        d      5  dt	        |      d   j
                  d	<   d d d        d
dddt         G fdd             }| j                  t        t	        |      d   j
                        d       | j                  t	        |      d   j
                  d	   d
       | j                  t	        |      d   j
                  d   d       | j                  t	        |      d   j
                  d   d       dd<   | j                  t        t	        |      d   j
                        d       | j                  t	        |      d   j
                  d   d       | j                  t              5  t	        |      d   j
                  d    d d d        | j                  t        d      5  dt	        |      d   j
                  d	<   d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   y xY w)Nc                   *    e Zd ZU  ed      Zeed<   y)/TestCase.test_field_metadata_mapping.<locals>.Cr   rI  r3   Nr   r   r   rG   r3   r:   r;   r   r   r   r%   rM    s    *3*r   r%   c                   .    e Zd ZU  eW        Zeed<   yrM  rN  r3   NrO  r  s   r   r%   z/TestCase.test_field_metadata_mapping.<locals>.C      A&As&r   r   rC   r   rG  r   rH  r   42three)rH  rZ  r   c                   .    e Zd ZU  eW        Zeed<   yrQ  rO  rR  s   r   r%   z/TestCase.test_field_metadata_mapping.<locals>.C  rS  r   rZ  r  baz)
r  r   r(   r  r+   rI  r)   r*   rH   KeyError)r-   r%   r  s     @r   test_field_metadata_mappingz$TestCase.test_field_metadata_mapping  s    y) 	++ + +	+ 		' 	' 
	'1../VAYq\223Q7%VAYq\223Q71..u5q9##I$FH 	.,-F1IaL!!&)	.
 1		' 	' 
	'VAYq\223Q71..v6;1..u5t<1..q17;%VAYq\223Q71..u5q9x( 	)1IaL!!%(	) ##I$FH 	.,-F1IaL!!&)	. 	.I	+ 	+ 	. 	."	) 	)	. 	.s/   KK, K9:LK),K69LLc                     G d d      t          G fdd             }| j                  t        t        |      d   j                        d       | j                  t        |      d   j                  d   d       | j                  t              5  t        |      d   j                  d	    d d d        | j                  t        |      d   j                  d
   d       y # 1 sw Y   5xY w)Nc                       e Zd Zd Zd Zd Zy)DTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpacec                 :    | j                   j                  |       y r   )r  update)r-   kws     r   r   zMTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__init__  s    $$R(r   c                 &    |dk(  ryt        | |      S )Nxyzzyplugh)r  )r-   items     r   __getitem__zPTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__getitem__  s    7?"tT**r   c                 6    | j                   j                         S r   )r  __len__r   s    r   rf  zLTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__len__  s    }},,..r   N)r   r   r   r   rd  rf  r   r   r   SimpleNameSpacer\    s    )+
/r   rg  c                   <    e Zd ZU  e W  d            Zeed<   y)6TestCase.test_field_metadata_custom_mapping.<locals>.Cr   r  rN  r3   NrO  )rg  s   r   r%   ri  	  s    Ob$9:As:r   r%   r   rC   r%  r   r  ra  rb  )r(   r)   r*   r+   rI  r  r8  )r-   r%   rg  s     @r   "test_field_metadata_custom_mappingz+TestCase.test_field_metadata_custom_mapping  s    
	/ 
	/ 
	; 	; 
	; 	VAYq\223Q71..s3R8~. 	'1IaL!!#&	' 	1..w7A	' 	's   C""C+c                     t        d      t         G fddt                        } |d      }| j                  |j                  d       | j                  |j
                  d       t        |t              }y )Nr  c                   *    e Zd ZU W  ed<   dZeed<   y)5TestCase.test_generic_dataclasses.<locals>.LabeledBoxcontent	<unknown>labelN)r   r   r   r;   rp  r   r  s   r   
LabeledBoxrm    s    J$E3$r   rq  r=   ro  )r   r(   r   r)   rn  rp  r   r:   )r-   rq  boxAliasr  s       @r   test_generic_dataclassesz!TestCase.test_generic_dataclasses  sl    CL		% 	% 
	% nb)K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	      }| j                  t        |      d
        G d d|t        f         }|t           } |dd      }| j                  |j                         d       y )NSr  c                   (    e Zd ZU W ed<   W  ed<   y)-TestCase.test_generic_extending.<locals>.Baser8   r   Nr  )rv  r  s   r   r   rx  '  s    DDr   r   c                       e Zd ZU eed<   y)4TestCase.test_generic_extending.<locals>.DataDerived	new_fieldNr   r   r   r   DataDerivedrz  ,  s    Nr   r|  r   test1test2)r   r}  r~  c                       e Zd Zd Zy)7TestCase.test_generic_extending.<locals>.NonDataDerivedc                     | j                   S r   r   r   s    r   
new_methodzBTestCase.test_generic_extending.<locals>.NonDataDerived.new_method4  r  r   N)r   r   r   r  r   r   r   NonDataDerivedr  3  r  r   r  r         ?)	r   r(   r   r:   r   r)   r  r+  r  )r-   r   r|  rs  r   r  rv  r  s         @@r   test_generic_extendingzTestCase.test_generic_extending#  s    CLCL		71a4= 	 
	 
	$sAv, 	 
	C !Wg&%:;	T#q&\ 	 u%"cN-r   c                 b   t        d      t         G fddt                        }t        ddfdt           d fg|t
           t           fddi	      }| j                   |t
           d
d      j                  d        | j                   |t
           d
dd      j                  d       | j                   |t
           d
dd      j                  d       |   }| j                   |t
           d
d      j                  d
       | j                  |j                  ||t        t        f       y )Nr  c                       e Zd ZU W  ed<   y)-TestCase.test_generic_dynamic.<locals>.Parentr8   Nr  r  s   r   r  r  =  r  r   r  r  r   r   r   r=   )bases	namespacerC   rM  r   )r   r(   r   r  r   r:   r  r   r)   r   r8   __mro__r   )r-   r  r  rs  r  s       @r   test_generic_dynamiczTestCase.test_generic_dynamic:  s   CL		WQZ 	 
	w#qC!d3K(L&,Sk71:%>7TV-YjeCjA&(($/sAq!,..2sAq!,22B7asAq)++Q/(H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 ]E  }t        t        j                  dz         D ]"  }| j                  ||
      5  t        j                  t        j                  ||            }| j                  |j                  |j                         | j                  |j                  |j                         | j                  ||       d|_        t        j                  t        j                  ||            }| j                  |j                  |j                         | j                  |j                  |j                         d d d        % H y # 1 sw Y   4xY w)Nc                   &    e Zd ZU eed<   dZeed<   y)Pr8   r   r   Nr   r   r   r   r  r  M  r   r   r  c                   6    e Zd ZU eed<    edd      Zeed<   y)Qr8   r   Fr9  r   Nr   r   r   r:   r;   rG   r   r   r   r   r  r  Q  s    F151As1r   r  c                   :    e Zd ZU eed<    ee      Zee   ed<   y)Rr8   r   r   Nr  r   r   r   r  r  U  r  r   r  rC   rM  )rM  r   r  )sampleprotor=   )r(   r  r  r  r   rangepickleHIGHEST_PROTOCOLr2  loadsdumpsr)   r8   r  )r-   qsamplesr  r  
new_sampleanother_new_samples          r   test_dataclasses_pickleablez$TestCase.test_dataclasses_pickleableK  s   		 	 
	 
	2 	2 
	2 
	7 	7 
	7 aDQ41a!A$1Q41iA 
	EFv66:; 	E\\u\= E!'fll65.I!JJ$$VXXz||<$$VXXz||<$$VZ8#%JL)/fll:u6U)V&$$Z\\3E3G3GH$$VXX/A/C/CDE E	E
	EE Es   >DGGc                 J   t        ddd       G d d             }| j                  |j                  j                  d       dD ]+  }| j                  t	        ||      j
                  d|        - | j                  t        d      5   |        d d d        y # 1 sw Y   y xY w)	NT)r  r   rh   c                   "    e Zd ZU eed<   eed<   y).TestCase.test_dataclasses_qualnames.<locals>.Ar8   r   Nr9   r   r   r   r  r  i  rJ  r   r  r   )
r   rz  r{  r|  r}  r   r   __repr__r6  __delattr__z/TestCase.test_dataclasses_qualnames.<locals>.A.zA\.__init__\(\) missing)r(   r)   r   r   r  r   rH   r   )r-   r  functions      r   test_dataclasses_qualnamesz#TestCase.test_dataclasses_qualnamesh  s    	4	=	 	 
>	 	,,j9
 	~H WQ1>>Bqrzq{@|}	~ ##I/IJ 	C	 	 	s   BB"N)mr   r   r   r/   r4   r?   rK   rU   r[   re   rn   ry   r   r   r   r   r   r   r   r   r   r  r  r8  rF  r_  rm  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r>  rG  rN  rP  r\  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r-  r9  r>  rK  rW  r`  rd  rh  rs  rw  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r'  r,  r.  r7  r;  rC  rJ  rY  rj  rt  r  r  r  r  r   r   r   r!   r!      s3   ,,"?71G7
R"*X3jq,(,**(!"5"5$*8,B46l#2&CP
&"P 	0$4?4@&-B")H# +2Z"*&2;>DL***,<&-^>  9$v$8*	.
"$6*	.
""
;747&r00"&&-:>,6&4)7
D-	"H"_:
R,4B=+$-/	"8 Z4
G#"J(><-.!:8 .).VB2&..J"E:r   r!   c                       e Zd Zd Zd Zd Zy)TestFieldNoAnnotationc                     | j                  t        d      5  t         G d d             }d d d        y # 1 sw Y   y xY w)N)'f' is a field but has no type annotationc                       e Zd Z e       Zy)>TestFieldNoAnnotation.test_field_without_annotation.<locals>.CNr   r   r   rG   r  r   r   r   r%   r    	    Gr   r%   r=  r   s     r   test_field_without_annotationz3TestFieldNoAnnotation.test_field_without_annotation  sB    ##I$OQ 	  	 	 	r?  c                     t          G d d             }| j                  t        d      5  t          G d d|             }d d d        y # 1 sw Y   y xY w)Nc                       e Zd ZU eed<   y)UTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base.<locals>.Br  Nr9   r   r   r   r   r    r<   r   r   r  c                       e Zd Z e       Zy)UTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base.<locals>.CNr  r   r   r   r%   r    r  r   r%   r(   rH   r   r  s      r   4test_field_without_annotation_but_annotation_in_basezJTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base  s_    		 	 
	 ##I$OQ 	 A  	 	 	s   AAc                      G d d      }| j                  t        d      5  t         G d d|             }d d d        y # 1 sw Y   y xY w)Nc                       e Zd ZU eed<   y)cTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass.<locals>.Br  Nr9   r   r   r   r   r    r3  r   r   r  c                       e Zd Z e       Zy)cTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass.<locals>.CNr  r   r   r   r%   r    r  r   r%   r=  r  s      r   Btest_field_without_annotation_but_annotation_in_base_not_dataclasszXTestFieldNoAnnotation.test_field_without_annotation_but_annotation_in_base_not_dataclass  sR    	 	 ##I$OQ 	 A  	 	 	s	   ?AN)r   r   r   r  r  r  r   r   r   r  r    s    r   r  c                   Z    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y)TestDocStringc                 h    | j                  |j                  dd      |j                  dd             y )N  )r)   rV  )r-   r%  r  s      r   assertDocStrEqualzTestDocString.assertDocStrEqual  s*     	3+QYYsB-?@r   c                 b    t          G d d             }| j                  |j                  d       y )Nc                       e Zd ZU dZeed<   y)?TestDocString.test_existing_docstring_not_overridden.<locals>.CLorem ipsumr8   N)r   r   r   __doc__r:   r;   r   r   r   r%   r    s
    Fr   r%   r  )r(   r)   r  r   s     r   &test_existing_docstring_not_overriddenz4TestDocString.test_existing_docstring_not_overridden  s/    		 	 
	 	M2r   c                 b    t          G d d             }| j                  |j                  d       y )Nc                       e Zd Zy)1TestDocString.test_docstring_no_fields.<locals>.CNr   r   r   r   r%   r    r&   r   r%   zC()r(   r  r  r   s     r   test_docstring_no_fieldsz&TestDocString.test_docstring_no_fields  s/    		 	 
	 	qyy%0r   c                 b    t          G d d             }| j                  |j                  d       y )Nc                       e Zd ZU eed<   y)1TestDocString.test_docstring_one_field.<locals>.Cr8   Nr9   r   r   r   r%   r    r<   r   r%   zC(x:int)r  r   s     r   test_docstring_one_fieldz&TestDocString.test_docstring_one_field  s/    		 	 
	 	qyy*5r   c                 b    t          G d d             }| j                  |j                  d       y )Nc                   "    e Zd ZU eed<   eed<   y)2TestDocString.test_docstring_two_fields.<locals>.Cr8   r   Nr9   r   r   r   r%   r    rJ  r   r%   zC(x:int, y:int)r  r   s     r   test_docstring_two_fieldsz'TestDocString.test_docstring_two_fields  s0    		 	 
	 	qyy*;<r   c                 b    t          G d d             }| j                  |j                  d       y )Nc                   ,    e Zd ZU eed<   eed<   eed<   y)4TestDocString.test_docstring_three_fields.<locals>.Cr8   r   r   Nr   r   r   r:   r;   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  s0    		 	 
	
 	qyy*BCr   c                 b    t          G d d             }| j                  |j                  d       y )Nc                       e Zd ZU dZeed<   y)>TestDocString.test_docstring_one_field_with_default.<locals>.Cr   r8   Nr   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  s/    		 	 
	 	qyy,7r   c                 b    t          G d d             }| j                  |j                  d       y )Nc                   2    e Zd ZU dZee ed      f   ed<   y)CTestDocString.test_docstring_one_field_with_default_none.<locals>.CNr8   )r   r   r   r8   r   r:   rX   r;   r   r   r   r%   r    s    (,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  s0    		- 	- 
	- 	qyy*CDr   c                 b    t          G d d             }| j                  |j                  d       y )Nc                       e Zd ZU ee   ed<   y)2TestDocString.test_docstring_list_field.<locals>.Cr8   N)r   r   r   r   r:   r;   r   r   r   r%   r    s    CyLr   r%   zC(x:List[int])r  r   s     r   test_docstring_list_fieldz'TestDocString.test_docstring_list_field  s0    		 	 
	 	qyy*:;r   c                 b    t          G d d             }| j                  |j                  d       y )Nc                   0    e Zd ZU  ee      Zee   ed<   y)GTestDocString.test_docstring_list_field_with_default_factory.<locals>.Cr   r8   N)	r   r   r   rG   r  r8   r   r:   r;   r   r   r   r%   r    s     6AtCy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  s0    		7 	7 
	7 	qyy*DEr   c                 b    t          G d d             }| j                  |j                  d       y )Nc                       e Zd ZU eed<   y)3TestDocString.test_docstring_deque_field.<locals>.Cr8   N)r   r   r   r   r;   r   r   r   r%   r    s    Hr   r%   zC(x:collections.deque)r  r   s     r   test_docstring_deque_fieldz(TestDocString.test_docstring_deque_field  s0    		 	 
	 	qyy*BCr   c                 b    t          G d d             }| j                  |j                  d       y )Nc                   *    e Zd ZU  ee      Zeed<   y)HTestDocString.test_docstring_deque_field_with_default_factory.<locals>.Cr   r8   N)r   r   r   rG   r   r8   r;   r   r   r   r%   r    s    U3Au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  s0    		4 	4 
	4 	qyy*LMr   c                      G d dt               } G d d|      }t         G d d|             }| j                  |j                  d       y )Nc                       e Zd ZeZy)<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y)<TestDocString.test_docstring_with_no_signature.<locals>.BaseNr   r   r   r   r   r   	  r_   r   r   )	metaclassc                       e Zd Zy)9TestDocString.test_docstring_with_no_signature.<locals>.CNr   r   r   r   r%   r  	  r&   r   r%   )rX   r(   r  r  )r-   r  r   r%   s       r    test_docstring_with_no_signaturez.TestDocString.test_docstring_with_no_signature  sK    	4 		T 	 
	 	 
	 	qyy#.r   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r  r    sI    A316=D8E<FDN/r   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestInitc                 p    G d d      }t          G d d|             } |d      }| j                  |j                  d       | j                  dt	        |             t        d       G d	 d|             } |       }| j                  |j                  d       | j                  |j
                  d
       y )Nc                       e Zd Zd Zy)&TestInit.test_base_has_init.<locals>.Bc                     d| _         y Nr   r   r   s    r   r   z/TestInit.test_base_has_init.<locals>.B.__init__	  s	    r   Nr  r   r   r   r   r  	  s    r   r   c                       e Zd ZU dZeed<   y)&TestInit.test_base_has_init.<locals>.Cr   r8   Nr   r   r   r   r%   r	  	  r)  r   r%   r   r   Fr  c                       e Zd ZU dZeed<   y)r	  r   r8   Nr   r   r   r   r%   z&TestInit.test_base_has_init.<locals>.C	      AsKr   r   )r(   r)   r8   r~  r  r   )r-   r   r%   r   s       r   test_base_has_initzTestInit.test_base_has_init	  s    	 	 
	 	 
	bEb!d1g& 
		 	 
	Cb!c"r   c                     t        d       G d d             }| j                   |       j                  d       t        d       G d d             }| j                   |       j                  d       y )NFr  c                       e Zd ZU dZeed<   y) TestInit.test_no_init.<locals>.Cr   r3   N)r   r   r   r3   r:   r;   r   r   r   r%   r  %	  r)  r   r%   r   c                   "    e Zd ZU dZeed<   d Zy)r  rM  r3   c                     d| _         y Nr   r3   r   s    r   r   z)TestInit.test_no_init.<locals>.C.__init__-	  r|  r   N)r   r   r   r3   r:   r;   r   r   r   r   r%   z TestInit.test_no_init.<locals>.C*	  s    AsJr   r   r(   r)   r3   r   s     r   test_no_initzTestInit.test_no_init$	  sh    			 	 
	"			 	 
	 	"r   c                 Z   t          G d d             }| j                   |d      j                  d       t        d       G d d             }| j                   |d      j                  d	       t        d
       G d d             }| j                   |d      j                  d       y )Nc                       e Zd ZU eed<   d Zy))TestInit.test_overwriting_init.<locals>.Cr8   c                     d|z  | _         y rm  r~   r-   r8   s     r   r   z2TestInit.test_overwriting_init.<locals>.C.__init__8	      Qr   Nr   r   r   r:   r;   r   r   r   r   r%   r  5	      Fr   r%   r   r  Tr  c                       e Zd ZU eed<   d Zy)r  r8   c                     d|z  | _         y rm  r~   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y)r  r8   c                     d|z  | _         y rm  r~   r  s     r   r   z2TestInit.test_overwriting_init.<locals>.C.__init__F	  r  r   Nr  r   r   r   r%   z)TestInit.test_overwriting_init.<locals>.CC	  r  r   r   r   r>   r   s     r   test_overwriting_initzTestInit.test_overwriting_init1	  s     
	 	 
	 	1#			 	 
	 	1#			 	 
	 	1$r   c                      G d dt               }t         G d d|             }| j                   |d      j                  d       t         G d d|             }| j                   |d      j                  d       y )	Nc                       e Zd ZU eed<   y).TestInit.test_inherit_from_protocol.<locals>.Pr%  Nr9   r   r   r   r  r&  N	  r3  r   r  c                       e Zd ZU eed<   y).TestInit.test_inherit_from_protocol.<locals>.Cr%  Nr9   r   r   r   r%   r(  Q	  r<   r   r%   r   c                       e Zd Zd Zy).TestInit.test_inherit_from_protocol.<locals>.Dc                     |dz  | _         y rm  r  )r-   r%  s     r   r   z7TestInit.test_inherit_from_protocol.<locals>.D.__init__Y	  r  r   Nr  r   r   r   rb   r*  W	  s    r   rb   r   )r   r(   r)   r%  )r-   r  r%   rb   s       r   test_inherit_from_protocolz#TestInit.test_inherit_from_protocolJ	  sv    	 	 
	 	 
	 	1#		 	 
	 	1$r   N)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y)TestReprc                    t          G d d             }t          G d d|             } |d      }| j                  t        |      d       t          G d d|             }| j                  t         |             d	       t          G d
 d             }| j                  t        |j                  d            d       | j                  t        |j	                               d       y )Nc                       e Zd ZU eed<   y)TestRepr.test_repr.<locals>.Br8   Nr9   r   r   r   r   r1  a	  r<   r   r   c                       e Zd ZU dZeed<   y)TestRepr.test_repr.<locals>.Cr   r   Nr'  r   r   r   r%   r3  e	  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<   y)TestRepr.test_repr.<locals>.Dr  r8   Nr   r   r   r   rb   r5  l	  r  r   rb   z)TestRepr.test_repr.<locals>.D(x=20, y=10)c                   H    e Zd Ze G d d             Ze G d d             Zy)r3  c                       e Zd ZU eed<   y)TestRepr.test_repr.<locals>.C.Dr3   Nr9   r   r   r   rb   r8  s	  r   r   rb   c                       e Zd Zy)TestRepr.test_repr.<locals>.C.ENr   r   r   r   r  r:  v	  s    r   r  N)r   r   r   r(   rb   r  r   r   r   r%   zTestRepr.test_repr.<locals>.Cq	  s0        r   r   z$TestRepr.test_repr.<locals>.C.D(i=0)z!TestRepr.test_repr.<locals>.C.E())r(   r)   rN   rb   r  )r-   r   r%   r.   rb   s        r   	test_reprzTestRepr.test_repr`	  s    		 	 
	 
	 	 
	 aDa"LM		 	 
	ac$OP		 	 
	 	acc!f'MNacce&IJr   c                     t        d       G d d             }| j                  t         dt         |d                   t        d       G d d             }| j	                  t         |d            d       y )	NFr  c                       e Zd ZU eed<   y) TestRepr.test_no_repr.<locals>.Cr8   Nr9   r   r   r   r%   r>  ~	  r<   r   r%   z+.TestRepr.test_no_repr.<locals>.C object atr   c                       e Zd ZU eed<   d Zy)r>  r8   c                      y)NC-classr   r   s    r   r  z)TestRepr.test_no_repr.<locals>.C.__repr__	  s     r   Nr   r   r   r:   r;   r  r   r   r   r%   z TestRepr.test_no_repr.<locals>.C	  s    F!r   rA  )r(   rY   r   rN   r)   r   s     r   test_no_reprzTestRepr.test_no_repr|	  sw    			 	 
	
"MN1Q4j	" 
		! 	! 
	! 	adY/r   c                 T   t          G d d             }| j                  t         |d            d       t        d       G d d             }| j                  t         |d            d       t        d       G d	 d             }| j                  t         |d            d       y )
Nc                       e Zd ZU eed<   d Zy))TestRepr.test_overwriting_repr.<locals>.Cr8   c                      yNr8   r   r   s    r   r  z2TestRepr.test_overwriting_repr.<locals>.C.__repr__	  r   r   NrB  r   r   r   r%   rF  	  r   r   r%   r   r8   Tr  c                       e Zd ZU eed<   d Zy)rF  r8   c                      yrH  r   r   s    r   r  z2TestRepr.test_overwriting_repr.<locals>.C.__repr__	  r   r   NrB  r   r   r   r%   z)TestRepr.test_overwriting_repr.<locals>.C	  r   r   Fc                       e Zd ZU eed<   d Zy)rF  r8   c                      yrH  r   r   s    r   r  z2TestRepr.test_overwriting_repr.<locals>.C.__repr__	  r   r   NrB  r   r   r   r%   z)TestRepr.test_overwriting_repr.<locals>.C	  r   r   r   r   s     r   test_overwriting_reprzTestRepr.test_overwriting_repr	  s     
	 	 
	 	adS)			 	 
	 	adS)			 	 
	 	adS)r   N)r   r   r   r;  rC  rM  r   r   r   r.  r.  _	  s    K80 *r   r.  c                       e Zd Zd Zd Zy)TestEqc                    t        d       G d d             }| j                   |d       |d              |d      }| j                  ||       t        d       G d d             }| j                   |d      d       y )	NFrs  c                       e Zd ZU eed<   y)TestEq.test_no_eq.<locals>.Cr8   Nr9   r   r   r   r%   rS  	  r<   r   r%   r   r   c                       e Zd ZU eed<   d Zy)rS  r8   c                     |dk(  S rh  r   r   s     r   r   z#TestEq.test_no_eq.<locals>.C.__eq__	  s    {"r   Nr   r   r   r   r%   zTestEq.test_no_eq.<locals>.C	  s    F#r   r   )r(   r   r)   r   s      r   
test_no_eqzTestEq.test_no_eq	  s    	e		 	 
	AaD!A$'aDA 
e		# 	# 
	# 	1r"r   c                    t          G d d             }| j                   |d      d       | j                   |d      d       t        d       G d d             }| j                   |d      d       | j                   |d      d       t        d	       G d
 d             }| j                   |d      d       | j                   |d      d       y )Nc                       e Zd ZU eed<   d Zy)%TestEq.test_overwriting_eq.<locals>.Cr8   c                     |dk(  S r  r   r   s     r   r   z,TestEq.test_overwriting_eq.<locals>.C.__eq__	      z!r   Nr   r   r   r   r%   rY  	      F"r   r%   rC   r   TrQ  c                       e Zd ZU eed<   d Zy)rY  r8   c                     |dk(  S rV  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y)rY  r8   c                     |dk(  S rY  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_eq	  s     
	" 	" 
	" 	1q!AaD!$	d		" 	" 
	" 	1q!AaD!$	e		" 	" 
	" 	1q!AaD!$r   N)r   r   r   rV  ra  r   r   r   rO  rO  	  s    #"%r   rO  c                       e Zd Zd Zd Zd Zy)TestOrderingc                     t         t         G d d                    }| j                   |d      d       | j                   |d      d       | j	                   |d      d       | j                   |d      d       y )Nc                       e Zd ZU eed<   d Zy)5TestOrdering.test_functools_total_ordering.<locals>.Cr8   c                      | j                   |k\  S r   r~   r   s     r   rz  z<TestOrdering.test_functools_total_ordering.<locals>.C.__lt__	  s     vv&r   Nr   r   r   r:   r;   rz  r   r   r   r%   rf  	  s     F'r   r%   r   rC   )r   r(   rD  r4  rE  r5  r   s     r   test_functools_total_orderingz*TestOrdering.test_functools_total_ordering	  sq    			' 	' 
 
	' 	!b!QqT2&1Q4#!a(r   c                    t        d       G d d             }| j                  d|j                         | j                  d|j                         | j                  d|j                         | j                  d|j                         t        d       G d	 d             }| j                  d|j                         | j                  d|j                         | j                  d|j                         y )
NFr  c                       e Zd ZU eed<   y)%TestOrdering.test_no_order.<locals>.Cr8   Nr9   r   r   r   r%   rm  	  r<   r   r%   r{  rz  r}  r|  c                       e Zd ZU eed<   d Zy)rm  r8   c                      yr   r   r   s     r   rz  z,TestOrdering.test_no_order.<locals>.C.__lt__	  r   r   Nrh  r   r   r   r%   z%TestOrdering.test_no_order.<locals>.C	  r   r   r  r   s     r   test_no_orderzTestOrdering.test_no_order	  s    			 	 
 	 	1::.1::.1::.1::. 
		 	 
 	
 	1::.1::.1::.r   c                 $   | j                  t        d      5  t        d       G d d             }d d d        | j                  t        d      5  t        d       G d d             }d d d        | j                  t        d      5  t        d       G d	 d             }d d d        | j                  t        d
      5  t        d       G d d             }d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ZxY w# 1 sw Y   y xY w)NzACannot overwrite attribute __lt__.*using functools.total_orderingTr  c                       e Zd ZU eed<   d Zy).TestOrdering.test_overwriting_order.<locals>.Cr8   c                      y r   r   r   s    r   rz  z5TestOrdering.test_overwriting_order.<locals>.C.__lt__
  r   r   Nrh  r   r   r   r%   rs   
      r   r%   zACannot overwrite attribute __le__.*using functools.total_orderingc                       e Zd ZU eed<   d Zy)rs  r8   c                      y r   r   r   s    r   r{  z5TestOrdering.test_overwriting_order.<locals>.C.__le__
  r   r   N)r   r   r   r:   r;   r{  r   r   r   r%   z.TestOrdering.test_overwriting_order.<locals>.C	
  ru  r   zACannot overwrite attribute __gt__.*using functools.total_orderingc                       e Zd ZU eed<   d Zy)rs  r8   c                      y r   r   r   s    r   r|  z5TestOrdering.test_overwriting_order.<locals>.C.__gt__
  r   r   N)r   r   r   r:   r;   r|  r   r   r   r%   z.TestOrdering.test_overwriting_order.<locals>.C
  ru  r   zACannot overwrite attribute __ge__.*using functools.total_orderingc                       e Zd ZU eed<   d Zy)rs  r8   c                      y r   r   r   s    r   r}  z5TestOrdering.test_overwriting_order.<locals>.C.__ge__
  r   r   N)r   r   r   r:   r;   r}  r   r   r   r%   z.TestOrdering.test_overwriting_order.<locals>.C
  ru  r   r=  r   s     r   test_overwriting_orderz#TestOrdering.test_overwriting_order	  s5   ##I%GH 	 T"  #		 ##I%GH 	 T"  #		 ##I%GH 	 T"  #		 ##I%GH 	 T"  #		 	7	 		 		 		 	s/   C"C.C:?D"C+.C7:DDN)r   r   r   rj  rp  r|  r   r   r   rc  rc  	  s    ) /,#r   rc  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestHashc                     t        d       G d d             }| j                  t         |dd            t        d             y )NTr   c                   "    e Zd ZU eed<   eed<   y)$TestHash.test_unsafe_hash.<locals>.Cr8   r   Nr  r   r   r   r%   r  #
  rJ  r   r%   rC   r   )rC   r   r(   r)   r   r   s     r   test_unsafe_hashzTestHash.test_unsafe_hash"
  s@    	t	$	 	 
%	 	a5k*D,<=r   c           	           d } fd}t        g dd      D ]c  \  }\  }}}}} |||||d|        |||||d|        || ||       ||       ||      d|        || ||       ||       ||      d|       e y )Nc                     | y | ryy)N)r   r   r   )r3  s    r   non_boolz*TestHash.test_hash_rules.<locals>.non_bool*
  s    }r   c                    j                  | |||      5  |dk7  r9|rt        |||       G d d             }nt        |||       G d d             }|dk(  r;j                  dj                         j	                  |j                  d          n|d	k(  r|sj                  dj                         n|d
k(  r;j                  dj                         j                  |j                  d          n?|dk(  r:j                  t        d      5  t        |||       G d d             }d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N)caser   rs  rh   rp  )r   rs  rh   c                       e Zd Zd Zy)1TestHash.test_hash_rules.<locals>.test.<locals>.Cc                      yr  r   r   s    r   r   z:TestHash.test_hash_rules.<locals>.test.<locals>.C.__hash__9
      '(r   Nr   r   r   r   r%   r  7
      )r   r%   c                       e Zd Zy)r  Nr   r   r   r   r%   z1TestHash.test_hash_rules.<locals>.test.<locals>.C<
  rw  r   r7  r   r  noner   c                       e Zd Zd Zy)r  c                      yr  r   r   s    r   r   z:TestHash.test_hash_rules.<locals>.test.<locals>.C.__hash__W
  r  r   Nr   r   r   r   r%   z1TestHash.test_hash_rules.<locals>.test.<locals>.CU
  r  r   )	r2  r(   rY   r  assertIsNotNoner~  r  rH   r   )r  r   rs  rh   	with_hashr  r%   r-   s          r   rH  z&TestHash.test_hash_rules.<locals>.test2
  s[   4[R%+  - (?[( "{r&Q) ) R) #{r&Q! ! R! T>MM*ajj9((J)?@r\$((QZZ@v%MM*ajj9%%ajj&<={* //	;`a )"{r&Q) ) R))C(? (?B) )C(? (?s$   C>EE1EE	EE))FFFr  r  )FFTr  r  )FTFr  r  )FTTr7  r  )TFFr7  rp  )TFTr7  rp  )TTFr7  rp  )TTTr7  rp  rC   FT)r3  )	r-   r  rH  r  r   rs  rh   res_no_defined_hashres_defined_hashs	   `        r   test_hash_ruleszTestHash.test_hash_rules)
  s    	)	?b [d 	e 	[ 	gVDV;0CEU {B7JK{B7GH
 x,hrlHV<LeUhix,hrlHV<LdUef#	gr   c                 |   t          G d d             }| j                   |d       |d             | j                   |d       |d             t        d       G d d             }| j                   |d       |d             | j                  t         |d            t         |d                   t        dd	       G d
 d             }| j                   |d       |d             | j                   |d       |d             | j                  t         |d            t         |d                   y )Nc                       e Zd ZU eed<   d Zy) TestHash.test_eq_only.<locals>.Cr3   c                 4    | j                   |j                   k(  S r   r  r   s     r   r   z'TestHash.test_eq_only.<locals>.C.__eq__
      vv((r   Nr   r   r   r   r%   r  }
      F)r   r%   rC   r  Tr   c                       e Zd ZU eed<   d Zy)r  r3   c                 4    | j                   |j                   k(  S r   r  r   s     r   r   z'TestHash.test_eq_only.<locals>.C.__eq__
  r  r   Nr   r   r   r   r%   z TestHash.test_eq_only.<locals>.C
  r  r   r  )r   rs  c                       e Zd ZU eed<   d Zy)r  r3   c                 V    | j                   dk(  xr | j                   |j                   k(  S r  r  r   s     r   r   z'TestHash.test_eq_only.<locals>.C.__eq__
  s"    vv{8tvv'88r   Nr   r   r   r   r%   z TestHash.test_eq_only.<locals>.C
  s    F9r   r   )r(   r)   r   r   r   s     r   test_eq_onlyzTestHash.test_eq_onlyw
  s    
	) 	) 
	) 	1qt$AaD!A$' 
t	$	) 	) 
%	) 	1qv&adT!C&\2 
t	-	9 	9 
.	9 	1qt$AaD!A$'adT!C&\2r   c                    t        d       G d d             }| j                  t         |             t        d             t        d       G d d             }| j                  t         |             t        d             y )NTr   c                       e Zd Zy%TestHash.test_0_field_hash.<locals>.CNr   r   r   r   r%   r  
  r&   r   r%   r   r   c                       e Zd Zyr  r   r   r   r   r%   z%TestHash.test_0_field_hash.<locals>.C
  r&   r   r  r   s     r   test_0_field_hashzTestHash.test_0_field_hash
  sn    	$		 	 
 	acDH-	t	$	 	 
%	acDH-r   c                    t        d       G d d             }| j                  t         |d            t        d             | j                  t         |d            t        d             t        d	       G d
 d             }| j                  t         |d            t        d             | j                  t         |d            t        d             y )NTr   c                       e Zd ZU eed<   y%TestHash.test_1_field_hash.<locals>.Cr8   Nr9   r   r   r   r%   r  
  r<   r   r%   r  )r  r=   r=   r   c                       e Zd ZU eed<   yr  r9   r   r   r   r%   z%TestHash.test_1_field_hash.<locals>.C
  r<   r   r  r   s     r   test_1_field_hashzTestHash.test_1_field_hash
  s    	$		 	 
 	adT$Z0aed5k2	t	$	 	 
%	adT$Z0aed5k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 ]R  \  }}}}| j                  ||||	      5  ||t         G d
 d|             }nU|t        |       G d d|             }n8|t        |       G d d|             }nt        ||       G d d|             }|dk(  r3 |d      }| j                  t        d      5  t        |       d d d        n|dk(  r"| j                  t         |d            d       n_|dk(  r+| j                  |j                  t         j                         n/|dk(  r*| j                  t         |d            t        d             d d d        U y # 1 sw Y   xY w# 1 sw Y   mxY w)Nc                       e Zd Zd Zy)(TestHash.test_hash_no_args.<locals>.Basec                      yr   r   r   s    r   r   z1TestHash.test_hash_no_args.<locals>.Base.__hash__
  r   r   Nr   r   r   r   r   r  
  s    r   r   r  Fr   baseTr  )rh   rs  r  rl  c                       e Zd ZU eed<   y%TestHash.test_hash_no_args.<locals>.Cr3   Nr9   r   r   r   r%   r  
      r   r%   rQ  c                       e Zd ZU eed<   yr  r9   r   r   r   r%   z%TestHash.test_hash_no_args.<locals>.C
  r  r   r   c                       e Zd ZU eed<   yr  r9   r   r   r   r%   z%TestHash.test_hash_no_args.<locals>.C
  r  r   )rh   rs  c                       e Zd ZU eed<   yr  r9   r   r   r   r%   z%TestHash.test_hash_no_args.<locals>.C
  r  r   r   unhashable typer   r=   r  )	r   r2  r(   rH   r   r   r)   r  r   )r-   r   rh   rs  r  rl  r%   r   s           r   test_hash_no_argszTestHash.test_hash_no_args
  sn   	 	 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+FB48* VQ 'M>bjD  ^"%D  &Zf-D  . f4D  5 |+"A//	;LM  Q    '$$T!B%[#6)
 MM!**foo>($$T!B%[$u+>I'M 'M+<	MV   -'M 'Ms&   )BG.;G"BG."G+'G..G8	N)	r   r   r   r  r  r  r  r  r  r   r   r   r~  r~  !
  s&    >Kg\!3F	.3HMr   r~  c                   T    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y)
TestFrozenc                    t        d       G d d             } |d      }| j                  |j                  d       | j                  t              5  d|_        d d d        | j                  |j                  d       y # 1 sw Y   &xY w)NTr   c                       e Zd ZU eed<   y)!TestFrozen.test_frozen.<locals>.Cr3   Nr9   r   r   r   r%   r  
  r<   r   r%   r   r   )r(   r)   r3   r  rs  r   s      r   test_frozenzTestFrozen.test_frozen
  s|    	$		 	 
 	 bEb!23 	AC	b!	 	s   B  B	c                 j   t        d       G d d             } |       }| j                  t        |d             | j                  t              5  d|_        d d d        | j                  t        |d             | j                  t              5  |`d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)NTr   c                       e Zd Zy)'TestFrozen.test_frozen_empty.<locals>.CNr   r   r   r   r%   r  
  r&   r   r%   r3   r   )r(   r  rw   r  rs  r3   r   s      r   test_frozen_emptyzTestFrozen.test_frozen_empty	  s    	$		 	 
 	 CC)23 	AC	C)23 		 		 		 	s   BB)B&)B2c                    t        d       G d d             }t        d       G d d|             } |dd      }| j                  t              5  d	|_        d d d        | j                  t              5  d
|_        d d d        | j                  |j                  d       | j                  |j                  d       y # 1 sw Y   gxY w# 1 sw Y   NxY w)NTr   c                       e Zd ZU eed<   y)"TestFrozen.test_inherit.<locals>.Cr3   Nr9   r   r   r   r%   r    r<   r   r%   c                       e Zd ZU eed<   y)"TestFrozen.test_inherit.<locals>.Dr)  Nr9   r   r   r   rb   r    r<   r   rb   r   r   r   r  )r(   r  rs  r3   r)  r)   r-   r%   rb   r  s       r   test_inheritzTestFrozen.test_inherit  s    	$		 	 
 	 
$		 	 
 	 aH23 	AC	23 	AC	a b!	 		 	s   C 7C C	Cc                     t        d       G d d             }| j                  t        d      5  t          G d d|             }d d d        y # 1 sw Y   y xY w)NTr   c                       e Zd Zy)>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<   y)>TestFrozen.test_inherit_nonfrozen_from_empty_frozen.<locals>.Dr)  Nr9   r   r   r   rb   r  .  r   r   rb   r  rd   s      r   (test_inherit_nonfrozen_from_empty_frozenz3TestFrozen.test_inherit_nonfrozen_from_empty_frozen'  sb    	$		 	 
 	 ##I$[] 	A  	 	 	s   AAc                     t          G d d             }t          G d d|             } |d      }| j                  |j                  d       | j                  ||       y )Nc                       e Zd Zy)7TestFrozen.test_inherit_nonfrozen_from_empty.<locals>.CNr   r   r   r   r%   r  3  r&   r   r%   c                       e Zd ZU eed<   y)7TestFrozen.test_inherit_nonfrozen_from_empty.<locals>.Dr)  Nr9   r   r   r   rb   r  7  r<   r   rb   r   )r(   r)   r)  r  r  s       r   !test_inherit_nonfrozen_from_emptyz,TestFrozen.test_inherit_nonfrozen_from_empty2  sc    		 	 
	 
	 	 
	 aDa a#r   c           	      0   dD ]y  }| j                  |      5  t        d       G d d             }|r G d d|      }n|}| j                  t        d	      5  t         G d
 d|             }d d d        d d d        { y # 1 sw Y   xY w# 1 sw Y   xY w)NTFintermediate_classTr   c                       e Zd ZU eed<   y)8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.Cr3   Nr9   r   r   r   r%   r  D      Fr   r%   c                       e Zd Zy)8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.INr   r   r   r   Ir  I  r   r   r  r  c                       e Zd Zy)8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.DNr   r   r   r   rb   r  O  ry  r   rb   r2  r(   rH   r   r-   r  r%   r  rb   s        r   "test_inherit_nonfrozen_from_frozenz-TestFrozen.test_inherit_nonfrozen_from_frozenA  s    "/ 	1CD $'  ( &$A$A++I,ce A   	  s$   A BB -B B	BB	c           	      0   dD ]y  }| j                  |      5  t         G d d             }|r G d d|      }n|}| j                  t        d      5  t        d	       G d
 d|             }d d d        d d d        { y # 1 sw Y   xY w# 1 sw Y   xY w)Nr  r  c                       e Zd ZU eed<   y)8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.Cr3   Nr9   r   r   r   r%   r  V  r  r   r%   c                       e Zd Zy)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y)8TestFrozen.test_inherit_frozen_from_nonfrozen.<locals>.DNr   r   r   r   rb   r  a  ry  r   rb   r  r  s        r   "test_inherit_frozen_from_nonfrozenz-TestFrozen.test_inherit_frozen_from_nonfrozenS  s    "/ 	1CD    &$A$A++I,ce d+A  , 	  s#   :BB -B B	BB	c                 :   dD ]~  }| j                  |      5   G d d      }|r G d d|      }n|}t        d       G d	 d
|             }d d d         d      }| j                  t              5  d|_        d d d         y # 1 sw Y   9xY w# 1 sw Y   xY w)Nr  r  c                       e Zd Zy)4TestFrozen.test_inherit_from_normal_class.<locals>.CNr   r   r   r   r%   r  h  rl   r   r%   c                       e Zd Zy)4TestFrozen.test_inherit_from_normal_class.<locals>.INr   r   r   r   r  r  l  r   r   r  Tr   c                       e Zd ZU eed<   y)4TestFrozen.test_inherit_from_normal_class.<locals>.Dr3   Nr9   r   r   r   rb   r  p  r  r   rb   r   r   )r2  r(   r  rs  r3   )r-   r  r%   r  rb   r  s         r   test_inherit_from_normal_classz)TestFrozen.test_inherit_from_normal_classe  s    "/ 	1CD   &$A$A$'  ( "A""#67  	  s   5B2BB	B	c                 <   t        d       G d d             } G d d|      } |d      }| j                  |j                  d       | j                  |j                  d       d|_        | j                  t              5  d	|_        d d d        | j                  t              5  d	|_        d d d        | j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  t              5  |`d d d        | j                  |j                  d       | j                  t              5  |`d d d        | j                  |j                  d       |`| j                  t        |d
             | j                  t              5 }|`d d d        | j                  j                  t               y # 1 sw Y   YxY w# 1 sw Y   AxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   \xY w)NTr   c                   &    e Zd ZU eed<   dZeed<   y)4TestFrozen.test_non_frozen_normal_derived.<locals>.Dr8   r   r   Nr   r   r   r   rb   r  {  s    FAsKr   rb   c                       e Zd Zy)4TestFrozen.test_non_frozen_normal_derived.<locals>.SNr   r   r   r   rv  r    r_   r   rv  r   r   r   cached)r(   r)   r8   r   r  r  rs  r  rw   r8  assertNotIsInstancerp  r-   rb   rv  r  cms        r   test_non_frozen_normal_derivedz)TestFrozen.test_non_frozen_normal_derivedx  s    
$		 	 
 		 	 aDa b! 23 	AC	23 	AC	a b!4(23 		a 23 		b!HH-.~. 	"	  /BC%	 		 		 		 	
	 	s<   G &G-G:H4H G*-G7:HHHc                    t        d       G d d             } G d d|      } |       }| j                  t        |d             d|_        | j	                  |j                  d       |`| j                  t        |d             | j                  t              5 }|`d d d        | j                  j                  t               y # 1 sw Y   *xY w)	NTr   c                       e Zd Zy)FTestFrozen.test_non_frozen_normal_derived_from_empty_frozen.<locals>.DNr   r   r   r   rb   r    r&   r   rb   c                       e Zd Zy)FTestFrozen.test_non_frozen_normal_derived_from_empty_frozen.<locals>.SNr   r   r   r   rv  r    r_   r   rv  r8   r   )
r(   r  rw   r8   r)   r  r8  r   rp  rs  r  s        r   0test_non_frozen_normal_derived_from_empty_frozenz;TestFrozen.test_non_frozen_normal_derived_from_empty_frozen  s    	$		 	 
 		 	 CC)a CC)~. 	"	  /BC	 	s   CCc                    | j                  t        d      5  t        d       G d d             }d d d        | j                  t        d      5  t        d       G d d             }d d d        t        d       G d	 d             }| j                   |d
      j                  d       y # 1 sw Y   }xY w# 1 sw Y   QxY w)Nz&Cannot overwrite attribute __setattr__Tr   c                       e Zd ZU eed<   d Zy)-TestFrozen.test_overwriting_frozen.<locals>.Cr8   c                      y r   r   r   s    r   r6  z9TestFrozen.test_overwriting_frozen.<locals>.C.__setattr__  r   r   Nr   r   r   r:   r;   r6  r   r   r   r%   r    ru  r   r%   z&Cannot overwrite attribute __delattr__c                       e Zd ZU eed<   d Zy)r  r8   c                      y r   r   r   s    r   r  z9TestFrozen.test_overwriting_frozen.<locals>.C.__delattr__  r   r   N)r   r   r   r:   r;   r  r   r   r   r%   z-TestFrozen.test_overwriting_frozen.<locals>.C  ru  r   Fc                       e Zd ZU eed<   d Zy)r  r8   c                 (    |dz  | j                   d<   y )NrM  r8   )r  )r-   rP   r3  s      r   r6  z9TestFrozen.test_overwriting_frozen.<locals>.C.__setattr__  s    %*QYc"r   Nr  r   r   r   r%   z-TestFrozen.test_overwriting_frozen.<locals>.C  s    F/r   r   r  )rH   r   r(   r)   r8   r   s     r   test_overwriting_frozenz"TestFrozen.test_overwriting_frozen  s    ##I$LN 	d#  $	 ##I$LN 	d#  $	 
%	 	/ 	/ 
!	/ 	2"%+	 		 	s   B-B9-B69Cc                     t        d       G d d             }t         |d             | j                  t        d      5  t         |i              d d d        y # 1 sw Y   y xY w)NTr   c                       e Zd ZU eed<   y)&TestFrozen.test_frozen_hash.<locals>.Cr8   N)r   r   r   r   r;   r   r   r   r%   r    r<   r   r%   r   r  )r(   r   rH   r   r   s     r   test_frozen_hashzTestFrozen.test_frozen_hash  s^    	$		 	 
 	
 	QqT
 ##I/@A 	2K	 	 	s   AA%N)r   r   r   r  r  r  r  r  r  r  r  r  r	  r  r  r   r   r   r  r  
  sA    	"""	$$$&#DJD&&2r   r  c                   h   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y")#	TestSlotsc                    t          G d d             }| j                  t        d      5   |        d d d         |d      }| j                  |j                  d       d|_        | j                  |j                  d       | j                  t
        d      5  d|_        d d d        y # 1 sw Y   wxY w# 1 sw Y   y xY w)Nc                       e Zd ZU dZeed<   y) TestSlots.test_simple.<locals>.Cr~   r8   Nr   r   r   	__slots__r   r;   r   r   r   r%   r        IFr   r%   r  r   r   z'C' object has no attribute 'y')r(   rH   r   r)   r8   r8  r   r   s      r   test_simplezTestSlots.test_simple  s    		 	 
	 ##I$_a 	C	
 bEb!a  ##N4UV 	AC	 		 		 	s   B(B4(B14B=c                     t          G d d             }t          G d d|             } |dd      }| j                  |j                  |j                  fd       d|_        y )	Nc                       e Zd ZU dZeed<   y)0TestSlots.test_derived_added_field.<locals>.Baser~   r8   Nr  r   r   r   r   r#    r  r   r   c                   "    e Zd ZU eed<   eed<   y)3TestSlots.test_derived_added_field.<locals>.Derivedr8   r   Nr9   r   r   r   Derivedr%    rJ  r   r&  rC   rM  r  r   )r(   r)   r8   r   r   )r-   r   r&  r  s       r   test_derived_added_fieldz"TestSlots.test_derived_added_field  sf    		 	 
	 
	d 	 
	 AqM!##qssV, r   c                 h   t        d       G d d             } |dd      }| j                  |j                  |j                  fd       d|_        d	|_        | j                  |j                  |j                  fd
       | j	                  t
        d      5  d|_        d d d        y # 1 sw Y   y xY w)NTrg   c                   "    e Zd ZU eed<   eed<   y))TestSlots.test_generated_slots.<locals>.Cr8   r   Nr9   r   r   r   r%   r+    rJ  r   r%   rC   rM  r  r   r  r  z'C' object has no attribute 'z'r   )r(   r)   r8   r   rH   r8  r   r   s      r   test_generated_slotszTestSlots.test_generated_slots  s    			 	 
	 aG!##qssV,!##qssV,##N4UV 	AC	 	 	s   B((B1c                     | j                  t        d      5  t        d       G d d             }d d d        y # 1 sw Y   y xY w)Nz^C already specifies __slots__$Tr)  c                       e Zd ZU dZeed<   y)5TestSlots.test_add_slots_when_slots_exists.<locals>.Cr~   r8   N)r   r   r   r  r:   r;   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  sD    ##I/PQ 	T"  #	 	 		   :Ac                     G d d      } G d d|      } G d d|      } G d d|      }t        d	
       G d d|             }| j                  |j                  d       t        d	
       G d d|             }| j                  |j                  d       t          G d d|             }| j                  d|j                         y )Nc                       e Zd ZdhZy)2TestSlots.test_generated_slots_value.<locals>.Rootr8   Nr   r   r   r  r   r   r   Rootr4    	    Ir   r6  c                       e Zd ZdddZy)3TestSlots.test_generated_slots_value.<locals>.Root2z...r  )r*  r)  Nr5  r   r   r   Root2r9    s    #"-Ir   r:  c                       e Zd ZdgZy)3TestSlots.test_generated_slots_value.<locals>.Root3hNr5  r   r   r   Root3r<     r7  r   r>  c                       e Zd ZdZy)3TestSlots.test_generated_slots_value.<locals>.Root4aaNr5  r   r   r   Root4r@  #  s    Ir   rB  Tr)  c                   ,    e Zd ZU eed<   eed<   eed<   y)2TestSlots.test_generated_slots_value.<locals>.Baser   r)  r=  Nr  r   r   r   r   rD  &  r  r   r   r  c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)5TestSlots.test_generated_slots_value.<locals>.DerivedrA  r8   r   r*  r=  N)r   r   r   r+  r;   r   r:   r   r   r   r&  rF  .  s    IFFFFr   r&  r  c                       e Zd ZU eed<   y)<TestSlots.test_generated_slots_value.<locals>.AnotherDerivedr   Nr9   r   r   r   AnotherDerivedrH  8  r<   r   rI  r  )r(   r)   r  r~  r  )r-   r6  r:  r>  rB  r   r&  rI  s           r   test_generated_slots_valuez$TestSlots.test_generated_slots_value  s    	 		.D 	.	E 		E 	 
		5 	 
	
 	1			d 	 
	 	**G4		T 	 
	 	n&=&=>r   c                      G d d      } G d d|      }| j                  t        d      5  t        d       G d d	|             }d d d        y # 1 sw Y   y xY w)
Nc                       e Zd Z edg      Zy)=TestSlots.test_cant_inherit_from_iterator_slots.<locals>.Rootr%  N)r   r   r   r   r  r   r   r   r6  rM  @  s    cUIr   r6  c                       e Zd ZdZy)>TestSlots.test_cant_inherit_from_iterator_slots.<locals>.Root2r  Nr5  r   r   r   r:  rO  C  s    Ir   r:  z%^Slots of 'Root' cannot be determinedTr)  c                       e Zd ZU eed<   y):TestSlots.test_cant_inherit_from_iterator_slots.<locals>.Cr8   Nr9   r   r   r   r%   rR  J  r   r   r%   r=  )r-   r6  r:  r%   s       r   %test_cant_inherit_from_iterator_slotsz/TestSlots.test_cant_inherit_from_iterator_slots>  sc    	$ 	$	 D 	  ##3
 	 T"E  #	 	 	s   AAc                      G d d      }t        |d      }| j                  ||       | j                  t        |d             | j	                  t        |d             y )Nc                       e Zd ZU eed<   y)+TestSlots.test_returns_new_class.<locals>.Ar8   Nr9   r   r   r   r  rV  O  r3  r   r  Tr)  r  )r(   r  r  rw   rv   r-   r  r   s      r   test_returns_new_classz TestSlots.test_returns_new_classN  sR    	 	 at$AK01;/0r   T)rh   rg   c                   "    e Zd ZU eed<   eed<   y)TestSlots.FrozenSlotsClassr   rZ  Nr  r   r   r   FrozenSlotsClassrZ  Y      r   r[  r   c                   "    e Zd ZU eed<   eed<   y)!TestSlots.FrozenWithoutSlotsClassr   rZ  Nr  r   r   r   FrozenWithoutSlotsClassr^  ^  r\  r   r_  c                 `   | j                  | j                  j                  d       t        t        j
                  dz         D ]  }| j                  |      5  | j                  dd      }t	        j                  t	        j                  ||            }| j                  ||       | j                  ||       | j                  dd      }t	        j                  t	        j                  ||            }| j                  ||       | j                  ||       d d d         y # 1 sw Y   xY w)N)r   rZ  rC   r  r%  protocol)r)   r[  r  r  r  r  r2  r  r  r  r_  )r-   r  rT  ps       r   test_frozen_picklezTestSlots.test_frozen_picklec  s     	..88.I622Q67 
	)EE* 	)++C3LLcE!BC  a(  a(223:LLcE!BC  a(  a(	) 	)
	)	) 	)s   CD$$D-	c                   F    e Zd ZU eed<   eed<    edd      Zeed<   d Z	y)"TestSlots.FrozenSlotsGetStateClassr   rZ  FrE   r  getstate_calledc                 `    t         j                  | dd       | j                  | j                  gS Nri  Tr   r6  r   rZ  r   s    r   __getstate__z/TestSlots.FrozenSlotsGetStateClass.__getstate__z  (    t%6=HHdhh''r   N)
r   r   r   r   r;   r:   rG   ri  r  rm  r   r   r   FrozenSlotsGetStateClassrg  s  s"     %eU CC	(r   ro  c                   F    e Zd ZU eed<   eed<    edd      Zeed<   d Z	y)"TestSlots.FrozenSlotsSetStateClassr   rZ  Frh  setstate_calledc                     t         j                  | dd       t         j                  | d|d          t         j                  | d|d          y Nrr  Tr   r   rZ  rC   r   r6  r-   states     r   __setstate__z/TestSlots.FrozenSlotsSetStateClass.__setstate__  A    t%6=tUE!H5tUE!H5r   N)
r   r   r   r   r;   r:   rG   rr  r  rx  r   r   r   FrozenSlotsSetStateClassrq  ~  s"     %eU CC	6r   rz  c                   j    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y	)
"TestSlots.FrozenSlotsAllStateClassr   rZ  Frh  ri  rr  c                 `    t         j                  | dd       | j                  | j                  gS rk  rl  r   s    r   rm  z/TestSlots.FrozenSlotsAllStateClass.__getstate__  rn  r   c                     t         j                  | dd       t         j                  | d|d          t         j                  | d|d          y rt  ru  rv  s     r   rx  z/TestSlots.FrozenSlotsAllStateClass.__setstate__  ry  r   N)r   r   r   r   r;   r:   rG   ri  r  rr  rm  rx  r   r   r   FrozenSlotsAllStateClassr|    s8     %eU CC %eU CC	(	6r   r  c                 h   t        t        j                  dz         D ]  }| j                  |      5  | j	                  dd      }t        j
                  ||      }| j                  |j                         | j                  |t        j                  |             d d d         t        t        j                  dz         D ]  }| j                  |      5  | j                  dd      }t        j                  t        j
                  ||            }| j                  |j                         | j                  ||       d d d         t        t        j                  dz         D ]  }| j                  |      5  | j                  dd      }t        j
                  ||      }| j                  |j                         t        j                  |      }| j                  |j                         | j                  ||       d d d         y # 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   xY w)NrC   ra  r%  rb  )r  r  r  r2  ro  r  rv   ri  r)   r  rz  rr  r  )r-   r  rT  dumpedobj2s        r   %test_frozen_slots_pickle_custom_statez/TestSlots.test_frozen_slots_pickle_custom_state  s   622Q67 	<EE* <33C;cE: 3 34  fll6&:;< <	< 622Q67 	,EE* ,33C;||FLLu$EF 4 45  d+, ,	, 622Q67 		,EE* ,33C;cE: 3 34||F+ 4 45  d+, ,		,< <, ,, ,s&   A*HA*H<BH(H	H%	(H1	c                     t        d       G d d             } |d      }| j                  |j                  d       | j                  |j                  d       y )NTr)  c                   6    e Zd ZU eed<    edd      Zeed<   y)4TestSlots.test_slots_with_default_no_init.<locals>.Ar%  r  Fr9  Nr   r   r   r   r;   rG   r  r   r   r   r  r    s    F3U3As3r   r  r%  r  r(   r)   r%  r  r-   r  rT  s      r   test_slots_with_default_no_initz)TestSlots.test_slots_with_default_no_init  sQ    			4 	4 
	4 f$$r   c                     t        d       G d d             } |d      }| j                  |j                  d       | j                  |j                  d       y )NTr)  c                   8    e Zd ZU eed<    ed d      Zeed<   y)<TestSlots.test_slots_with_default_factory_no_init.<locals>.Ar%  c                       y)Nr  r   r   r   r   r   zETestSlots.test_slots_with_default_factory_no_init.<locals>.A.<lambda>  r   r   Fr  r  Nr  r   r   r   r  r    s    F:EBAsBr   r  r%  r  r  r  s      r   'test_slots_with_default_factory_no_initz1TestSlots.test_slots_with_default_factory_no_init  sT    			C 	C 
	C f$$r   c                 h   t        d       G d d             }| j                  d|j                          |       }| j                  t        d      5  t        j                  |       d d d        | j                  t              5  |j                   d d d        y # 1 sw Y   4xY w# 1 sw Y   y xY w)NTr)  c                       e Zd Zy)*TestSlots.test_slots_no_weakref.<locals>.ANr   r   r   r   r  r    s     r   r  __weakref__zcannot create weak reference)
r(   r~  r  rH   r   weakrefrefr  r8  r  r_  s      r   test_slots_no_weakrefzTestSlots.test_slots_no_weakref  s    			 	 
	 	4C##I$BD 	KKN	 ~. 	MM	 		 		 	s   BB(B%(B1c                     t        dd       G d d             }| j                  d|j                          |d      }t        j                  |      }| j                  |j                  |       y )NTrg   weakref_slotc                       e Zd ZU eed<   y)'TestSlots.test_slots_weakref.<locals>.Ar%  Nr9   r   r   r   r  r    r<   r   r  r  rC   )r(   rY   r  r  r  r  r  )r-   r  r%  a_refs       r   test_slots_weakrefzTestSlots.test_slots_weakref  s\    	D	1	 	 
2	 	mQ[[1aDAammU+r   c                      G d d      }t        d       G d d|             }| j                  d|j                         | j                  d|j                          |d      }t	        j
                  |       y )	Nc                       e Zd ZdZy)3TestSlots.test_slots_weakref_base_str.<locals>.Baser  Nr5  r   r   r   r   r    s    %Ir   r   Tr)  c                       e Zd ZU eed<   y)0TestSlots.test_slots_weakref_base_str.<locals>.Ar%  Nr9   r   r   r   r  r    r<   r   r  r  rC   r(   rY   r  r~  r  r  r-   r   r  r%  s       r   test_slots_weakref_base_strz%TestSlots.test_slots_weakref_base_str  sh    	& 	& 
		 	 
	 	mT^^44aDAr   c                      G d d      }t        d       G d d|             }| j                  d|j                         | j                  d|j                          |d      }t	        j
                  |       y )	Nc                       e Zd ZdZy)5TestSlots.test_slots_weakref_base_tuple.<locals>.Baser  Nr5  r   r   r   r   r        (Ir   r   Tr)  c                       e Zd ZU eed<   y)2TestSlots.test_slots_weakref_base_tuple.<locals>.Ar%  Nr9   r   r   r   r  r    r<   r   r  r  rC   r  r  s       r   test_slots_weakref_base_tuplez'TestSlots.test_slots_weakref_base_tuple  sh    	) 	) 
		 	 
	
 	mT^^44aDAr   c                     | j                  t        d      5  t        d       G d d             }d d d        y # 1 sw Y   y xY w)N'weakref_slot is True but slots is FalseTr  c                       e Zd ZU eed<   y)3TestSlots.test_weakref_slot_without_slot.<locals>.Ar%  Nr9   r   r   r   r  r    r   r   r  r=  r-   r  s     r   test_weakref_slot_without_slotz(TestSlots.test_weakref_slot_without_slot  sG    ##I$MO 	D)  *	 	 	r1  c                 "   t        ddt        fgdd      }| j                  d|j                          |d      }t	        j
                  |       | j                  t        d      5  t        ddt        fgd	      }d d d        y # 1 sw Y   y xY w)
Nr  r%  Tr  r  rC   r  r   r  )r  r:   rY   r  r  r  rH   r   )r-   r  r%  r   s       r    test_weakref_slot_make_dataclassz*TestSlots.test_weakref_slot_make_dataclass  s    3#sTMmQ[[1aDA ##I$MO 	Fsc3ZMEA	F 	F 	Fs   &BBc                 P   t        dd       G d d             }t        dd       G d d|             }| j                  d|j                         | j                  d|j                          |d      }t	        j
                  |      }| j                  |j                  |       y )	NTr  c                       e Zd ZU eed<   y)?TestSlots.test_weakref_slot_subclass_weakref_slot.<locals>.BaserG   Nr9   r   r   r   r   r    r   r   r   c                       e Zd Zy)<TestSlots.test_weakref_slot_subclass_weakref_slot.<locals>.ANr   r   r   r   r  r        r   r  r  rC   r(   rY   r  r~  r  r  r  r  r-   r   r  r%  r  s        r   'test_weakref_slot_subclass_weakref_slotz1TestSlots.test_weakref_slot_subclass_weakref_slot  s    	D	1	 	 
2	 
D	1	 	 
2	
 	mT^^44aDAammU+r   c                 N   t        dd       G d d             }t        d       G d d|             }| j                  d|j                         | j                  d|j                          |d	      }t	        j
                  |      }| j                  |j                  |       y )
NTr  c                       e Zd ZU eed<   y)BTestSlots.test_weakref_slot_subclass_no_weakref_slot.<locals>.BaserG   Nr9   r   r   r   r   r  *  r   r   r   r)  c                       e Zd Zy)?TestSlots.test_weakref_slot_subclass_no_weakref_slot.<locals>.ANr   r   r   r   r  r  .  r  r   r  r  rC   r  r  s        r   *test_weakref_slot_subclass_no_weakref_slotz4TestSlots.test_weakref_slot_subclass_no_weakref_slot)  s    	D	1	 	 
2	 
		 	 
	
 	mT^^44aDAammU+r   c                 0    G d d      }t        dd       G d d|             }| j                  d|j                         | j                  d|j                          |d      }t	        j
                  |      }| j                  |j                  |       y )	Nc                       e Zd ZdZy)BTestSlots.test_weakref_slot_normal_base_weakref_slot.<locals>.Baser  Nr5  r   r   r   r   r  ;  r  r   r   Tr  c                       e Zd ZU eed<   y)?TestSlots.test_weakref_slot_normal_base_weakref_slot.<locals>.ArG   Nr9   r   r   r   r  r  >  r   r   r  r  rC   r  r  s        r   *test_weakref_slot_normal_base_weakref_slotz4TestSlots.test_weakref_slot_normal_base_weakref_slot:  s~    	) 	) 
D	1	 	 
2	
 	mT^^44aDAammU+r   N)r   r   r   r   r'  r,  r0  rJ  rS  rX  r(   r[  r_  re  ro  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r  r    s   .$ $?L 1 d$'  ( d  )  d$'( ( (( d$'	6 	6 (	6 d$'6 6 (6 ,8	%	%	,"	F,$,",r   r  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestDescriptorsc                 H    G d d      t          G fdd             }| j                  |j                  j                  d       t          G fdd             }| j                  |j                  j                  d       | j                   |       j                  d       y )Nc                       e Zd Zd Zd Zy)(TestDescriptors.test_set_name.<locals>.Dc                     |dz   | _         y rH  rP   r-   ownerrP   s      r   __set_name__z5TestDescriptors.test_set_name.<locals>.D.__set_name__Q       3J	r   c                     |y| S NrC   r   r-   instancer  s      r   __get__z0TestDescriptors.test_set_name.<locals>.D.__get__S  s    'r   N)r   r   r   r  r  r   r   r   rb   r  P  s    'r   rb   c                   *    e Zd ZU  W         Zeed<   y)(TestDescriptors.test_set_name.<locals>.Cr   N)r   r   r   r   r:   r;   rb   s   r   r%   r  Z  s    3AsJr   r%   cxc                   :    e Zd ZU  e W         d      Zeed<   y)r  Fr9  r   Nr   r   r   rG   r   r:   r;   r  s   r   r%   z(TestDescriptors.test_set_name.<locals>.Cb      51As1r   rC   r(   r)   r   rP   rd   s     @r   test_set_namezTestDescriptors.test_set_nameL  s    	 	 
	 	 
	4(
 
	2 	2 
	24("r   c                      G d d      t          G fdd             }| j                  |j                  j                  d       y )Nc                       e Zd Zd Zy).TestDescriptors.test_non_descriptor.<locals>.Dc                     |dz   | _         y rH  r  r  s      r   r  z;TestDescriptors.test_non_descriptor.<locals>.D.__set_name__m  r  r   N)r   r   r   r  r   r   r   rb   r  l  s    'r   rb   c                   :    e Zd ZU  e W         d      Zeed<   y).TestDescriptors.test_non_descriptor.<locals>.CFr9  r   Nr  r  s   r   r%   r  p  r  r   r%   r  r  rd   s     @r   test_non_descriptorz#TestDescriptors.test_non_descriptorh  s>    	' 	' 
	2 	2 
	24(r   c                      G d d      } |       t               _        t         G fdd             }| j                  j                  j                  d       y )Nc                       e Zd Zy)2TestDescriptors.test_lookup_on_instance.<locals>.DNr   r   r   r   rb   r  w  r_   r   rb   c                   0    e Zd ZU  eW  d      Zeed<   y)2TestDescriptors.test_lookup_on_instance.<locals>.CFr9  r3   NrO  rR  s   r   r%   r    s    /As/r   r%   r   r   r  r(   r)   r  )r-   rb   r%   r  s      @r   test_lookup_on_instancez'TestDescriptors.test_lookup_on_instanceu  sT    	 	 C 
	0 	0 
	0 	22A6r   c                      G d d      t               _        t         G fdd             }| j                  j                  j                  d       y )Nc                       e Zd Zy)/TestDescriptors.test_lookup_on_class.<locals>.DNr   r   r   r   rb   r    r_   r   rb   c                   :    e Zd ZU  e W         d      Zeed<   y)/TestDescriptors.test_lookup_on_class.<locals>.CFr9  r3   NrO  r  s   r   r%   r    r  r   r%   rC   r  rd   s     @r   test_lookup_on_classz$TestDescriptors.test_lookup_on_class  sK    	 	 
	2 	2 
	2 	22A6r   c                      G d d      t               _        t         G fdd             }j                  j                           |d      }| j	                  j                  j
                  d       y )Nc                       e Zd Zy).TestDescriptors.test_init_calls_set.<locals>.DNr   r   r   r   rb   r    r_   r   rb   c                   ,    e Zd ZU  W         ZW  ed<   y).TestDescriptors.test_init_calls_set.<locals>.Cr3   Nr   r   r   r3   r;   r  s   r   r%   r        3AqJr   r%   r   rC   )r   __set__r(   
reset_mockr)   r  r-   r%   r   rb   s      @r   test_init_calls_setz#TestDescriptors.test_init_calls_set  sd    	 	 F			 	 
	 	
		aD--q1r   c                 (    G d d      t               _        t               _        t         G fdd             } |d      }j                  j	                          |j
                  }| j                  j                  j                  d       y )Nc                       e Zd Zy)7TestDescriptors.test_getting_field_calls_get.<locals>.DNr   r   r   r   rb   r    r_   r   rb   c                   ,    e Zd ZU  W         ZW  ed<   y)7TestDescriptors.test_getting_field_calls_get.<locals>.Cr3   Nr  r  s   r   r%   r    r  r   r%   r   rC   )r   r   r  r(   r  r3   r)   r  )r-   r%   r   r3  rb   s       @r   test_getting_field_calls_getz,TestDescriptors.test_getting_field_calls_get  sx    	 	 F	F			 	 
	 aD 	
		--q1r   c                      G d d      t               _        t         G fdd             } |d      }j                  j                          d|_        | j                  j                  j                  d       y )Nc                       e Zd Zy)7TestDescriptors.test_setting_field_calls_set.<locals>.DNr   r   r   r   rb   r    r_   r   rb   c                   ,    e Zd ZU  W         ZW  ed<   y)7TestDescriptors.test_setting_field_calls_set.<locals>.Cr3   Nr  r  s   r   r%   r    r  r   r%   r   r   rC   )r   r   r(   r  r3   r)   r  r  s      @r   test_setting_field_calls_setz,TestDescriptors.test_setting_field_calls_set  sm    	 	 F			 	 
	 aD 	
		--q1r   c                 d    G d d      t               _        t         G fdd             }j                  j                           |d      }| j	                  j                  j
                  d               |_        d|_        | j	                  j                  j
                  d       y )Nc                       e Zd Zy)FTestDescriptors.test_setting_uninitialized_descriptor_field.<locals>.DNr   r   r   r   rb   r    r_   r   rb   c                       e Zd ZU W  ed<   y)FTestDescriptors.test_setting_uninitialized_descriptor_field.<locals>.Cr3   Nr  r  s   r   r%   r    r  r   r%   r   r   )r   r   r(   r  r)   r  r3   r  s      @r   +test_setting_uninitialized_descriptor_fieldz;TestDescriptors.test_setting_uninitialized_descriptor_field  s    	 	 F			 	 
	 	
		aD--q1 c--q1r   c                      G d d      t          G fdd             } |       }| j                  |j                  d        |d      }| j                  |j                  d       y )Nc                   4    e Zd ZdededefdZdededdfdZy)-TestDescriptors.test_default_value.<locals>.Dr  r  rT  c                      |y|j                   S r  _xr  s      r   r  z5TestDescriptors.test_default_value.<locals>.D.__get__  s    #{{"r   r3  Nc                     ||_         y r   r  r-   r  r3  s      r   r   z5TestDescriptors.test_default_value.<locals>.D.__set__  	    #r   r   r   r   r   r   r:   r  r   r   r   r   rb   r    6    # #F #s #$ $C $D $r   rb   c                   ,    e Zd ZU  W         ZW  ed<   y)-TestDescriptors.test_default_value.<locals>.Cr3   Nr  r  s   r   r%   r"    r  r   r%   r   r   r  r  s      @r   test_default_valuez"TestDescriptors.test_default_value  s`    	$ 	$ 
	 	 
	 Cc"aDa r   c                      G d d      t          G fdd             }| j                  t        d      5   |       }d d d        y # 1 sw Y   y xY w)Nc                   4    e Zd ZdededefdZdededdfdZy)0TestDescriptors.test_no_default_value.<locals>.Dr  r  rT  c                 2    |
t               |j                  S r   )r8  r  r  s      r   r  z8TestDescriptors.test_no_default_value.<locals>.D.__get__  s    #(**{{"r   r3  Nc                     ||_         y r   r  r  s      r   r   z8TestDescriptors.test_no_default_value.<locals>.D.__set__  r  r   r  r   r   r   rb   r&    r   r   rb   c                   ,    e Zd ZU  W         ZW  ed<   y)0TestDescriptors.test_no_default_value.<locals>.Cr3   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_value  sU    	$ 	$ 
	 	 
	 ##I/WX 	A	 	 	s   AAN)r   r   r   r  r  r  r  r  r	  r  r  r#  r+  r   r   r   r  r  K  s4    #8)7 722$2"2*!*r   r  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestStringAnnotationsc                     dD ]U  | j                        5  t         G fdd             } |        | j                  d|j                         d d d        W y # 1 sw Y   bxY w)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 W  ed<   y).TestStringAnnotations.test_classvar.<locals>.Cr8   Nr  r/  s   r   r%   r2        Jr   r%   r8   )r2  r(   r~  r  r-   r%   r0  s     @r   test_classvarz#TestStringAnnotations.test_classvar  sr     	2G$ g. 
2      ajj1
2 
2%	2$
2 
2s   9AA&	c                     dD ]T  | j                        5  t         G fdd             }| j                   |d      j                  d       d d d        V y # 1 sw Y   axY w)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 W  ed<   y)3TestStringAnnotations.test_isnt_classvar.<locals>.Cr8   Nr  r/  s   r   r%   r:  2  r3  r   r%   r   r2  r(   r)   r8   r4  s     @r   test_isnt_classvarz(TestStringAnnotations.test_isnt_classvar%  so    
 	.G g. .     2"-. .	.. .   8AA%	c                    dD ]c  | j                        5  t         G fdd             }| j                  t        d      5   |d      j                   d d d        d d d        e y # 1 sw Y   xY w# 1 sw Y   |xY w)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 W  ed<   y)-TestStringAnnotations.test_initvar.<locals>.Cr8   Nr  r/  s   r   r%   r@  O  r3  r   r%   zobject has no attribute 'x'rC   )r2  r(   rH   r8  r8   r4  s     @r   test_initvarz"TestStringAnnotations.test_initvar9  s     	G$ g.    ++N,IK aDFF %	0  s#   ,A7A+A7+A40A77B 	c                     dD ]T  | j                        5  t         G fdd             }| j                   |d      j                  d       d d d        V y # 1 sw Y   axY w)N)IVz
dc.InitVarzxdataclasses.xInitVarztyping.xInitVar[int]r/  c                       e Zd ZU W  ed<   y)2TestStringAnnotations.test_isnt_initvar.<locals>.Cr8   Nr  r/  s   r   r%   rE  _  r3  r   r%   r   r;  r4  s     @r   test_isnt_initvarz'TestStringAnnotations.test_isnt_initvarX  so     	.G
 g. .     2"-. .	.
. .r=  c           
         ddl m} ddl m} ddl m} ddl m} ||||fD ]/  }| j                  |      5  |j                  r|j                  d      }n|j                         }| j                  |j                  d       |j                  dd	d
dd      }dD ]L  }| j                  |      5  | j                  t        d| d      5  t        ||       d d d        d d d        N |j                  r9| j                  d|j                         | j                  |j                   d       n| j#                  d|j                         d d d        2 y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   VxY w)Nr   )dataclass_module_1)dataclass_module_1_str)dataclass_module_2)dataclass_module_2_str)mr   r  rC   rM  r   r  )iv0iv1iv2iv3)
field_namezobject has no attribute 'r/  not_iv4)rH  rH  rI  rJ  rK  r2  USING_STRINGSr7  r)   cv0rC  rH   r8  r  rY   r  rR  r~  )r-   rH  rI  rJ  rK  rL  r   rQ  s           r   !test_classvar_module_level_importz7TestStringAnnotations.test_classvar_module_level_importf  s\   +/+/$&<$&< !	<A " < ??RAA  + DDAq!Q'"> 3J< 3!33NF_`j_kklDmn 3 $Az233 33 ??MM)QZZ8$$QYY2 $$Y

;=< <!	<*3 33 3#< <s=   A7E+,E	EE	A+E+EE	E($E++E5	c                     ddl m} | j                  t        |j                        d|j
                  i       | j                  t        |j                  j                        |j
                  t        d       d       y )Nr   )dataclass_textannor   )r   rT  )rH  rW  r)   r   r(  r$  r   rX   )r-   rW  s     r   test_text_annotationsz+TestStringAnnotations.test_text_annotations  sk    +-112&**+	- 	-11::;&**Dz#	$r   N)	r   r   r   r5  r<  rA  rF  rU  rX  r   r   r   r-  r-     s"    "2H.(>.'<R	$r   r-  ByMakeDataClassr8   ManualModuleMakeDataClass)moduleWrongWrongModuleMakeDataclasscustomc                   r    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y)TestMakeDataclassc           	          t        ddt        fdt        t        d      fgdd i      } |d	      }| j                  |j                  |j
                  fd
       | j                  |j                         d       y )Nr%   r8   r   r   r  add_onec                      | j                   dz   S r  r~   r   s    r   r   z/TestMakeDataclass.test_simple.<locals>.<lambda>  s    dffqj r   r  r   )r   r   r  )r  r:   rG   r)   r8   r   rb  r   s      r   r   zTestMakeDataclass.test_simple  sp    3 #J #uQ'78:&/1H%IK bE!##qssW-b)r   c           	      z    i }t        ddt        fdt        t        d      fg|      }| j                  |i        y )Nr%   r8   r   r   r  rd  )r  r:   rG   r)   )r-   nsr%   s      r   test_no_mutate_namespacez*TestMakeDataclass.test_no_mutate_namespace  sC    3 #J #uQ'78:%') 	R r   c                      G d d      } G d d      }t        ddt        fg||f      } |d      }| j                  ||       | j                  ||       | j                  ||       y )	Nc                       e Zd Zy)*TestMakeDataclass.test_base.<locals>.Base1Nr   r   r   r   Base1rj    r_   r   rk  c                       e Zd Zy)*TestMakeDataclass.test_base.<locals>.Base2Nr   r   r   r   Base2rm    r_   r   rn  r%   r8   r  rM  )r  r:   r  r-   rk  rn  r%   r   s        r   	test_basezTestMakeDataclass.test_base  sm    	 		 	3 #J<"'1 aDa#a'a'r   c                    t          G d d             } G d d      }t        ddt        fg||f      }| j                  t        d      5   |d	      }d d d         |d
d	      }| j                  ||       | j                  ||       | j                  ||       | j                  |j                  |j                  fd       y # 1 sw Y   qxY w)Nc                       e Zd ZU eed<   y)4TestMakeDataclass.test_base_dataclass.<locals>.Base1r8   Nr9   r   r   r   rk  rt    r<   r   rk  c                       e Zd Zy)4TestMakeDataclass.test_base_dataclass.<locals>.Base2Nr   r   r   r   rn  rv    r_   r   rn  r%   r   ro  zrequired positionalrM  rC   r  )	r(   r  r:   rH   r   r  r)   r8   r   rp  s        r   test_base_dataclassz%TestMakeDataclass.test_base_dataclass  s    		 	 
		 	3 #J<"'1 ##I/DE 	!A	aGa#a'a'!##qssV,	 	s   	CCc                     d }t        ddt        fdt        t           fgd|i      } |dd      }| j                  t	        |      dd	i       | j                  t        t        |            d
       y )Nc                 .    | xj                   |z  c_         y r   r~   r-   r   s     r   	post_initz2TestMakeDataclass.test_init_var.<locals>.post_init  s    FFaKFr   r%   r8   r   rb  rd  rM  r   r  rC   )r  r:   r  r)   r  r*   r+   )r-   r{  r%   r   s       r   r  zTestMakeDataclass.test_init_var  st    	 3 #J '#,/ '6y%A	 aGa3(+VAY+r   c           
      |   t        ddt        fdt        t           dfdt        t           t        d      fg      } |d      }| j	                  t        |      ddi       | j	                  t        t        |            d       | j	                  |j                  d       | j	                  |j                  d       y )	Nr%   r8   r   r   r   r  r  rC   )
r  r:   r   rG   r)   r  r*   r+   r   r   r   s      r   r  z TestMakeDataclass.test_class_var  s    3 #J (3-4 (3-r1BC
 aDa3(+VAY+b!b!r   c           
      \   t        ddt        fdt        t           dfdt        t           t        d      fgd	      }| j	                  d
t        |             | j                  dt        |             | j                  t        d      5  t        dg d      }d d d        y # 1 sw Y   y xY w)Nr%   r8   r   r   r   r  r  Fr  r   r  zunexpected keyword argument)xxinit)	r  r:   r   rG   r~  r  rY   rH   r   r   s     r   test_other_paramsz#TestMakeDataclass.test_other_params  s    3 #J (3-4 (3-r1BC !&' 	T!W-j$q'* ##I/LM 	-s!&+-A	- 	- 	-s   
B""B+c                 v   t        dg d      } |ddd      }| j                  t        |      dddd       | j                  |j                  dddd       t        dddt        fd	g      } |ddd      }| j                  t        |      dddd       | j                  |j                  dt        dd       y )
Nr  r8   r   r   rC   rM  r   z
typing.Anyr8   r   r   )r  r)   r  r;   r:   r   s      r   test_no_typeszTestMakeDataclass.test_no_types  s    7O4aAJa":;**,2>2>-@ 	A 7S3*c$:;aAJa":;**,252>-@ 	Ar   c                    | j                  t        j                  t               | j                  t        d      j                  t               | j                  t        j                  d       t        dg       }| j                  |j                  t               | j                   |       j                  t               y )NrC   r^  Nested)r)   rY  r   r   r]  r  )r-   r  s     r   test_module_attrz"TestMakeDataclass.test_module_attr  s    33X>+66A1<<hG"-**H5,,h7r   c                    t         t        fD ]  }t        t        j                  dz         D ]  }| j                  |      5  | j                  t        j                  t        j                  ||            |       | j                  t        j                  t        j                   |d      |             |d             d d d          y # 1 sw Y   xY wNrC   ra  )	rY  rZ  r  r  r  r2  r)   r  r  r-   klassr  s      r   test_pickle_supportz%TestMakeDataclass.test_pickle_support  s    %'@A 
	Ev66:; 	\\\. $$V\\%%?@ $$V\\%(E%BCa 	
	 s   A?CCc           	         t         t        fD ]  }t        t        j                  dz         D ]  }| j                  |      5  | j                  t        j                        5  t        j                  ||       d d d        | j                  t        j                        5  t        j                   |d      |       d d d        d d d          y # 1 sw Y   ZxY w# 1 sw Y   "xY w# 1 sw Y   xY wr  )	WrongNameMakeDataclassr]  r  r  r  r2  r  PickleErrorr  r  s      r   test_cannot_be_pickledz(TestMakeDataclass.test_cannot_be_pickled&  s    ,.FG 	6Ev66:; 6\\\. 6**6+=+=> 3UE23**6+=+=> 6U1Xu566 66	63 36 66 6s<    C)!C	8'C)C	<C)CC)C&"C))C2c                    dD ]J  }| j                  |      5  | j                  t        d      5  t        dd|g       d d d        d d d        L t        d fD ]J  }| j                  |      5  | j                  t        d      5  t        dd|g       d d d        d d d        L y # 1 sw Y   jxY w# 1 sw Y   xY w# 1 sw Y   ,xY w# 1 sw Y   {xY w)N)r   )rC   rM  r   r  )	bad_fieldzInvalid field: r%   r%  c                     | S r   r   r~   s    r   r   zCTestMakeDataclass.test_invalid_type_specification.<locals>.<lambda>9  s    1 r   zhas no len\(\))r2  rH   r   r  r+  )r-   r  s     r   test_invalid_type_specificationz1TestMakeDataclass.test_invalid_type_specification/  s     	:I 	2 :++I7IJ :"3i(89:: :	:  $ 	:I 	2 :++I7HI :"3i(89:: :	:	: :: :: :: :sE   B3B'B3.CB?C'B0,B33B<	?CCC	c           	          dD ]K  }| j                  |      5  | j                  t        d      5  t        d|d|g       d d d        d d d        M y # 1 sw Y   xY w# 1 sw Y   dxY w)N)r%  abrG   zField name duplicatedr%   r%  r2  rH   r   r  r-   rG   s     r   test_duplicate_field_namesz,TestMakeDataclass.test_duplicate_field_names?  sp      	=EE* =++I7NO ="3U(;<== =	== == =s!   AAAAAA'	c                    dD ]  }| j                  |      5  | j                  t        d      5  t        dd|g       d d d        | j                  t        d      5  t        d|g       d d d        | j                  t        d      5  t        d|dg       d d d        d d d         y # 1 sw Y   mxY w# 1 sw Y   MxY w# 1 sw Y   ,xY w# 1 sw Y   xY w)N)forasyncawaitasr  zmust not be keywordsr%   r%  r  r  s     r   test_keyword_field_namesz*TestMakeDataclass.test_keyword_field_namesE  s    4 	6EE* 6++I7MN 6"3e56++I7MN 1"301++I7MN 6"3566 6	66 61 16 66 6Q   CB*CB6*CCC*B3/C6B?;CCCC	c                    dD ]  }| j                  |      5  | j                  t        d      5  t        dd|g       d d d        | j                  t        d      5  t        d|g       d d d        | j                  t        d      5  t        d|dg       d d d        d d d         y # 1 sw Y   mxY w# 1 sw Y   MxY w# 1 sw Y   ,xY w# 1 sw Y   xY w)N)()x,yr   2@3r  zlittle johnny tablesr  zmust be valid identifiersr%   r%  r  r  s     r   test_non_identifier_field_namesz1TestMakeDataclass.test_non_identifier_field_namesO  s    J 	6EE* 6++I7RS 6"3e56++I7RS 1"301++I7RS 6"3566 6	66 61 16 66 6r  c                      t        dg d       y )Nr%   )__aa_aa_)r  r   s    r   test_underscore_field_namesz-TestMakeDataclass.test_underscore_field_namesY  s     	s45r   c                     dD ]G  }| j                  |      5  t        |ddg      }| j                  |j                  |       d d d        I y # 1 sw Y   TxY w)N)r  r  r   r  r  )	classnamer%  r  )r2  r  r)   r   )r-   r  r%   s      r   test_funny_class_names_namesz.TestMakeDataclass.test_funny_class_names_names^  s_     7 	8I	2 8"9sCj9  Y78 8	88 8s   +AA	N)r   r   r   r   rg  rq  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r`  r`    sX    *!(-$,
"-"A86: =666
8r   r`  c                   Z    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y)TestReplacec                     t        d       G d d             } |dd      }t        |d      }| j                  |j                  d       | j                  |j                  d       y )	NTr   c                   "    e Zd ZU eed<   eed<   y)TestReplace.test.<locals>.Cr8   r   Nr9   r   r   r   r%   r  h  rJ  r   r%   rC   rM  r   r~   )r(   rV  r)   r8   r   r-   r%   r   r  s       r   rH  zTestReplace.testg  s^    	$		 	 
 	 aGQ!_q!q!r   c                 2   t        d       G d d             } |dd      }t        |d      }| j                  |j                  |j                  |j
                  |j                  fd	       | j                  |j                  |j                  |j
                  |j                  fd
       | j                  t        d      5  t        |ddd       d d d        | j                  t        d      5  t        |d       t        |ddd       d d d        | j                  t        d      5  d|_        d d d        | j                  t        d      5  t        |dd      }d d d        y # 1 sw Y   xY w# 1 sw Y   ixY w# 1 sw Y   OxY w# 1 sw Y   y xY w)NTr   c                   ^    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<   y	)
"TestReplace.test_frozen.<locals>.Cr8   r   Fr   r  r   r   r  N)r   r   r   r:   r;   rG   r   r  r   r   r   r%   r  s  s.    FFr2As2s3As3r   r%   rC   rM  r   r~   )rC   rM  r   r   )r   rM  r   r   
init=Falser  r  )r8   r   r  r  zcannot assign to field 'x'z3__init__\(\) got an unexpected keyword argument 'a'r   )r8   r%  )r(   rV  r)   r8   r   r   r  rH   rI   rs  r   r  s       r   r  zTestReplace.test_frozenr  sk   	$		4 	4 
 	4 aGQ!_!##qssACC-?"$$bddBDD1?C ##J= 	(AbB'	(##J= 	(AAbB'	(
 ##$79UV 	BD	 ##I 0D E 	'bA&B	' 	'	( 	(	( 	(
	 		' 	's0   E)0E5+FF)E25E>F
Fc                     t        d       G d d             } |dd      }| j                  t        d      5  t        |d	      }d d d        y # 1 sw Y   y xY w)
NTr   c                   "    e Zd ZU eed<   eed<   y).TestReplace.test_invalid_field_name.<locals>.Cr8   r   Nr9   r   r   r   r%   r    rJ  r   r%   rC   rM  z3__init__\(\) got an unexpected keyword argument 'z'r   r  r(   rH   r   rV  r  s       r   test_invalid_field_namez#TestReplace.test_invalid_field_name  s`    	$		 	 
 	 aG##I 0; < 	!aB	! 	! 	!s   AAc                    t        d       G d d             }| j                  t        d      5  t        |d       d d d        | j                  t        d      5  t        dd       d d d        y # 1 sw Y   6xY w# 1 sw Y   y xY w)	NTr   c                   "    e Zd ZU eed<   eed<   y)*TestReplace.test_invalid_object.<locals>.Cr8   r   Nr9   r   r   r   r%   r    rJ  r   r%   r{  r   r~   r   r  r   s     r   test_invalid_objectzTestReplace.test_invalid_object  s    	$		 	 
 	 ##I/CD 	AO	 ##I/CD 	AO	 		 		 	s   A3A?3A<?Bc                    t          G d d             } |d      }d|_        t        |d      }| j                  |j                  |j                  fd       | j                  t        d      5  t        |d	d
       d d d        | j                  t        d      5  t        |d
       d d d        y # 1 sw Y   6xY w# 1 sw Y   y xY w)Nc                   6    e Zd ZU eed<    edd      Zeed<   y)#TestReplace.test_no_init.<locals>.Cr8   Fr   r  r   Nr  r   r   r   r%   r    s    Fr2As2r   r%   rC   r  r   r~   )r   r   r  rM     r  r  )r(   r   rV  r)   r8   rH   rI   r  s       r   r  zTestReplace.test_no_init  s    		3 	3 
	3 aD Q!_"$$w/ ##J= 	"Ab!	" ##J= 	A	 		" 	"	 	s   .B2B>2B;>Cc                 X   t          G d d             } |d      } |d      }| j                  |j                  |j                         | j                  |j                  d       | j	                  t
        d      5  t        |d       d d d        t        |d	
       y # 1 sw Y   xY w)Nc                   ,    e Zd ZU eed<   dZee   ed<   y)$TestReplace.test_classvar.<locals>.Cr8   r  r   N)r   r   r   r:   r;   r   r   r   r   r   r%   r    s    F#Ax}#r   r%   rC   rM  r  z3__init__\(\) got an unexpected keyword argument 'y'r  r  r   r~   )r(   r  r   r)   rH   r   rV  r  s       r   r5  zTestReplace.test_classvar  s    		$ 	$ 
	$ aDaDacc133d# ##I 0F G 	A	 	Q		 	s   <B  B)c                 8   t          G d d             } |dd      }| j                  |j                  d       | j                  t        d      5  t        |d       d d d        t        |dd	      }| j                  |j                  d
       y # 1 sw Y   4xY w)Nc                   .    e Zd ZU eed<   ee   ed<   d Zy)0TestReplace.test_initvar_is_specified.<locals>.Cr8   r   c                 .    | xj                   |z  c_         y r   r~   rz  s     r   rb  z>TestReplace.test_initvar_is_specified.<locals>.C.__post_init__  rn  r   Nr  r   r   r   r%   r    s    Fs|Or   r%   rC   r   z,InitVar 'y' must be specified with replace()r   r~   r   r  r   )r(   r)   r8   rH   rI   rV  r   s      r   test_initvar_is_specifiedz%TestReplace.test_initvar_is_specified  s    		 	 
	 aHb!##J 1? @ 	AO	 Aa b!		 	s   BBc                    t          G d d             } |ddd      }| j                  t        |       |d             | j                  t        |d	       |ddd
             | j                  t        |dd       |ddd             y )Nc                   F    e Zd ZU eed<   dZee   ed<   dZee   ed<   d Zy)6TestReplace.test_initvar_with_default_value.<locals>.Cr8   Nr   r=   r   c                 b    || xj                   |z  c_         || xj                   |z  c_         y y r   r~   )r-   r   r   s      r   rb  zDTestReplace.test_initvar_with_default_value.<locals>.C.__post_init__  s+    =FFaKF=FFaKF !r   )	r   r   r   r:   r;   r   r  r   rb  r   r   r   r%   r    s(    F"Aws|" Aws|  r   r%   rC   r   r  r  r~   r  r  r=   )r   r   )r(   r)   rV  r   s      r   test_initvar_with_default_valuez+TestReplace.test_initvar_with_default_value  s    			  		  
		  R1QW-a!bA*<=a1-q2a/@Ar   c                 ~    t          G d d             } |d       }||_        | j                  t        |      d       y )Nc                       e Zd ZU ded<   y)*TestReplace.test_recursive_repr.<locals>.Cr%   r  Nr  r   r   r   r%   r    r<   r   r%   z1TestReplace.test_recursive_repr.<locals>.C(f=...)r(   r  r)   rN   r   s      r   test_recursive_reprzTestReplace.test_recursive_repr  s@    		 	 
	 dGa"UVr   c                     t          G d d             } |d d       }||_        ||_        | j                  t	        |      d       y )Nc                   "    e Zd ZU ded<   ded<   y)4TestReplace.test_recursive_repr_two_attrs.<locals>.Cr%   r  gNr  r   r   r   r%   r    rJ  r   r%   zBTestReplace.test_recursive_repr_two_attrs.<locals>.C(f=..., g=...))r(   r  r  r)   rN   r   s      r   test_recursive_repr_two_attrsz)TestReplace.test_recursive_repr_two_attrs  sM    		 	 
	 dDMa #> 	?r   c                     t          G d d             }t          G d d             } |d       } |d       }||_        ||_        | j                  t        |      d       y )Nc                       e Zd ZU ded<   y)6TestReplace.test_recursive_repr_indirection.<locals>.Crb   r  Nr  r   r   r   r%   r  	  r<   r   r%   c                       e Zd ZU ded<   y)6TestReplace.test_recursive_repr_indirection.<locals>.Dr%   r  Nr  r   r   r   rb   r    r<   r   rb   zwTestReplace.test_recursive_repr_indirection.<locals>.C(f=TestReplace.test_recursive_repr_indirection.<locals>.D(f=...))r  )r-   r%   rb   r   r  s        r   test_recursive_repr_indirectionz+TestReplace.test_recursive_repr_indirection  sm    		 	 
	 
	 	 
	 dGdGa #8 	9r   c                    t          G d d             }t          G d d             }t          G d d             } |d       } |d       } |d       }||_        ||_        ||_        | j                  t        |      d       y )Nc                       e Zd ZU ded<   y):TestReplace.test_recursive_repr_indirection_two.<locals>.Crb   r  Nr  r   r   r   r%   r    r<   r   r%   c                       e Zd ZU ded<   y):TestReplace.test_recursive_repr_indirection_two.<locals>.Dr  r  Nr  r   r   r   rb   r    r<   r   rb   c                       e Zd ZU ded<   y):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%   rb   r  r   r  rH  s          r   #test_recursive_repr_indirection_twoz/TestReplace.test_recursive_repr_indirection_two  s    		 	 
	 
	 	 
	 
	 	 
	 dGdGdGa #9 	:r   c                     t          G d d             } |d d      }||_        | j                  t        |      d       y )Nc                   "    e Zd ZU ded<   eed<   y)5TestReplace.test_recursive_repr_misc_attrs.<locals>.Cr%   r  r  NrI  r   r   r   r%   r  2  rJ  r   r%   rC   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_attrs1  sF    		 	 
	 dAJa #< 	=r   N)r   r   r   rH  r  r  r  r  r5  r  r  r  r  r  r  r  r   r   r   r  r  f  sF    	"'@	!
(&""B$W
?9":0	=r   r  c                       e Zd Zd Zd Zy)TestAbstractc                      G d dt         j                        }t        d       G d d|             }| j                  t	        j
                  |             | j                   |ddd	       |dd
d             y )Nc                   T    e Zd Zej                  d        Zej                  d        Zy)5TestAbstract.test_abc_implementation.<locals>.Orderedc                      y r   r   r   s     r   rz  z<TestAbstract.test_abc_implementation.<locals>.Ordered.__lt__M      r   c                      y r   r   r   s     r   r{  z<TestAbstract.test_abc_implementation.<locals>.Ordered.__le__Q  r  r   N)r   r   r   abcabstractmethodrz  r{  r   r   r   Orderedr  L  s4         r   r  Tr  c                   ,    e Zd ZU eed<   ded<   ded<   y)2TestAbstract.test_abc_implementation.<locals>.Dater  Monthr  r:   r  Nr9   r   r   r   r  r  U      INJr   r  i  r     r      )r  ABCr(   r  rs   
isabstractrE  )r-   r  r  s      r   test_abc_implementationz$TestAbstract.test_abc_implementationK  sn    	cgg 	 
		7 	 
	
 	++D124R+T$q_=r   c                      G d dt         j                        }t         G d d|             }| j                  t	        j
                  |             d}| j                  t        ||       y )Nc                   0    e Zd Zej                  d        Zy))TestAbstract.test_maintain_abc.<locals>.Ac                      y 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  _  s      r   r  c                   ,    e Zd ZU eed<   ded<   ded<   y),TestAbstract.test_maintain_abc.<locals>.Dater  r  r  r:   r  Nr9   r   r   r   r  r  d  r  r   r  z>class Date without an implementation for abstract method 'foo')r  r  r(   rv   rs   r   rH   r   )r-   r  r  rJ   s       r   test_maintain_abczTestAbstract.test_maintain_abc^  s]    	 	
 
	1 	 
	
 	**401Ny#t4r   N)r   r   r   r  r  r   r   r   r  r  J  s    >&5r   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestMatchArgsc                 n    t          G d d             }| j                   |d      j                  d       y )Nc                       e Zd ZU eed<   y)(TestMatchArgs.test_match_args.<locals>.Cr%  Nr9   r   r   r   r%   r  q  r<   r   r%   r=   r  r(   r)   __match_args__r   s     r   test_match_argszTestMatchArgs.test_match_argsp  s3    		 	 
	2--v6r   c                 x    dt          G fdd             }| j                   |d      j                         y )Nr   c                        e Zd ZU eed<   W  Zy)1TestMatchArgs.test_explicit_match_args.<locals>.Cr%  Nr   r   r   r:   r;   r  )mas   r   r%   r  x  s    FNr   r%   r=   )r(   r  r  )r-   r%   r  s     @r   test_explicit_match_argsz&TestMatchArgs.test_explicit_match_argsv  s9    		  	  
	  	ae**B/r   c                 r    t        ddd       G d d             }| j                  |j                  d       y )NF)rN   rs  rM   c                   ,    e Zd ZU eed<   eed<   eed<   y)'TestMatchArgs.test_bpo_43764.<locals>.Xr%  r  r   Nr9   r   r   r   r   r    r  r   r   r%  r  r   r  )r-   r   s     r   test_bpo_43764zTestMatchArgs.test_bpo_43764~  s:    	%e	4	 	 
5	 	))?;r   c                    t        d       G d d             }| j                  d|j                         t        d       G d d             }| j                  |j                  d       t        d       G d	 d
|             }| j                  |j                  d       t          G d d             }t        d       G d d|             }| j                  |j                  d       y )NF
match_argsc                       e Zd ZU eed<   y)1TestMatchArgs.test_match_args_argument.<locals>.Xr%  Nr9   r   r   r   r   r     r<   r   r   r  c                       e Zd ZU eed<   dZy)1TestMatchArgs.test_match_args_argument.<locals>.Yr%  rP  Nr  r   r   r   r   r"    s    F#Nr   r   rP  c                       e Zd ZU eed<   y)1TestMatchArgs.test_match_args_argument.<locals>.Zr   Nr9   r   r   r   Zr$    r<   r   r%  c                   "    e Zd ZU eed<   eed<   y)1TestMatchArgs.test_match_args_argument.<locals>.Ar%  r   Nr9   r   r   r   r  r'    rJ  r   r  c                       e Zd ZU eed<   y)1TestMatchArgs.test_match_args_argument.<locals>.Br  Nr9   r   r   r   r   r)    r<   r   r   )r%  r   )r(   r~  r  r)   r  )r-   r   r   r%  r  r   s         r   test_match_args_argumentz&TestMatchArgs.test_match_args_argument  s    	e	$	 	 
%	)1::6	e	$	$ 	$ 
%	$ 	))62	e	$	 	 
%	))62 
	 	 
	 
e	$	 	 
%	)):6r   c                    t        ddt        fdt        fg      }| j                  |j                  d       t        ddt        fdt        fgd      }| j                  |j                  d       t        ddt        fdt        fgd      }| j	                  d|j
                         t        ddt        fdt        fgd	d
i      }| j                  |j                  d
       y )Nr%   r8   r   r  Tr  F__match__args__r  r  rd  )r  r:   r)   r  r~  r  r   s     r   test_make_dataclassesz#TestMatchArgs.test_make_dataclasses  s    3#sc3Z 89)):63#sc3Z 8TJ)):63#sc3Z 8UK*AJJ73#sc3Z 8EUW]D^_))62r   N)r   r   r   r  r  r  r*  r-  r   r   r   r
  r
  o  s    70<783r   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y
)TestKeywordArgsc                    d}| j                  t        |      5  t         G d d             }d d d        | j                  t        |      5  t         G d d             }d d d        | j                  t        |      5  t        d       G d d             }d d d        y # 1 sw Y   txY w# 1 sw Y   NxY w# 1 sw Y   y xY w)Nz+field a is a ClassVar but specifies kw_onlyc                   0    e Zd ZU  ed      Zee   ed<   y)1TestKeywordArgs.test_no_classvar_kwarg.<locals>.ATkw_onlyr%  Nr   r   r   rG   r%  r   r:   r;   r   r   r   r  r2    s    #(#68C=6r   r  c                   0    e Zd ZU  ed      Zee   ed<   yr2  Fr3  r%  Nr5  r   r   r   r  z1TestKeywordArgs.test_no_classvar_kwarg.<locals>.A      #(#78C=7r   Tr3  c                   0    e Zd ZU  ed      Zee   ed<   yr7  r5  r   r   r   r  z1TestKeywordArgs.test_no_classvar_kwarg.<locals>.A  r8  r   r=  )r-   rJ   r  s      r   test_no_classvar_kwargz&TestKeywordArgs.test_no_classvar_kwarg  s    ;##Is3 	77 7 7	7
 ##Is3 	88 8 8	8
 ##Is3 	8t$8 8 %8	8 	8	7 	7
	8 	8
	8 	8s#   B B,=B8 B),B58Cc                 `   t        d       G d d             }| j                  t        |      d   j                         t        d       G d d             }| j                  t        |      d   j                         t        d       G d d             }| j	                  t        |      d   j                         t        d       G d	 d             }| j	                  t        |      d   j                         t        d       G d
 d             }| j                  t        |      d   j                         t        d       G d d             }| j	                  t        |      d   j                         t          G d d             }| j	                  t        |      d   j                         t          G d d             }| j                  t        |      d   j                         t          G d d             }| j	                  t        |      d   j                         y )NTr3  c                       e Zd ZU eed<   y6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.Ar%  Nr9   r   r   r   r  r>    r<   r   r  r   c                   *    e Zd ZU  ed      Zeed<   yr>  Tr3  r%  Nr   r   r   rG   r%  r:   r;   r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A      4(As(r   c                   *    e Zd ZU  ed      Zeed<   yr>  Fr3  r%  NrA  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A      5)As)r   Fc                       e Zd ZU eed<   yr=  r9   r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A  r<   r   c                   *    e Zd ZU  ed      Zeed<   yr@  rA  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A  rB  r   c                   *    e Zd ZU  ed      Zeed<   yrD  rA  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A  rE  r   c                       e Zd ZU eed<   yr=  r9   r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A  r<   r   c                   *    e Zd ZU  ed      Zeed<   yr@  rA  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A  rB  r   c                   *    e Zd ZU  ed      Zeed<   yrD  rA  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A  rE  r   )r(   rv   r+   r4  r  r  s     r   test_field_marked_as_kwonlyz+TestKeywordArgs.test_field_marked_as_kwonly  s    
4	 	 	 
!	q	!,,-	4	 	) 	) 
!	)q	!,,-	4	 	* 	* 
!	*1--. 
5	!	 	 
"	1--.	5	!	) 	) 
"	)q	!,,-	5	!	* 	* 
"	*1--. 
	 	 
	1--.		) 	) 
	)q	!,,-		* 	* 
	*1--.r   c                     t        d       G d d             }| j                   |d      j                  d       t          G d d             }| j                   |dd	
      j                  d       y )NTr3  c                       e Zd ZU eed<   y)*TestKeywordArgs.test_match_args.<locals>.Cr%  Nr9   r   r   r   r%   rO    r<   r   r%   r=   r  r   c                   4    e Zd ZU eed<    ed      Zeed<   y)rO  r%  Tr3  r  N)r   r   r   r:   r;   rG   r  r   r   r   r%   z*TestKeywordArgs.test_match_args.<locals>.C  s    F4(As(r   r   rP  r  r   s     r   r  zTestKeywordArgs.test_match_args  sm    	4	 	 	 
!	R//4		) 	) 
	) 	233V<r   c                    t          G d d             } |ddd       d}| j                  t        |      5   |ddd       d d d        t        d	       G d
 d             } |ddd       d}| j                  t        |      5   |ddd       d d d        t          G d d             } |ddd      }| j                  |j                  d       | j                  |j
                  d       | j                  |j                  d        |ddd      }| j                  |j                  d       | j                  |j
                  d       | j                  |j                  d        |ddd      }| j                  |j                  d       | j                  |j
                  d       | j                  |j                  d        |ddd      }| j                  |j                  d       | j                  |j
                  d       | j                  |j                  d       y # 1 sw Y   xY w# 1 sw Y   xY w)Nc                   6    e Zd ZU eed<   eed<   eed<   eed<   y)'TestKeywordArgs.test_KW_ONLY.<locals>.Ar%  r  r  r   Nr   r   r   r:   r;   KW_ONLYr   r   r   r  rS        FJFFr   r  r   r   r  r   r  -takes 2 positional arguments but 4 were givenTr3  c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)'TestKeywordArgs.test_KW_ONLY.<locals>.Br%  r  r  r   NrT  r   r   r   r   rZ    rV  r   r   r  z,takes 1 positional argument but 4 were givenc                   H    e Zd ZU eed<   eed<   eed<    ed      Zeed<   y)'TestKeywordArgs.test_KW_ONLY.<locals>.Cr%  r  r  Fr3  r   Nr   r   r   r:   r;   rU  rG   r   r   r   r   r%   r\    s     FJF5)As)r   r%   rC   rM  rP  )r  r   )r   r  r%  )r(   rH   r   r)   r%  r  r   )r-   r  rJ   r   r%   r   s         r   test_KW_ONLYzTestKeywordArgs.test_KW_ONLY  s   		 	 
	
 	
!qA=##Is3 	aAJ	 
4	 	 	 
!	
 	
Aa<##Is3 	aAJ	 
	* 	* 
	*
 aaLa a a a1Na a a a1Na a a Q!a a a K	 		 	s   H)H6)H36I c                     t          G d d             } |ddd       d}| j                  t        |      5   |ddd       d d d        y # 1 sw Y   y xY w)Nc                   6    e Zd ZU eed<   ded<   eed<   eed<   y)1TestKeywordArgs.test_KW_ONLY_as_string.<locals>.Ar%  zdataclasses.KW_ONLYr  r  r   Nr9   r   r   r   r  ra  4  s    F$$FFr   r  r   r   r  rW  rX  r  )r-   r  rJ   s      r   test_KW_ONLY_as_stringz&TestKeywordArgs.test_KW_ONLY_as_string3  s[    		 	 
	
 	
!qA=##Is3 	aAJ	 	 	s   AAc                    d}| j                  t        |      5  t         G d d             }d d d        | j                  t        |      5  t         G d d             }d d d        | j                  t        |      5  t         G d d             }d d d        t         G d d             }t         G d d             }t         G d d	|             }| j                  t        |      5  t         G d
 d             }t         G d d	|             }d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz6'Y' is KW_ONLY, but KW_ONLY has already been specifiedc                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)-TestKeywordArgs.test_KW_ONLY_twice.<locals>.Ar%  r   r   r  r   NrT  r   r   r   r  re  C  s    

r   r  c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)re  r%  r   r  r   r   NrT  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.AL  s    

r   c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)re  r%  r   r  r   r   NrT  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.AU  s    

r   c                   H    e Zd ZU eed<   eed<   eed<    ed      Zeed<   y)re  r%  r  r  Tr3  r   Nr]  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.A^  s     FJF4(As(r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   yre  r%  r  r  r   NrT  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.Af  rV  r   c                   "    e Zd ZU eed<   eed<   y)-TestKeywordArgs.test_KW_ONLY_twice.<locals>.Br  r  Nr   r   r   rU  r;   r:   r   r   r   r   rl  l  s    JFr   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   yrj  rT  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.As  s    
r   c                   ,    e Zd ZU eed<   eed<   eed<   y)rl  r   r  r   Nrm  r   r   r   r   z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.By  s    

r   r=  )r-   rJ   r  r   s       r   test_KW_ONLY_twicez"TestKeywordArgs.test_KW_ONLY_twice?  sk   F##Is3 	  	 ##Is3 	  	 ##Is3 	  	 
	) 	) 
	) 
	 	 
	
 
	 	 
	
 ##Is3 	  
 A  	 	a	 		 		 	<	 	s/   DD&=D2)(D>D#&D/2D;>Ec                    t          G d d             }| j                  t        d      5   |dddd       d d d        t          G d	 d
             } |dddd      }| j                  t	        |      ddd       y # 1 sw Y   GxY w)Nc                   R    e Zd ZU eed<   eed<   ee   ed<   eed<   ee   ed<   d Zy))TestKeywordArgs.test_post_init.<locals>.Ar%  r  r  r   r  c                 $    t        d|d|      )Nzb=z d=ra  r-   r  r  s      r   rb  z7TestKeywordArgs.test_post_init.<locals>.A.__post_init__  s    !RQD!,//r   Nr   r   r   r:   r;   rU  r  rb  r   r   r   r  rs    s(    FJs|OFs|O0r   r  zb=3 d=4rC   rM  r   r  )r   r  r  c                   R    e Zd ZU eed<   eed<   ee   ed<   eed<   ee   ed<   d Zy))TestKeywordArgs.test_post_init.<locals>.Br%  r  r  r   r  c                      || _         || _        y r   r%  r   ru  s      r   rb  z7TestKeywordArgs.test_post_init.<locals>.B.__post_init__  s    r   Nrv  r   r   r   r   rx    s(    FJs|OFs|Or   r   rz  )r(   rH   r   r)   rU  )r-   r  r   r  s       r   rt  zTestKeywordArgs.test_post_init  s    		0 	0 
	0 ##K; 	 a1Q	  
	 	 
	 a1Q!!$45	  	 s   A==Bc                    t          G d d             } |dd      }| j                  |j                  d       | j                  |j                  d       | j                  |j                  d       | j                  |j
                  d       d}| j                  t        |      5  t          G d	 d             }d d d        y # 1 sw Y   y xY w)
Nc                   H    e Zd ZU dZeed<   eed<   eed<   dZeed<   eed<   y)	(TestKeywordArgs.test_defaults.<locals>.Ar   r%  r  r  rC   r   r  Nr   r   r   r%  r:   r;   rU  r   r   r   r   r  r}    s#    AsJJFAsJFr   r  r  r   )r  r  r   rC   z1non-default argument 'z' follows default argumentc                   R    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<   y	)
r}  r   r%  r   r  r  rC   r   r  Nr~  r   r   r   r  z(TestKeywordArgs.test_defaults.<locals>.A  s(    3

3
r   )r(   r)   r%  r  r   r  rH   r   )r-   r  r%  	err_regexs       r   test_defaultszTestKeywordArgs.test_defaults  s    		 	 
	 QKa a a a  H	##Iy9 	  	 	 	s   &CCc           	      N   t        ddgd      }| j                  t        |      d   j                         t        dddt        t        d      fgd      }| j                  t        |      d   j                         | j                  t        |      d	   j                         y )
Nr  r%  Tr3  r   r   r  FrC   )r  rv   r+   r4  r:   rG   r  rW  s      r   test_make_dataclassz#TestKeywordArgs.test_make_dataclass  s    3t4q	!,,-3#sE%,@!AB#') 	q	!,,-1--.r   N)r   r   r   r:  rL  r  r^  rb  rp  rt  r  r  r   r   r   r/  r/    s2    8"2/h=.!`
>B64:/r   r/  __main__);dataclassesr  rk  r  rs   r  r]  r  rm  unittestunittest.mockr   typingr   r   r   r   r	   r
   r   r   r   r   r   r   collectionsr   r   r   r   	functoolsr   	Exceptionr   r!   r  r  r  r.  rO  rc  r~  r  r  r  r-  r  r:   rY  r   rZ  r  r]  r`  r  r  r
  r/  mainr   r   r   <module>r     s(  
  
 	         m m m m ! C C $   #) "b!x   b!JC H--  Fc/H%% c/LR%x   R%jD*x   D*N,%X ,%^J8$$ JXYMx   YMxW"" Wtq,!! q,hsh'' sjX$H-- X$v !!2c3ZLA*+F-0#J<2:<  (3*> )*D,/:,19; @8)) @8DT=(## T=H"58$$ "5J>3H%% >3BO/h'' O/d zHMMO r   