
    dafL                    X   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 d dl m!Z!  G d	 d
e"      Z# G d de	jH                        Z$ G d de	jH                        Z% G d de	jH                        Z& G d de	jH                        Z' G d de	jH                        Z( G d de	jH                        Z) G d de	jH                        Z* G d de	jH                        Z+ G d de	jH                        Z, G d de	jH                        Z- G d d e	jH                        Z. G d! d"e	jH                        Z/ e0d#d$e1fg      Z2 e0d%d$e1fge3&      Z4 e0d'd$e1fg      Z5 e0d(d$e1fgd)&      Z6 G d* d+e	jH                        Z7 G d, d-e	jH                        Z8 G d. d/e	jH                        Z9 G d0 d1e	jH                        Z: G d2 d3e	jH                        Z;e3d4k(  r e	jx                          yy)5    )*N)Mock)ClassVarAnyListUnionTupleDictGenericTypeVarOptionalProtocolDefaultDict)get_type_hints)dequeOrderedDict
namedtupledefaultdict)total_ordering)supportc                       e Zd Zy)CustomErrorN__name__
__module____qualname__     9/root/Python-3.12.4/Lib/test/test_dataclasses/__init__.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 Zldk Zmdl Znym)n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&   r3   (   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&   r8   0       Fr   r&   *   r)   r*   r9   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_factoryr9   N)r   r   r   fieldr;   r9   r<   r   r   r   r&   rC   :   s    q#>3>r   r&   )assertRaisesRegex
ValueErrorr)   )r.   msgr&   s      r   (test_field_default_default_factory_errorz1TestCase.test_field_default_default_factory_error7   sC    ?##J4 	?? ? ?	? 	? 	?s   6?c                     t        ddd      }d|_        t        |      }dt        dt        d}| j	                  ||       y )	NrD   TF)rF   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))rH   namerO   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 )NrP   
,type=...,)rH   typerQ   rO   assertIn)r.   	rec_fieldrT   s      r   test_field_recursive_reprz"TestCase.test_field_recursive_reprK   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_   T       r   r&   c                   &    e Zd ZU  e       Zeed<   y)-TestCase.test_recursive_annotation.<locals>.Dr&   N)r   r   r   rH   r&   r<   r   r   r   Drb   W   s    7AqNr   rc   rX   )r)   rZ   rO   __dataclass_fields__r.   r&   rc   s      r   test_recursive_annotationz"TestCase.test_recursive_annotationS   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   Somerk   a       r   rl   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)   rO   __dataclass_params__r*   )r.   rl   rT   rU   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   rl   rr   o   rm   r   rl   cls)rK   )r)   inspect	signature
parameters
assertTruehasattrrn   )r.   rl   params      r   test_dataclass_params_signaturez(TestCase.test_dataclass_params_signaturek   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>.Cr9   Nr:   r   r   r   r&   r}   x   r=   r   r&       r9   r?   r-   s      r   test_named_init_paramszTestCase.test_named_init_paramsw   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>.Cr9   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   r9   r   Nr   r   r   r9   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   r9   Nr   r   r   r   Br          3
r   r   c                       e Zd ZU eed<   y)r   r   Nr:   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   r9   r   Nr:   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   r9   Nr   r   r   r   r&   z/TestCase.test_two_fields_one_default.<locals>.C   r   r   )r)   r*   r9   r   rI   	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ri   c                       e Zd ZU eed<   d Zy)'TestCase.test_overwrite_hash.<locals>.Cr9   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   r9   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   r9   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   r9   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*   hashrI   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      .@r9   r   r   N)r   r   r   r9   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   r9   N)r   r   r   r   r;   r<   r9   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*   rO   )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.   rt   ru   __init__nextiterrv   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BUILTINSNr:   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             } |d      j                  dk(  sJ 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   rG   r9   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   rH   r9   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   rH   r   r;   r<   r   r   r   r   Yr   ,  s    ;7As7(+ #+r   r   r   r   )r)   r   )r.   r   r   s      r   /test_field_with_special_single_underscore_namesz8TestCase.test_field_with_special_single_underscore_names"  sQ     
	> 	> 
	> 	
		, 	, 
	, 3xzzS   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>8  ,       
<<%!:*=  
   !$r&   sortedbuiltins__dict__keysr   make_dataclassr*   getattrr.   builtins_namesrQ   
attributesr&   r   r	  s         @r   test_field_named_like_builtinz&TestCase.test_field_named_like_builtin3  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>J  r  r  r&   Tr   r  r  s         @r   $test_field_named_like_builtin_frozenz-TestCase.test_field_named_like_builtin_frozenD  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  X  r'   r   r  Forderc                       e Zd Zy))TestCase.test_0_field_compare.<locals>.C1Nr   r   r   r   r   r"  \  r'   r   r   rs   c                     | |k  S r   r   ar  s     r   r   z/TestCase.test_0_field_compare.<locals>.<lambda>c  
    q1u r   c                     | |k  S r   r   r%  s     r   r   z/TestCase.test_0_field_compare.<locals>.<lambda>d  
    qAv r   c                     | |kD  S r   r   r%  s     r   r   z/TestCase.test_0_field_compare.<locals>.<lambda>e  r'  r   c                     | |k\  S r   r   r%  s     r   r   z/TestCase.test_0_field_compare.<locals>.<lambda>f  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&   r2  l  r'   r   r&   )	r)   subTestr*   	enumeraterI   r   r   assertLessEqualassertGreaterEqualr.   r  r   rs   r-  fnr&   s          r   test_0_field_comparezTestCase.test_0_field_compareV  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>.C0r9   Nr:   r   r   r   r  r<  t  r=   r   r  Fr  c                       e Zd ZU eed<   y))TestCase.test_1_field_compare.<locals>.C1r9   Nr:   r   r   r   r   r>  x  r=   r   r   r#  rD   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/  r0  Tc                       e Zd ZU eed<   y)(TestCase.test_1_field_compare.<locals>.Cr9   Nr:   r   r   r   r&   rD    r=   r   r&   )r)   r3  r*   r   r4  rI   r   r   
assertLessr5  assertGreaterr6  r7  s          r   test_1_field_comparezTestCase.test_1_field_comparer  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>.C0r9   r   Nr:   r   r   r   r  rJ        FFr   r  Fr  c                   "    e Zd ZU eed<   eed<   y)(TestCase.test_simple_compare.<locals>.C1r9   r   Nr:   r   r   r   r   rM    rK  r   r   r#  r   rD      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/  r0  Tc                   "    e Zd ZU eed<   eed<   y)'TestCase.test_simple_compare.<locals>.Cr9   r   Nr:   r   r   r   r&   rT    rK  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>  rV  r   c                     | |k\  S r   r   r%  s     r   r   z.TestCase.test_simple_compare.<locals>.<lambda>  rV  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>  rV  r   c                     | |k7  S r   r   r%  s     r   r   z.TestCase.test_simple_compare.<locals>.<lambda>  rV  r   c                     | |kD  S r   r   r%  s     r   r   z.TestCase.test_simple_compare.<locals>.<lambda>  rZ  r   c                     | |k\  S r   r   r%  s     r   r   z.TestCase.test_simple_compare.<locals>.<lambda>  rV  r   c                     | |k7  S r   r   r%  s     r   r   z.TestCase.test_simple_compare.<locals>.<lambda>  rV  r   )	r)   r3  r*   r   r4  rI   r   r   rw   r7  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>.Br4   Nr:   r   r   r   r   rc    r=   r   r   c                       e Zd Zy)+TestCase.test_compare_subclasses.<locals>.CNr   r   r   r   r&   re    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>  rg  r   Tr,  r   c                     | |k  S r   r   r%  s     r   r   z2TestCase.test_compare_subclasses.<locals>.<lambda>  rZ  r   c                     | |k  S r   r   r%  s     r   r   z2TestCase.test_compare_subclasses.<locals>.<lambda>  rV  r   c                     | |kD  S r   r   r%  s     r   r   z2TestCase.test_compare_subclasses.<locals>.<lambda>  rZ  r   c                     | |k\  S r   r   r%  s     r   r   z2TestCase.test_compare_subclasses.<locals>.<lambda>  rV  r   z.not supported between instances of 'B' and 'C')r)   r4  r3  r*   rI   r   )r.   r   r&   r-  r8  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 ]>  \  }}}| 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
                         n
J d|       d d d        A y # 1 sw Y   xY w# 1 sw Y   YxY w)N))FFneither)FT	exception)TFeq_only)TTboth)eqr   rq  z eq must be true if order is truec                       e Zd Zy!TestCase.test_eq_order.<locals>.CNr   r   r   r   r&   rw         r   r&   c                       e Zd Zyrv  r   r   r   r   r&   z!TestCase.test_eq_order.<locals>.C      r   rp  r   __lt____le____gt____ge__rs  rr  unknown result )r3  rI   rJ   r)   assertNotInr  rZ   )r.   rt  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::>Bz&BBu=C C$	C! !C Cs#   II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>.Cr9   Nr   r   r   rH   r9   r;   r<   r   r   r   r&   r    s    WAsr   r&   r   8__init__\(\) missing 1 required positional argument: 'x')r)   r*   r9   rI   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rF   r9   N)r   r   r   rH   r9   r   r<   r  s   r   r&   r    s    g.Av.r   r&   r   )r   r)   assertIsr9   r*   )r.   r&   r   rF   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rO   r9   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  r9   r   Nr  r   r   r   r&   z$TestCase.test_not_in_repr.<locals>.C0  s    &As&Fr      z*TestCase.test_not_in_repr.<locals>.C(y=20))r)   assertRaisesr   r*   rO   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   r9   F   )comparerF   r   N)r   r   r   r9   r;   r<   rH   r   r   r   r   r&   r  8  s    AsJ5!4As4r   r&   r   r  rD   r   r   r  r)   r*   r   r   s     r   test_not_in_comparezTestCase.test_not_in_compare7  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  D      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  I  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>.AN  s    #3%r   c                       yNr   r   r   r   r   r   z5TestCase.test_no_unhashable_default.<locals>.<lambda>W  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>.AX  s    #3#r   )rI   rJ   r)   r   )r.   unhashable_rer  r  r  s      @@r   test_no_unhashable_defaultz#TestCase.test_no_unhashable_defaultB  s    	 	 H##J> 	  	
 ##J> 	&& & &	& ##J> 	$#J"+J$ $ $	$ 	$	 	
	& 	&	$ 	$s#   B9C%C9CCCc           	      z   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             n
J d|       d d d         y # 1 sw Y   xY w)N))TFrH   )TTrH   )FFabsent)FTr  )NFr  )NTrH   )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   rF   r9   Nr  )r  hash_s   r   r&   r  i  s    "7JAsJr   r&   rH   r   )r   r  r   r  )r3  r)   r*   r   )r.   r  r&   r  r  s      @@r   test_hash_field_ruleszTestCase.test_hash_field_rules\  s    . 	?)Uw 5': ?t,K K -K W$$$T!A$Zd<x'$$T!A$Zb:>OF:">>5? ?	?? ?s   BB11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rN   r9   Nr  r   r   r   r&   r  y  r  r   r&   r9   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  r9   r   r   Fr  r   r   tN)	r   r   r   r;   r<   r   rH   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  r9   r   )r)   r  r  r*   varsr   s     r   test_init_false_no_defaultz#TestCase.test_init_false_no_defaultv  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>.Cr9   FNrN   rF   r   r  r   )	r   r   r   r;   r<   rH   r   r   r   r   r   r   r&   r    s'    Ft4As4&As&r   r&   r   r   r9   rD   r   rN  r   )r)   r,   assertIsInstancetupler  rY   FieldrZ   rQ   r<   r*   r+   r;   assertFalserx   rw   rN   rO   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   rc   r    r  r   rc   )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,   rQ   rF   )r.   r   r&   r  rc   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>.Cr9   Fr  r   r   r   r  r  N)
r   r   r   r;   r<   rH   r   r   r   r  r  s   r   r&   r    s0    F&As&Av3'As'r   r&   r9   r   r   )r   r)   r  rx   r  r   r*   r  )r.   r&   rF   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)NrD   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>.Pointr9   N)r   r   r   r9   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  r9   N)r   r   r   r9   r   r<   r  s   r   r&   z4TestCase.test_disallowed_mutable_defaults.<locals>.C  s    '/zAx}1r   )listr  setr3  rI   rJ   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>.Cr9   Nr   r   r   r<   )r  s   r   r&   r    s    Jr   r&   rD   rN  )r)   r*   r9   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>.Cr9   Nr:   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>.Pointr9   r   Nr:   r   r   r   r  r  *  rK  r   r  rD   rN  rD   rN  c                   "    e Zd ZU eed<   eed<   y)"TestCase.test_not_tuple.<locals>.Cr9   r   Nr:   r   r   r   r&   r  1  rK  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>.Point3Dr9   r   r   Nr:   r   r   r   Point3Dr  :      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dayNr:   r   r   r   Dater  @  s    IJHr   r  i     r   rD   rN  )rD   rN  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   r9   r   r   N)r   r   r   r9   r;   r<   r   r   r   r   r   	Point3Dv1r#  O  s    AsJAsJAsJr   r$  r   )r)   r   rI   r   )r.   r  r  r9   r   r   r$  s          r   test_not_other_dataclassz!TestCase.test_not_other_dataclass7  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(  X  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 )Nr4   jkr  r   r.   )r*   r<   r;   r   floatcomplexrt   ru   r   r  return_annotationr   rv   valuesr   rQ   
annotationrF   	Parameterr  kindPOSITIONAL_OR_KEYWORDr  StopIteration)rs   ru   paramsry   r)  r.   s       r   validate_classz:TestCase.test_function_annotations.<locals>.validate_class\  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>.Cr4   r+  r,  Nr  r  y      @      @FrF   rN   r   r   r   r   r;   r<   r   r,  rH   r  r-  r   r.  r)  r  s   r   r&   r:    6    FFAqH4(Au(T6Aw6r   r&   T)ri   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r9  r<  r=  s   r   r&   z-TestCase.test_function_annotations.<locals>.C  r>  r   )r)   )r.   r7  r&   r)  r  s   `  @@r   test_function_annotationsz"TestCase.test_function_annotationsV  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  r9   Nr   r   r   rH   rR   r9   r;   r<   r   r   r   r&   rC    s    )As)r   r&   3__init__\(\) missing 1 required positional argumentr9   c                       e Zd ZU eed<   y)(TestCase.test_missing_default.<locals>.Dr9   Nr:   r   r   r   rc   rG    r=   r   rc   r)   rI   r   r  r  re   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   r9   NrD  r   r   r   r&   rM    s    1As1r   r&   rE  r9   c                   ,    e Zd ZU  eee      Zeed<   y)0TestCase.test_missing_default_factory.<locals>.DrE   r9   NrD  r   r   r   rc   rO    s    'BAsBr   rc   rH  re   s      r   test_missing_default_factoryz%TestCase.test_missing_default_factory  s     
	2 	2 
	2##I%:; 	 C	 	ajj)		C 	C 
	C##I%:; 	 C	 	ajj)	 		 	rJ  c                 B    | j                  dt        t                     y )NzMISSING_TYPE object)rZ   rO   rR   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>.Cr4   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   propertyr\  r   r   r   r&   rU    s,    FS S  r   r&   r4   r   r  r   )r)   r*   r  r<   r   r\  r4   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   rd  r   r   r   r&   ra        $r   r&   c                   "    e Zd ZU dZeed<   d Zy)ra  r   r4   c                 6    | j                   dk(  r
t               y Nr   )r4   r   r   s    r   rd  z0TestCase.test_post_init.<locals>.C.__post_init__  s    66R<%-'  r   N)r   r   r   r4   r;   r<   rd  r   r   r   r&   z"TestCase.test_post_init.<locals>.C  s    AsK(r   r   Fr  c                       e Zd Zd Zy)ra  c                     t               r   rc  r   s    r   rd  z0TestCase.test_post_init.<locals>.C.__post_init__  re  r   Nrf  r   r   r   r&   z"TestCase.test_post_init.<locals>.C  rg  r   c                   "    e Zd ZU dZeed<   d Zy)ra  r   r9   c                 .    | xj                   dz  c_         y NrN  r   r   s    r   rd  z0TestCase.test_post_init.<locals>.C.__post_init__      !r   Nr   r   r   r9   r;   r<   rd  r   r   r   r&   z"TestCase.test_post_init.<locals>.C      AsJr   r   rN  r  Tr   c                   "    e Zd ZU dZeed<   d Zy)ra  r   r9   c                 .    | xj                   dz  c_         y ro  r   r   s    r   rd  z0TestCase.test_post_init.<locals>.C.__post_init__  rp  r   Nrq  r   r   r   r&   z"TestCase.test_post_init.<locals>.C  rr  r   )r)   r  r   r*   r9   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   rc  r   s    r   rd  z6TestCase.test_post_init_super.<locals>.B.__post_init__
  re  r   Nrf  r   r   r   r   ry  	  s    $r   r   c                       e Zd Zd Zy)(TestCase.test_post_init_super.<locals>.Cc                     d| _         y r[  r   r   s    r   rd  z6TestCase.test_post_init_super.<locals>.C.__post_init__  	    r   Nrf  r   r   r   r&   r|    s    r   r&   r   c                        e Zd Z fdZ xZS )r|  c                 "    t         |           y r   )superrd  r.   	__class__s    r   rd  z6TestCase.test_post_init_super.<locals>.C.__post_init__  s    %'r   )r   r   r   rd  __classcell__r  s   @r   r&   z(TestCase.test_post_init_super.<locals>.C  s    ( (r   c                       e Zd Zy)r|  Nr   r   r   r   r&   z(TestCase.test_post_init_super.<locals>.C  r'   r   )r)   r*   r9   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>.Cr9   r   c                  
    d y NTr   flags   r   rd  z=TestCase.test_post_init_staticmethod.<locals>.C.__post_init__,  s
     r   N)r   r   r   r;   r<   staticmethodrd  r  s   r   r&   r  (  s    FF r   r&   r   r  r   r  )r)   r  r*   r9   r   rw   )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>.CFr9   r   c                     d| _         y r  r  r#  s    r   rd  z<TestCase.test_post_init_classmethod.<locals>.C.__post_init__<  s	    r   N)r   r   r   r  r;   r<   classmethodrd  r   r   r   r&   r  7  s#    DFF   r   r&   r   r  r  )r)   r  r  r*   r9   r   rw   r   s      r   test_post_init_classmethodz#TestCase.test_post_init_classmethod6  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  J  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   rd  z@TestCase.test_post_init_not_auto_added.<locals>.B0.__post_init__Q  	     $r   Nr   r   r   r  boolr<   rd  r   r   r   B0r  N      "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  rd  r  r  s    r   rd  z@TestCase.test_post_init_not_auto_added.<locals>.C0.__post_init__W      %' $r   r   r   r   r  r  r<   rd  r  r  s   @r   r  r  T      "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   rd  z@TestCase.test_post_init_not_auto_added.<locals>.A1.__post_init__g  r   r   Nrf  r   r   r   A1r  e  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   rd  z@TestCase.test_post_init_not_auto_added.<locals>.B1.__post_init__m  r  r   Nr  r   r   r   B1r  j  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   rd  z@TestCase.test_post_init_not_auto_added.<locals>.C1.__post_init__s  r  r   r  r  s   @r   r   r  p  r  r   r   )r)   rw   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_addedE  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>.Cr9   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)rN  r   r  r  r  r  rD     r  r  r   )r)   r*   rO   r+   r,   r<   r   r  r  r  r9   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>.Cr9   N)r   r   r   r   r;   r<   r   r   r   r&   r    s    }r   r&   r9   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   r9   Nr   r   r   rH   r;   r9   r   r<   r   r   r   r&   r        #(#=8C==r   r&   r9   rI   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   r9   N)r   r   r   r9   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  r9   N)r   r   r   rH   r9   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>.Cr9   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)rN  r  r  r  rD   r  r  r  )r)   r*   rO   r+   r,   r<   r   r  r  r9   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>.Cr9   N)r   r   r   InitVarr;   r<   r   r   r   r&   r    s    s|Or   r&   r9   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   r9   N)r   r   r   rH   r;   r9   r  r<   r   r   r   r&   r    s    "'"<73<<r   r&   r9   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   r9   N)r   r   r   r9   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  r9   N)r   r   r   rH   r9   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>.CNr9   
init_paramc                 2    | j                   |dz  | _         y y ro  r   )r.   r  s     r   rd  z/TestCase.test_init_var.<locals>.C.__post_init__  s    66>'\DF "r   )	r   r   r   r9   r;   r<   r  r  rd  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;   rY   rO   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>.Baser9   	init_baseN)r   r   r   r;   r<   r  r   r   r   r   r    s    Fs|#r   r   r   r   r9   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   r9   r   )r.   r  r  s      r   rd  z;TestCase.test_init_var_inheritance.<locals>.C.__post_init__!  s"    )+,.r   Nr   r   r   r;   r<   r  rd  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                 r    t          G d d             } |d      }| j                  |j                  d       y )Nc                   P    e Zd ZU ee   ed<    ed      Zeed<   d Ze	d        Z
y)0TestCase.test_init_var_name_shadowing.<locals>.CshadowedFr  	_shadowedc                     |dz  | _         y ro  r	  )r.   r  s     r   rd  z>TestCase.test_init_var_name_shadowing.<locals>.C.__post_init__5  s    !)Ar   c                      | j                   dz  S Nr   r  r   s    r   r  z9TestCase.test_init_var_name_shadowing.<locals>.C.shadowed8  s    ~~))r   N)r   r   r   r  r;   r<   rH   r	  rd  r]  r  r   r   r   r&   r  0  s4    cl"".Is.. * *r   r&   r      )r)   r*   r  r   s      r   test_init_var_name_shadowingz%TestCase.test_init_var_name_shadowing(  s:     
		* 		* 
		* aDR(r   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>.Cr9   r   r   N)r   r   r   r;   r<   rH   r  r   r   r   r   r&   r  A  s    FD1At1r   r&   r   r   rD   c                   <    e Zd ZU eed<    e fd      Zeed<   y)r  r9   c                       S r   r   r  s   r   r   z1TestCase.test_default_factory.<locals>.C.<lambda>S  s    A r   r   r   N)r   r   r   r;   r<   rH   r   r  r  s   r   r&   z(TestCase.test_default_factory.<locals>.CP  s    FI6At6r   c                   ,    e Zd ZU  eed      Zeed<   y)r  F)rG   rO   r9   Nr   r   r   rH   r  r9   r<   r   r   r   r&   z(TestCase.test_default_factory.<locals>.C_      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)rG   r   r9   Nr  r   r   r   r&   z(TestCase.test_default_factory.<locals>.Cf  r  r   r   c                   ,    e Zd ZU  eed      Zeed<   y)r  FrG   rN   r9   Nr  r   r   r   r&   z(TestCase.test_default_factory.<locals>.Cm  r  r   c                   ,    e Zd ZU  eed      Zeed<   y)r  F)rG   r  r9   Nr  r   r   r   r&   z(TestCase.test_default_factory.<locals>.Cs  s    D%@At@r   )	r)   r*   r9   r   assertIsNotastupler  rO   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  r9   N)r   r   r   rH   r9   r  r<   factorys   r   r&   r#  |  s    G%@At@r   r&   rD   rN  r   r)   r9   r*   
call_countr.   r&   r%  s     @r   !test_default_factory_with_no_initz*TestCase.test_default_factory_with_no_initx  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   r9   Nr  r$  s   r   r&   r,    s    73As3r   r&   rD   r   rN  r&  r(  s     @r   .test_default_factory_not_called_if_value_givenz7TestCase.test_default_factory_not_called_if_value_given  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   r9   N)r   r   r   rH   r  r9   r<   r   r   r   Foor0    s    D1At1r   r1  c                       e Zd ZU dZeed<   y)2TestCase.test_default_factory_derived.<locals>.BarrD   r   Nr   r   r   r   r;   r<   r   r   r   Barr3        AsJr   r5  rD   c                       e Zd Zy)2TestCase.test_default_factory_derived.<locals>.BazNr   r   r   r   Bazr8    r'   r   r9  )r)   r*   r9   r   )r.   r1  r5  r9  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>.Ar9   Nr:   r   r   r   r  r=    r=   r   r  c                       e Zd ZU eed<   y)3TestCase.test_intermediate_non_dataclass.<locals>.Br   Nr:   r   r   r   r   r?        Fr   r   c                       e Zd ZU eed<   y)3TestCase.test_intermediate_non_dataclass.<locals>.Cr   Nr:   r   r   r   r&   rB    r=   r   r&   rD   r   )rD   r   zobject has no attributec                       e Zd ZU eed<   y)3TestCase.test_intermediate_non_dataclass.<locals>.Dr  Nr:   r   r   r   rc   rD    r@  r   rc   r  r   )r  r   )r)   r*   r9   r   rI   AttributeErrorr   )r.   r  r   r&   r   rc   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   r9   Nr  r   r   r   r&   rI    r  r   r&   rI   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   NotDataClassrO    r`   r   rP  r   c                       e Zd ZU eed<   y)%TestCase.test_is_dataclass.<locals>.Cr9   Nr:   r   r   r   r&   rR    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   rc   rT    s    DFr   rc   r   r  )r  is_dataclassr;   r)   rw   r9   r  rU  )r.   rP  rc   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__  rY  r   N)r   r   r   r^  r   r   r   r  r[    s    r   r  c                       e Zd Zy)ATestCase.test_is_dataclass_when_getattr_always_returns.<locals>.BNr   r   r   r   r   r`    r`   r   r   )objz'should be called on dataclass instancesr   r   )	r  rW  rd   r3  rI   r   asdictr  replace)r.   r  r&  r   r  ra  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   rY   r<   r   r   r   r  rg    s    LJr   r  )r)   typesGenericAliasrw   rW  r  r;   rY   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             } G d d|      }| j                  t        |      d       | j                  t        |      d        |d      }| j                  t        |      d	       y )
Nc                       e Zd ZU eed<   y)1TestCase.test_is_dataclass_inheritance.<locals>.Xr   Nr:   r   r   r   r   rp    r=   r   r   c                       e Zd Zy)1TestCase.test_is_dataclass_inheritance.<locals>.ZNr   r   r   r   Zrr    r`   r   rs  zX should be a dataclassz2Z should be a dataclass because it inherits from Xr   r   z?z_instance should be a dataclass because it is an instance of Z)r)   rw   rW  )r.   r   rs  
z_instances       r   test_is_dataclass_inheritancez&TestCase.test_is_dataclass_inheritance  sr    		 	 
		 	 	Q)BCO@	
 V
$M	
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>.Cr9   r   N)r   r   r   r;   r<   r-  r   r   r   r&   rx  $  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&   r|  1  r    r   r&   )rI   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)filerE  rd   )	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_exception7  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>.Cr9   r   Nr:   r   r   r   r&   r  C  rK  r   r&   rD   rN  r  r>   )r)   r*   rb  r  r9   r  rY   r  r   s      r   test_helper_asdictzTestCase.test_helper_asdictA  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>.Cr9   r   Nr:   r   r   r   r&   r  R  rK  r   r&   dataclass instance)r)   rI   r   rb  r;   r   s     r   $test_helper_asdict_raises_on_classesz-TestCase.test_helper_asdict_raises_on_classesP  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>.Cr9   r   r   N	r   r   r   r;   r<   rH   r  r   r   r   r   r   r&   r  \      F 6AtCy6r   r&   rD   r   )r)   rb  r*   r  appendr   )r.   r&   initialr   r  s        r   test_helper_asdict_copy_valuesz'TestCase.test_helper_asdict_copy_values[  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groupNr:   r   r   r   UserIdr  k      JJr   r  c                   &    e Zd ZU eed<   W  ed<   y)0TestCase.test_helper_asdict_nested.<locals>.UserrQ   rP   Nr   r  s   r   Userr  o      IJr   r  Joe{   rD   )r  r  rQ   rP   rN  )r)   rb  r*   r  rP   r  )r.   r  ur  r  s       @r   test_helper_asdict_nestedz"TestCase.test_helper_asdict_nestedj  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>.UserrQ   rP   Nr   r   r   r   r<   r;   r   r   r   r  r  |      IGr   r  c                   ,    e Zd ZU eed<   eW     ed<   y)ATestCase.test_helper_asdict_builtin_containers.<locals>.GroupListrP   usersNr   r   r   r;   r<   r   r  s   r   	GroupListr        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>.GroupTuplerP   .r  Nr   r   r   r;   r<   r	   r  s   r   
GroupTupler        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>.GroupDictrP   r  Nr   r   r   r;   r<   r
   r   r  s   r   	GroupDictr        GT	?"r   r  AlicerD   BobrN  r   r   secondr  )rP   r  r)   r*   rb  
r.   r  r  r  r&  r  glgtgdr  s
            @r   %test_helper_asdict_builtin_containersz.TestCase.test_helper_asdict_builtin_containers{  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        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        Lr   r  rD   r  r  rN  r  r.   r  r  s     @r   ,test_helper_asdict_builtin_object_containersz5TestCase.test_helper_asdict_builtin_object_containers  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>.Cr9   r   Nr:   r   r   r   r&   r    rK  r   r&   rD   rN  dict_factory)r9   rD   )r   rN  r>   )r9   r>   )r)   rb  r   r*   r  r9   r  rY   r.   r&   r   r  s       r   test_helper_asdict_factoryz#TestCase.test_helper_asdict_factory  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>.Cr9   r   Nr   r  s   r   r&   r        FDr   r&   outerrD   innerr        rN  r  r  r   )r   r)   rb  r*   r   r  rY   )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*   rb  )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)   rb  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&   r9   r  r  r  )r)   r   r  r  rb  r*   rw   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>.Cr9   r   r   Nr   r   r   r   r&   r	    r   r   r&   rD   )rD   r   r>   )rD   r>   )r)   r*   r  r  r   r  rY   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>.Cr9   r   Nr:   r   r   r   r&   r    rK  r   r&   r  )r)   rI   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>.Cr9   r   r   Nr  r   r   r   r&   r    r  r   r&   rD   )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  Nr:   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>.UserrQ   rP   Nr   r  s   r   r  r  /  r  r   r  r  r  rD   )r  )r  rD   rN  )r  )r  rN  )r)   r  r*   r  rP   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>.UserrQ   rP   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>.GroupListrP   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>.GroupTuplerP   .r  Nr  r  s   r   r  r  C  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>.GroupDictrP   r  Nr  r  s   r   r  r!  G  r  r   r  r  rD   r  rN  r   r  r  rD   r  rN  )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(  U  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*  Y  r  r   r  rD   rN  r$  r  s     @r   -test_helper_astuple_builtin_object_containersz6TestCase.test_helper_astuple_builtin_object_containersT  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>.Cr9   r   Nr:   r   r   r   r&   r.  a  rK  r   r&   NTzx yc                      |  S r   r   )r  r/  s    r   ntz0TestCase.test_helper_astuple_factory.<locals>.ntf  s    s8Or   rD   rN  tuple_factoryr>   )r)   r   r  r*   r  r9   r  rY   )r.   r&   r1  r   r  r/  s        @r   test_helper_astuple_factoryz$TestCase.test_helper_astuple_factory`  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>.Cr9   r   Nr   r  s   r   r&   r7  s  r  r   r&   r  rD   r  r  r  r  rN  )r  )r  r  r  r2  )r   r)   r  r*   r  )r.   r&   r   r  r  s       @r   test_helper_astuple_namedtuplez'TestCase.test_helper_astuple_namedtupleq  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;    r  r   r&   r9   r  r  r   )r)   r   r  r  r  r*   rw   )r.   r&   r  r   r  s        r   test_helper_astuple_defaultdictz(TestCase.test_helper_astuple_defaultdict  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   rD   rN  )r;   rY   r)   r*   rb  r.   cls_dictrs   cls1s       r   test_dynamic_class_creationz$TestCase.test_dynamic_class_creation  s^    %Ss';  3H% ~s#Aq	*!!,<=r   c                     t         t         dt        d      d}t        dd|      }t        |      }| j	                  ||       | j	                  t         |d            ddd       y )Nr  r   r  )r<   r   r&   r   rD   )r;   rH   rY   r)   r*   rb  r>  s       r   'test_dynamic_class_creation_using_fieldz0TestCase.test_dynamic_class_creation_using_field  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  r;  rU  r  N)r   r   r   r;   r<   rH   r  r  r   r  rU  r  r   r   r   r&   rF    sM    FWAsDu=At=D1At1151As1AsJr   r&   c                 ,    j                  ||f       y r   )r  )r.   rQ   valuecallss      r   setattrz,TestCase.test_init_in_order.<locals>.setattr  s    LL$'r   r   rD   )r&  r   )r  rD   r   rN  r  r   )rU  r  )r  r  r  )r)   __setattr__r*   r  )r.   r&   rJ  r   rI  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  r;  r  r   rU  N)r   r   r   r;   r<   rH   r  r  r   r  rU  r   r   r   r&   rO    sA    FDu=At=D1At1151As1AsJr   r&   r   r&  r  r   r  r  rU  )
r)   r  r  rZ   r*   r  rU  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>.Cr9   c                     d} | |      S )Nr  r   )rs   filenamevalue_in_files      r   	from_filezDTestCase.test_alternate_classmethod_constructor.<locals>.C.from_file  s     !#=))r   N)r   r   r   r;   r<   r  rW  r   r   r   r&   rS    s    F* *r   r&   rU  r  )r)   r*   rW  r9   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>.Cr4   Nr:   r   r   r   r&   r[    r=   r   r&   r    does not support item assignmentr   test)r)   r  r,   metadatar*   r+   rI   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   r^  r4   Nr   r   r   rH   r4   r;   r<   r   r   r   r&   rb    s    *3*r   r&   c                   .    e Zd ZU  eW        Zeed<   yrb  rc  r4   Nrd  r  s   r   r&   z/TestCase.test_field_metadata_mapping.<locals>.C      A&As&r   r   rD   r   r\  r   r]  r   42three)r]  r\  r   c                   .    e Zd ZU  eW        Zeed<   yrf  rd  rg  s   r   r&   z/TestCase.test_field_metadata_mapping.<locals>.C  rh  r   r\  r  baz)
r  r   r)   r  r,   r^  r*   r+   rI   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   r{  zLTestCase.test_field_metadata_custom_mapping.<locals>.SimpleNameSpace.__len__1  s    }},,..r   N)r   r   r   r   ry  r{  r   r   r   SimpleNameSpacerq  (  s    )+
/r   r|  c                   <    e Zd ZU  e W  d            Zeed<   y)6TestCase.test_field_metadata_custom_mapping.<locals>.Cr   r  rc  r4   Nrd  )r|  s   r   r&   r~  4  s    Ob$9:As:r   r&   r   rD   r&  r   r  rv  rw  )r)   r*   r+   r,   r^  r  rE  )r.   r&   r|  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<   r  r   r  s   r   
LabeledBoxr  B  s    J$E3$r   r  r>   r  )r   r)   r   r*   r  r  r   r;   )r.   r  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>.Baser9   r   Nr  )r  r  s   r   r   r  R  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   DataDerivedr  W  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_method_  r  r   N)r   r   r   r  r   r   r   NonDataDerivedr  ^  r  r   r  r         ?)	r   r)   r   r;   r   r*   r  r-  r  )r.   r   r  r  r   r  r  r  s         @@r   test_generic_extendingzTestCase.test_generic_extendingN  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>.Parentr9   Nr  r  s   r   r  r  h  r  r   r  r  r   r   r   r>   )bases	namespacerD   rN  r   )r   r)   r   r  r   r;   r  r   r*   r   r9   __mro__r   )r.   r  r  r  r  s       @r   test_generic_dynamiczTestCase.test_generic_dynamice  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)Pr9   r   r   Nr   r   r   r   r  r  x  r   r   r  c                   6    e Zd ZU eed<    edd      Zeed<   y)Qr9   r   Fr;  r   Nr   r   r   r;   r<   rH   r   r   r   r   r  r  |  s    F151As1r   r  c                   :    e Zd ZU eed<    ee      Zee   ed<   y)Rr9   r   r   Nr  r   r   r   r  r    r  r   r  rD   rN  )rN  r   r  )sampleprotor>   )r)   r  r  r  r   rangepickleHIGHEST_PROTOCOLr3  loadsdumpsr*   r9   r  )r.   qsamplesr  r  
new_sampleanother_new_samples          r   test_dataclasses_pickleablez$TestCase.test_dataclasses_pickleablev  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   ri   c                   "    e Zd ZU eed<   eed<   y).TestCase.test_dataclasses_qualnames.<locals>.Ar9   r   Nr:   r   r   r   r  r    rK  r   r  r   )
r   r{  r|  r}  r~  r   r   __repr__rK  __delattr__z/TestCase.test_dataclasses_qualnames.<locals>.A.zA\.__init__\(\) missing)r)   r*   r   r   r  r   rI   r   )r.   r  functions      r   test_dataclasses_qualnamesz#TestCase.test_dataclasses_qualnames  s    	4	=	 	 
>	 	,,j9
 	~H WQ1>>Bqrzq{@|}	~ ##I/IJ 	C	 	 	s   BB"N)or   r   r   r0   r5   r@   rL   rV   r\   rf   ro   rz   r   r   r   r   r   r   r   r   r   r  r  r9  rG  r`  rn  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r%  r@  rI  rP  rR  r^  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r)  r-  r:  rF  rK  rX  rd  rm  ru  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r%  r+  r4  r8  r<  rA  rC  rL  rP  rX  r_  rn  r  r  r  r  r  r  r   r   r   r"   r"      s=   ,,"?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*	.
""
;74).7&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   rH   r  r   r   r   r&   r    	    Gr   r&   rJ  r   s     r   test_field_without_annotationz3TestFieldNoAnnotation.test_field_without_annotation  sB    ##I$OQ 	  	 	 	rL  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  Nr:   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)   rI   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  Nr:   r   r   r   r   r    r@  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&   rJ  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                   x    e Zd Zd Zej
                  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*   rc  )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 ipsumr9   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>.Cr9   Nr:   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>.Cr9   r   Nr:   r   r   r   r&   r    rK  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>.Cr9   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   r9   Nr   r   r   r   r&   r    r6  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>.CNr9   )r   r   r   r9   r   r;   rY   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>.Cr9   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   r9   N)	r   r   r   rH   r  r9   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>.Cr9   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   r9   N)r   r   r   rH   r   r9   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&   )rY   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   requires_docstringsr  r  r  r  r  r  r  r  r   r  r  r  r   r   r   r  r    s^    A   3 !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__9	  s	    r   Nr   r   r   r   r   r  8	  s    r   r   c                       e Zd ZU dZeed<   y)&TestInit.test_base_has_init.<locals>.Cr   r9   Nr   r   r   r   r&   r  @	  r6  r   r&   r   r   Fr  c                       e Zd ZU dZeed<   y)r  r   r9   Nr   r   r   r   r&   z&TestInit.test_base_has_init.<locals>.CI	      AsKr   r   )r)   r*   r9   r  r  r   )r.   r   r&   r   s       r   test_base_has_initzTestInit.test_base_has_init7	  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   r4   N)r   r   r   r4   r;   r<   r   r   r   r&   r$  Q	  r6  r   r&   r   c                   "    e Zd ZU dZeed<   d Zy)r$  rN  r4   c                     d| _         y r  r4   r   s    r   r   z)TestInit.test_no_init.<locals>.C.__init__Y	  r~  r   N)r   r   r   r4   r;   r<   r   r   r   r   r&   z TestInit.test_no_init.<locals>.CV	  s    AsJr   r   r)   r*   r4   r   s     r   test_no_initzTestInit.test_no_initP	  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>.Cr9   c                     d|z  | _         y ro  r   r.   r9   s     r   r   z2TestInit.test_overwriting_init.<locals>.C.__init__d	      Qr   Nr   r   r   r;   r<   r   r   r   r   r&   r,  a	      Fr   r&   r   r   Tr  c                       e Zd ZU eed<   d Zy)r,  r9   c                     d|z  | _         y ro  r   r.  s     r   r   z2TestInit.test_overwriting_init.<locals>.C.__init__k	  r/  r   Nr0  r   r   r   r&   z)TestInit.test_overwriting_init.<locals>.Ch	  r1  r   r     Fc                       e Zd ZU eed<   d Zy)r,  r9   c                     d|z  | _         y ro  r   r.  s     r   r   z2TestInit.test_overwriting_init.<locals>.C.__init__r	  r/  r   Nr0  r   r   r   r&   z)TestInit.test_overwriting_init.<locals>.Co	  r1  r   r   r   r?   r   s     r   test_overwriting_initzTestInit.test_overwriting_init]	  s     
	 	 
	 	1#			 	 
	 	1#			 	 
	 	1$r   c                      G d dt               }t         G d d|             }| 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&  Nr:   r   r   r   r  r:  z	  r@  r   r  c                       e Zd ZU eed<   y).TestInit.test_inherit_from_protocol.<locals>.Cr&  Nr:   r   r   r   r&   r<  }	  r=   r   r&   r   c                       e Zd Zd Zy).TestInit.test_inherit_from_protocol.<locals>.Dc                     |dz  | _         y ro  r  )r.   r&  s     r   r   z7TestInit.test_inherit_from_protocol.<locals>.D.__init__	  r/  r   Nr   r   r   r   rc   r>  	  s    r   rc   r   )r   r)   r*   r&  )r.   r  r&   rc   s       r   test_inherit_from_protocolz#TestInit.test_inherit_from_protocolv	  sv    	 	 
	 	 
	 	1#		 	 
	 	1$r   N)r   r   r   r!  r)  r7  r@  r   r   r   r  r  6	  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>.Br9   Nr:   r   r   r   r   rE  	  r=   r   r   c                       e Zd ZU dZeed<   y)TestRepr.test_repr.<locals>.Cr   r   Nr4  r   r   r   r&   rG  	  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  r9   Nr   r   r   r   rc   rI  	  r   r   rc   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)rG  c                       e Zd ZU eed<   y)TestRepr.test_repr.<locals>.C.Dr4   Nr:   r   r   r   rc   rL  	  r   r   rc   c                       e Zd Zy)TestRepr.test_repr.<locals>.C.ENr   r   r   r   r  rN  	  s    r   r  N)r   r   r   r)   rc   r  r   r   r   r&   zTestRepr.test_repr.<locals>.C	  s0        r   r   z$TestRepr.test_repr.<locals>.C.D(i=0)z!TestRepr.test_repr.<locals>.C.E())r)   r*   rO   rc   r  )r.   r   r&   r/   rc   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>.Cr9   Nr:   r   r   r   r&   rR  	  r=   r   r&   z+.TestRepr.test_no_repr.<locals>.C object atr   c                       e Zd ZU eed<   d Zy)rR  r9   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   rU  )r)   rZ   r   rO   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>.Cr9   c                      yNr9   r   r   s    r   r  z2TestRepr.test_overwriting_repr.<locals>.C.__repr__	  r   r   NrV  r   r   r   r&   rZ  	  r   r   r&   r   r9   Tr  c                       e Zd ZU eed<   d Zy)rZ  r9   c                      yr\  r   r   s    r   r  z2TestRepr.test_overwriting_repr.<locals>.C.__repr__	  r   r   NrV  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)rZ  r9   c                      yr\  r   r   s    r   r  z2TestRepr.test_overwriting_repr.<locals>.C.__repr__	  r   r   NrV  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   rO  rW  ra  r   r   r   rB  rB  	  s    K80 *r   rB  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rt  c                       e Zd ZU eed<   y)TestEq.test_no_eq.<locals>.Cr9   Nr:   r   r   r   r&   rg  	  r=   r   r&   r   r   c                       e Zd ZU eed<   d Zy)rg  r9   c                     |dk(  S rj  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>.Cr9   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&   rm  	      F"r   r&   rD   r   Tre  c                       e Zd ZU eed<   d Zy)rm  r9   c                     |dk(  S rX  r   r   s     r   r   z,TestEq.test_overwriting_eq.<locals>.C.__eq__	  ro  r   Nr   r   r   r   r&   z%TestEq.test_overwriting_eq.<locals>.C	  rp  r   r  Fc                       e Zd ZU eed<   d Zy)rm  r9   c                     |dk(  S r[  r   r   s     r   r   z,TestEq.test_overwriting_eq.<locals>.C.__eq__	  ro  r   Nr   r   r   r   r&   z%TestEq.test_overwriting_eq.<locals>.C	  rp  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   rj  ru  r   r   r   rc  rc  	  s    #"%r   rc  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>.Cr9   c                      | j                   |k\  S r   r   r   s     r   r{  z<TestOrdering.test_functools_total_ordering.<locals>.C.__lt__
  s     vv&r   Nr   r   r   r;   r<   r{  r   r   r   r&   rz  
  s     F'r   r&   r   rD   )r   r)   rE  r5  rF  r6  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>.Cr9   Nr:   r   r   r   r&   r  
  r=   r   r&   r|  r{  r~  r}  c                       e Zd ZU eed<   d Zy)r  r9   c                      yr   r   r   s     r   r{  z,TestOrdering.test_no_order.<locals>.C.__lt__!
  r   r   Nr|  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>.Cr9   c                      y r   r   r   s    r   r{  z5TestOrdering.test_overwriting_order.<locals>.C.__lt__/
  r   r   Nr|  r   r   r   r&   r  ,
      r   r&   zACannot overwrite attribute __le__.*using functools.total_orderingc                       e Zd ZU eed<   d Zy)r  r9   c                      y r   r   r   s    r   r|  z5TestOrdering.test_overwriting_order.<locals>.C.__le__8
  r   r   N)r   r   r   r;   r<   r|  r   r   r   r&   z.TestOrdering.test_overwriting_order.<locals>.C5
  r  r   zACannot overwrite attribute __gt__.*using functools.total_orderingc                       e Zd ZU eed<   d Zy)r  r9   c                      y r   r   r   s    r   r}  z5TestOrdering.test_overwriting_order.<locals>.C.__gt__A
  r   r   N)r   r   r   r;   r<   r}  r   r   r   r&   z.TestOrdering.test_overwriting_order.<locals>.C>
  r  r   zACannot overwrite attribute __ge__.*using functools.total_orderingc                       e Zd ZU eed<   d Zy)r  r9   c                      y r   r   r   s    r   r~  z5TestOrdering.test_overwriting_order.<locals>.C.__ge__J
  r   r   N)r   r   r   r;   r<   r~  r   r   r   r&   z.TestOrdering.test_overwriting_order.<locals>.CG
  r  r   rJ  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   r~  r  r  r   r   r   rw  rw  
  s    ) /,#r   rw  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>.Cr9   r   Nr  r   r   r   r&   r  O
  rK  r   r&   rD   r   )rD   r   r)   r*   r   r   s     r   test_unsafe_hashzTestHash.test_unsafe_hashN
  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   )rH  s    r   non_boolz*TestHash.test_hash_rules.<locals>.non_boolV
  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          nN|dk(  r?|sJ j                  t        d      5  t        |||       G d d             }d d d        n
J d|       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N)caser   rt  ri   rq  )r   rt  ri   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__e
      '(r   Nr   r   r   r   r&   r  c
      )r   r&   c                       e Zd Zy)r  Nr   r   r   r   r&   z1TestHash.test_hash_rules.<locals>.test.<locals>.Ch
  rx  r   r8  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__
  r  r   Nr   r   r   r   r&   z1TestHash.test_hash_rules.<locals>.test.<locals>.C
  r  r   r  )	r3  r)   rZ   r  assertIsNotNoner  r  rI   r   )r  r   rt  ri   	with_hashr  r&   r.   s          r   r]  z&TestHash.test_hash_rules.<locals>.test^
  s{   4[R%+  - (?[( "{r&Q) ) R) #{r&Q! ! R! T>MM*ajj9((J)?@r\$((QZZ@v%MM*ajj9%%ajj&<={* %%9//	;`a )"{r&Q) ) R)) ) ?OF:">>5Q(? (?B) )C(? (?s$   DEE5EE	EE&))FFFr  r  )FFTr  r  )FTFr  r  )FTTr8  r  )TFFr8  rq  )TFTr8  rq  )TTFr8  rq  )TTTr8  rq  rD   FT)r4  )	r.   r  r]  r  r   rt  ri   res_no_defined_hashres_defined_hashs	   `        r   test_hash_ruleszTestHash.test_hash_rulesU
  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>.Cr4   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&   rD   r  Tr   c                       e Zd ZU eed<   d Zy)r  r4   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   rt  c                       e Zd ZU eed<   d Zy)r  r4   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_only
  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>.Cr9   Nr:   r   r   r   r&   r  
  r=   r   r&   r  )r  r>   r>   r   c                       e Zd ZU eed<   yr  r:   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 ]]  \  }}}}| 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       nj|dk(  r+| j                  |j                  t         j                         n:|dk(  r+| j                  t         |d            t        d             n
J d|       d d d        ` y # 1 sw Y   xY w# 1 sw Y   xx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  )ri   rt  r  rm  c                       e Zd ZU eed<   y%TestHash.test_hash_no_args.<locals>.Cr4   Nr:   r   r   r   r&   r        r   r&   re  c                       e Zd ZU eed<   yr  r:   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  r:   r   r   r   r&   z%TestHash.test_hash_no_args.<locals>.C
  r  r   )ri   rt  c                       e Zd ZU eed<   yr  r:   r   r   r   r&   z%TestHash.test_hash_no_args.<locals>.C  r  r   r   unhashable typer   r>   r  zunknown value for expected=)	r   r3  r)   rI   r   r   r*   r  r   )r.   r   ri   rt  r  rm  r&   r   s           r   test_hash_no_argszTestHash.test_hash_no_args
  s   	 	 D6<0D4<0E68,E46*D6<0D4<0D6<0D4<0E68,E46*D6<0D4<0D67+D47+E68,E46*D67+D47+%6 <	M+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+> M$?|"LL5O'M 'M+<	MV   -'M 'Ms&   )BG9;G-BG9-G62G99H	N)	r   r   r   r  r  r  r  r  r  r   r   r   r  r  M
  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>.Cr4   Nr:   r   r   r   r&   r  +  r=   r   r&   r   r   )r)   r*   r4   r  ru  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  6  r'   r   r&   r4   r   )r)   r  rx   r  ru  r4   r   s      r   test_frozen_emptyzTestFrozen.test_frozen_empty5  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>.Cr4   Nr:   r   r   r   r&   r  C  r=   r   r&   c                       e Zd ZU eed<   y)"TestFrozen.test_inherit.<locals>.Dr+  Nr:   r   r   r   rc   r  G  r=   r   rc   r   r   r   r   )r)   r  ru  r4   r+  r*   r.   r&   rc   r  s       r   test_inheritzTestFrozen.test_inheritB  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  T  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+  Nr:   r   r   r   rc   r  Z  r   r   rc   r  re   s      r   (test_inherit_nonfrozen_from_empty_frozenz3TestFrozen.test_inherit_nonfrozen_from_empty_frozenS  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  _  r'   r   r&   c                       e Zd ZU eed<   y)7TestFrozen.test_inherit_nonfrozen_from_empty.<locals>.Dr+  Nr:   r   r   r   rc   r  c  r=   r   rc   r   )r)   r*   r+  r  r  s       r   !test_inherit_nonfrozen_from_emptyz,TestFrozen.test_inherit_nonfrozen_from_empty^  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>.Cr4   Nr:   r   r   r   r&   r  p      Fr   r&   c                       e Zd Zy)8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.INr   r   r   r   Ir  u  r    r   r  r  c                       e Zd Zy)8TestFrozen.test_inherit_nonfrozen_from_frozen.<locals>.DNr   r   r   r   rc   r  {  rz  r   rc   r3  r)   rI   r   r.   r  r&   r  rc   s        r   "test_inherit_nonfrozen_from_frozenz-TestFrozen.test_inherit_nonfrozen_from_frozenm  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>.Cr4   Nr:   r   r   r   r&   r     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   rc   r    rz  r   rc   r  r  s        r   "test_inherit_frozen_from_nonfrozenz-TestFrozen.test_inherit_frozen_from_nonfrozen  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    rm   r   r&   c                       e Zd Zy)4TestFrozen.test_inherit_from_normal_class.<locals>.INr   r   r   r   r  r
    r    r   r  Tr   c                       e Zd ZU eed<   y)4TestFrozen.test_inherit_from_normal_class.<locals>.Dr4   Nr:   r   r   r   rc   r    r  r   rc   r   r   )r3  r)   r  ru  r4   )r.   r  r&   r  rc   r  s         r   test_inherit_from_normal_classz)TestFrozen.test_inherit_from_normal_class  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>.Dr9   r   r   Nr   r   r   r   rc   r    s    FAsKr   rc   c                       e Zd Zy)4TestFrozen.test_non_frozen_normal_derived.<locals>.SNr   r   r   r   r  r    r`   r   r  r   r   r   cached)r)   r*   r9   r   r  r  ru  r  rx   rE  assertNotIsInstancerq  r.   rc   r  r  cms        r   test_non_frozen_normal_derivedz)TestFrozen.test_non_frozen_normal_derived  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   rc   r    r'   r   rc   c                       e Zd Zy)FTestFrozen.test_non_frozen_normal_derived_from_empty_frozen.<locals>.SNr   r   r   r   r  r    r`   r   r  r9   r   )
r)   r  rx   r9   r*   r  rE  r  rq  ru  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>.Cr9   c                      y r   r   r   s    r   rK  z9TestFrozen.test_overwriting_frozen.<locals>.C.__setattr__  r   r   Nr   r   r   r;   r<   rK  r   r   r   r&   r     r  r   r&   z&Cannot overwrite attribute __delattr__c                       e Zd ZU eed<   d Zy)r   r9   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  r  r   Fc                       e Zd ZU eed<   d Zy)r   r9   c                 (    |dz  | j                   d<   y )NrN  r9   r  )r.   rQ   rH  s      r   rK  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  )rI   r   r)   r*   r9   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>.Cr9   N)r   r   r   r   r<   r   r   r   r&   r+    r=   r   r&   r   r  )r)   r   rI   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                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	 e
dd	       G d
 d             Z e
d       G d d             Zd Z e
dd	       G d d             Z e
dd	       G d d             Z e
dd	       G d d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd  Zd! Zd" 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   r9   Nr   r   r   	__slots__r   r<   r   r   r   r&   r1        IFr   r&   r  r   r   z'C' object has no attribute 'y')r)   rI   r   r*   r9   rE  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   r9   Nr2  r   r   r   r   r8    r4  r   r   c                   "    e Zd ZU eed<   eed<   y)3TestSlots.test_derived_added_field.<locals>.Derivedr9   r   Nr:   r   r   r   Derivedr:  "  rK  r   r;  rD   rN  r  r   )r)   r*   r9   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rh   c                   "    e Zd ZU eed<   eed<   y))TestSlots.test_generated_slots.<locals>.Cr9   r   Nr:   r   r   r   r&   r@  .  rK  r   r&   rD   rN  r  r   r  r  z'C' object has no attribute 'z'r   )r)   r*   r9   r   rI   rE  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   r9   N)r   r   r   r3  r;   r<   r   r   r   r&   rD  ?  s    "	r   r&   rJ  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>.Rootr9   Nr   r   r   r3  r   r   r   RootrI  F  	    Ir   rK  c                       e Zd ZdddZy)3TestSlots.test_generated_slots_value.<locals>.Root2z...r  )r,  r+  NrJ  r   r   r   Root2rN  I  s    #"-Ir   rO  c                       e Zd ZdgZy)3TestSlots.test_generated_slots_value.<locals>.Root3hNrJ  r   r   r   Root3rQ  L  rL  r   rS  c                       e Zd ZdZy)3TestSlots.test_generated_slots_value.<locals>.Root4aaNrJ  r   r   r   Root4rU  O  s    Ir   rW  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+  rR  Nr  r   r   r   r   rY  R  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>.DerivedrV  r9   r   r,  rR  N)r   r   r   r-  r<   r   r;   r   r   r   r;  r[  Z  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   Nr:   r   r   r   AnotherDerivedr]  d  r=   r   r^  r3  )r)   r*   r3  r  r  )r.   rK  rO  rS  rW  r   r;  r^  s           r   test_generated_slots_valuez$TestSlots.test_generated_slots_valueD  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   r3  r   r   r   rK  rb  l  s    cUIr   rK  c                       e Zd ZdZy)>TestSlots.test_cant_inherit_from_iterator_slots.<locals>.Root2r  NrJ  r   r   r   rO  rd  o  s    Ir   rO  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>.Cr9   Nr:   r   r   r   r&   rg  v  r   r   r&   rJ  )r.   rK  rO  r&   s       r   %test_cant_inherit_from_iterator_slotsz/TestSlots.test_cant_inherit_from_iterator_slotsj  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>.Ar9   Nr:   r   r   r   r  rk  {  r@  r   r  Tr>  r3  )r)   r  r  rx   rw   r.   r  r   s      r   test_returns_new_classz TestSlots.test_returns_new_classz  sR    	 	 at$AK01;/0r   T)ri   rh   c                   "    e Zd ZU eed<   eed<   y)TestSlots.FrozenSlotsClassr   r\  Nr  r   r   r   FrozenSlotsClassro        r   rp  r   c                   "    e Zd ZU eed<   eed<   y)!TestSlots.FrozenWithoutSlotsClassr   r\  Nr  r   r   r   FrozenWithoutSlotsClassrs    rq  r   rt  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   r\  rD   r  r&  protocol)r*   rp  r3  r  r  r  r3  r  r  r  rt  )r.   r  ra  ps       r   test_frozen_picklezTestSlots.test_frozen_pickle  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   r\  FrF   r  getstate_calledc                 `    t         j                  | dd       | j                  | j                  gS Nr~  Tr   rK  r   r\  r   s    r   __getstate__z/TestSlots.FrozenSlotsGetStateClass.__getstate__  (    t%6=HHdhh''r   N)
r   r   r   r   r<   r;   rH   r~  r  r  r   r   r   FrozenSlotsGetStateClassr|    s"     %eU CC	(r   r  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   r\  Fr}  setstate_calledc                     t         j                  | dd       t         j                  | d|d          t         j                  | d|d          y Nr  Tr   r   r\  rD   r   rK  r.   states     r   __setstate__z/TestSlots.FrozenSlotsSetStateClass.__setstate__  A    t%6=tUE!H5tUE!H5r   N)
r   r   r   r   r<   r;   rH   r  r  r  r   r   r   FrozenSlotsSetStateClassr    s"     %eU CC	6r   r  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   r\  Fr}  r~  r  c                 `    t         j                  | dd       | j                  | j                  gS r  r  r   s    r   r  z/TestSlots.FrozenSlotsAllStateClass.__getstate__  r  r   c                     t         j                  | dd       t         j                  | d|d          t         j                  | d|d          y r  r  r  s     r   r  z/TestSlots.FrozenSlotsAllStateClass.__setstate__  r  r   N)r   r   r   r   r<   r;   rH   r~  r  r  r  r  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)NrD   rv  r&  rw  )r  r  r  r3  r  r  rw   r~  r*   r  r  r  r  )r.   r  ra  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  Fr;  Nr   r   r   r   r<   rH   r  r   r   r   r  r    s    F3U3As3r   r  r&  r  r)   r*   r&  r  r.   r  ra  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  r3  rI   r   weakrefrefr  rE  r  rl  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rh   weakref_slotc                       e Zd ZU eed<   y)'TestSlots.test_slots_weakref.<locals>.Ar&  Nr:   r   r   r   r  r    r=   r   r  r  rD   )r)   rZ   r3  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  NrJ  r   r   r   r   r        %Ir   r   Tr>  c                       e Zd ZU eed<   y)0TestSlots.test_slots_weakref_base_str.<locals>.Ar&  Nr:   r   r   r   r  r    r=   r   r  r  rD   r)   rZ   r3  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  NrJ  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&  Nr:   r   r   r   r  r  &  r=   r   r  r  rD   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&  Nr:   r   r   r   r  r  4  r   r   r  rJ  r.   r  s     r   test_weakref_slot_without_slotz(TestSlots.test_weakref_slot_without_slot1  sG    ##I$MO 	D)  *	 	 	rF  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  rD   r  r   r  )r  r;   rZ   r3  r  r  rI   r   )r.   r  r&  r   s       r    test_weakref_slot_make_dataclassz*TestSlots.test_weakref_slot_make_dataclass8  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>.BaserH   Nr:   r   r   r   r   r  D  r   r   r   c                       e Zd Zy)<TestSlots.test_weakref_slot_subclass_weakref_slot.<locals>.ANr   r   r   r   r  r  I      r   r  r  rD   r)   rZ   r3  r  r  r  r  r  r.   r   r  r&  r  s        r   'test_weakref_slot_subclass_weakref_slotz1TestSlots.test_weakref_slot_subclass_weakref_slotC  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>.BaserH   Nr:   r   r   r   r   r  V  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  Z  r  r   r  r  rD   r  r  s        r   *test_weakref_slot_subclass_no_weakref_slotz4TestSlots.test_weakref_slot_subclass_no_weakref_slotU  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  NrJ  r   r   r   r   r  g  r  r   r   Tr  c                       e Zd ZU eed<   y)?TestSlots.test_weakref_slot_normal_base_weakref_slot.<locals>.ArH   Nr:   r   r   r   r  r  j  r   r   r  r  rD   r  r  s        r   *test_weakref_slot_normal_base_weakref_slotz4TestSlots.test_weakref_slot_normal_base_weakref_slotf  s~    	) 	) 
D	1	 	 
2	
 	mT^^44aDAammU+r   c                      G d d      }t        dd       G d d|             }| j                  |j                  d        |        y )Nc                       e Zd Zy)8TestSlots.test_dataclass_derived_weakref_slot.<locals>.ANr   r   r   r   r  r  x  r`   r   r  Tr  c                       e Zd Zy)8TestSlots.test_dataclass_derived_weakref_slot.<locals>.BNr   r   r   r   r   r  {  r'   r   r   r   )r)   r*   r3  rl  s      r   #test_dataclass_derived_weakref_slotz-TestSlots.test_dataclass_derived_weakref_slotw  sI    	 	 
D	1	 	 
2	 	b)	r   c                    t        j                  d      }t        dd       G d dt         j                  |                }| j	                  |j
                  d       | j                  |j                          |        t        dd       d               }| j	                  |j
                  d       | j                  |j                          |        y )Nr  Tr  c                       e Zd Zy)3TestSlots.test_dataclass_derived_generic.<locals>.ANr   r   r   r   r  r    r'   r   r  r  c                  0    d x} f G fdd
}|      S )T2c                       e Zd ZW  Zy)3TestSlots.test_dataclass_derived_generic.<locals>.BNr   r   r   __type_params__.type_paramss   r   r   r        r   r   r   )r  .generic_baser  s     @r   z<generic parameters of B>zKTestSlots.test_dataclass_derived_generic.<locals>.<generic parameters of B>  s     	 	 	r   typingr   r)   r   r*   r3  rw   r  )r.   r  r  r   s       r   test_dataclass_derived_genericz(TestSlots.test_dataclass_derived_generic  s    NN3	D	1	q! 	 
2	&67&		D	1	 
2	&67&	r   c                    t        j                  d      } G d d      t        dd       G d dt         j                  |                }| j	                  |j
                  d       | j                  |j                          |        t        dd       G d	 d
t         j                  |                }| j	                  |j
                  d       | j                  |j                          |        t        dd       fd              }| j	                  |j
                  d       | j                  |j                          |        y )Nr  c                       e Zd Zy)CTestSlots.test_dataclass_derived_generic_from_base.<locals>.RawBaseNr   r   r   r   RawBaser    r    r   r  Tr  c                       e Zd Zy)>TestSlots.test_dataclass_derived_generic_from_base.<locals>.C1Nr   r   r   r   r   r    r'   r   r   r   c                       e Zd Zy)>TestSlots.test_dataclass_derived_generic_from_base.<locals>.C2Nr   r   r   r   C2r    r'   r   r   c                  4    d x} f G fdd
}|      S )r  c                       e Zd ZW  Zy)=TestSlots.test_dataclass_derived_generic_from_base.<locals>.DNr  r  s   r   rc   r    r  r   rc   r   )r  r  r  r  s     @r   z<generic parameters of D>zUTestSlots.test_dataclass_derived_generic_from_base.<locals>.<generic parameters of D>  s     	 	G 	r   r  )r.   r  r   r   rc   r  s        @r   (test_dataclass_derived_generic_from_basez2TestSlots.test_dataclass_derived_generic_from_base  s   NN3	D	1	"G 	 
2	r*'
	D	1	&..+ 	 
2	r*'
	D	1	 	 
2	b)&	r   c                 x   t        j                  d      } G d d      t        dd       G d dt        |                }| j	                  |j
                  d       | j                  |j                          |        t        dd       G d	 d
t        |                }| j	                  |j
                  d       | j                  |j                          |        t        dd       fd              }| j	                  |j
                  d       | j                  |j                          |        y )Nr  c                       e Zd ZdZy)MTestSlots.test_dataclass_derived_generic_from_slotted_base.<locals>.WithSlotsr%  NrJ  r   r   r   	WithSlotsr    s    "Ir   r  Tr  c                       e Zd Zy)FTestSlots.test_dataclass_derived_generic_from_slotted_base.<locals>.E1Nr   r   r   r   E1r
    r'   r   r  r  c                       e Zd Zy)FTestSlots.test_dataclass_derived_generic_from_slotted_base.<locals>.E2Nr   r   r   r   E2r    r'   r   r  c                  4    d x} f G fdd
}|      S )r  c                       e Zd ZW  Zy)ETestSlots.test_dataclass_derived_generic_from_slotted_base.<locals>.FNr  r  s   r   r)  r    r  r   r)  r   )r  r  r  r  s     @r   z<generic parameters of F>z]TestSlots.test_dataclass_derived_generic_from_slotted_base.<locals>.<generic parameters of F>  s     	 	I 	r   r  )r.   r  r  r  r)  r  s        @r   0test_dataclass_derived_generic_from_slotted_basez:TestSlots.test_dataclass_derived_generic_from_slotted_base  s   NN3	# 	# 
D	1	GAJ 	 
2	'78'
	D	1	Y 	 
2	'78'
	D	1	 	 
2	&67&	r   c                 x   t        j                  d      } G d d      t        dd       G d dt        |                }| j	                  |j
                  d       | j                  |j                          |        t        dd       G d	 d
t        |                }| j	                  |j
                  d       | j                  |j                          |        t        dd       fd              }| j	                  |j
                  d       | j                  |j                          |        y )Nr  c                       e Zd ZdZy)STestSlots.test_dataclass_derived_generic_from_slotted_base.<locals>.WithWeakrefSlotr  NrJ  r   r   r   WithWeakrefSlotr    r  r   r  Tr  c                       e Zd Zy)FTestSlots.test_dataclass_derived_generic_from_slotted_base.<locals>.G1Nr   r   r   r   G1r    r'   r   r  r   c                       e Zd Zy)FTestSlots.test_dataclass_derived_generic_from_slotted_base.<locals>.G2Nr   r   r   r   G2r    r'   r   r  c                  4    d x} f G fdd
}|      S )r  c                       e Zd ZW  Zy)ETestSlots.test_dataclass_derived_generic_from_slotted_base.<locals>.HNr  r  s   r   Hr    r  r   r   r   )r  r  r  r  s     @r   z<generic parameters of H>z]TestSlots.test_dataclass_derived_generic_from_slotted_base.<locals>.<generic parameters of H>  s     	 	O 	r   r  )r.   r  r  r  r   r  s        @r   r  z:TestSlots.test_dataclass_derived_generic_from_slotted_base  s   NN3	) 	) 
D	1	'!* 	 
2	r*'
	D	1	_ 	 
2	r*'
	D	1	 	 
2	b)&	r   c                      G d d      }t        d       G d d|             }| j                  |j                  d       | j                   |       j                  i         |        y )Nc                       e Zd ZdZy)8TestSlots.test_dataclass_slot_dict.<locals>.WithDictSlotr'  NrJ  r   r   r   WithDictSlotr#    r  r   r$  Tr>  c                       e Zd Zy)-TestSlots.test_dataclass_slot_dict.<locals>.ANr   r   r   r   r  r&    s    "r   r  r   )r)   r*   r3  r  )r.   r$  r  s      r   test_dataclass_slot_dictz"TestSlots.test_dataclass_slot_dict  sU    	& 	& 
	"" 
"b)r*	r   N)"r   r   r   r5  r<  rA  rE  r_  rh  rm  r)   rp  rt  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r'  r   r   r   r.  r.    s$   .$ $?L 1 d$'  ( d  )  d$'( ( (( d$'	6 	6 (	6 d$'6 6 (6 ,8	%	%	,"	F,$,","	"244	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 r\  rQ   r.   ownerrQ   s      r   __set_name__z5TestDescriptors.test_set_name.<locals>.D.__set_name__       3J	r   c                     |y| S NrD   r   r.   instancer0  s      r   __get__z0TestDescriptors.test_set_name.<locals>.D.__get__  s    'r   N)r   r   r   r1  r7  r   r   r   rc   r,    s    'r   rc   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<   rc   s   r   r&   r9    s    3AsJr   r&   cxc                   :    e Zd ZU  e W         d      Zeed<   y)r9  Fr;  r   Nr   r   r   rH   r   r;   r<   r:  s   r   r&   z(TestDescriptors.test_set_name.<locals>.C      51As1r   rD   r)   r*   r   rQ   re   s     @r   test_set_namezTestDescriptors.test_set_name  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 r\  r.  r/  s      r   r1  z;TestDescriptors.test_non_descriptor.<locals>.D.__set_name__  r2  r   N)r   r   r   r1  r   r   r   rc   rC    s    'r   rc   c                   :    e Zd ZU  e W         d      Zeed<   y).TestDescriptors.test_non_descriptor.<locals>.CFr;  r   Nr=  r:  s   r   r&   rF    r>  r   r&   r;  r?  re   s     @r   test_non_descriptorz#TestDescriptors.test_non_descriptor	  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   rc   rJ    r`   r   rc   c                   0    e Zd ZU  eW  d      Zeed<   y)2TestDescriptors.test_lookup_on_instance.<locals>.CFr;  r4   Nrd  rg  s   r   r&   rL     s    /As/r   r&   r   r   r1  r)   r*   r'  )r.   rc   r&   r  s      @r   test_lookup_on_instancez'TestDescriptors.test_lookup_on_instance  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   rc   rQ  (  r`   r   rc   c                   :    e Zd ZU  e W         d      Zeed<   y)/TestDescriptors.test_lookup_on_class.<locals>.CFr;  r4   Nrd  r:  s   r   r&   rS  -  r>  r   r&   rD   rM  re   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   rc   rW  4  r`   r   rc   c                   ,    e Zd ZU  W         ZW  ed<   y).TestDescriptors.test_init_calls_set.<locals>.Cr4   Nr   r   r   r4   r<   r:  s   r   r&   rY  9      3AqJr   r&   r   rD   )r   __set__r)   
reset_mockr*   r'  r.   r&   r   rc   s      @r   test_init_calls_setz#TestDescriptors.test_init_calls_set3  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   rc   rb  C  r`   r   rc   c                   ,    e Zd ZU  W         ZW  ed<   y)7TestDescriptors.test_getting_field_calls_get.<locals>.Cr4   NrZ  r:  s   r   r&   rd  I  r[  r   r&   r   rD   )r   r\  r7  r)   r]  r4   r*   r'  )r.   r&   r   rH  rc   s       @r   test_getting_field_calls_getz,TestDescriptors.test_getting_field_calls_getB  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   rc   rh  U  r`   r   rc   c                   ,    e Zd ZU  W         ZW  ed<   y)7TestDescriptors.test_setting_field_calls_set.<locals>.Cr4   NrZ  r:  s   r   r&   rj  Z  r[  r   r&   r   r   rD   )r   r\  r)   r]  r4   r*   r'  r^  s      @r   test_setting_field_calls_setz,TestDescriptors.test_setting_field_calls_setT  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   rc   rn  f  r`   r   rc   c                       e Zd ZU W  ed<   y)FTestDescriptors.test_setting_uninitialized_descriptor_field.<locals>.Cr4   Nr  r:  s   r   r&   rp  k  r  r   r&   r   r   )r   r\  r)   r]  r*   r'  r4   r^  s      @r   +test_setting_uninitialized_descriptor_fieldz;TestDescriptors.test_setting_uninitialized_descriptor_fielde  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>.Dr6  r0  rV  c                      |y|j                   S r  _xr5  s      r   r7  z5TestDescriptors.test_default_value.<locals>.D.__get__|  s    #{{"r   rH  Nc                     ||_         y r   rv  r.   r6  rH  s      r   r\  z5TestDescriptors.test_default_value.<locals>.D.__set__  	    #r   r   r   r   r   r   r;   r7  r\  r   r   r   rc   rt  {  6    # #F #s #$ $C $D $r   rc   c                   ,    e Zd ZU  W         ZW  ed<   y)-TestDescriptors.test_default_value.<locals>.Cr4   NrZ  r:  s   r   r&   r~    r[  r   r&   r   r   r(  r^  s      @r   test_default_valuez"TestDescriptors.test_default_valuez  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>.Dr6  r0  rV  c                 2    |
t               |j                  S r   )rE  rw  r5  s      r   r7  z8TestDescriptors.test_no_default_value.<locals>.D.__get__  s    #(**{{"r   rH  Nc                     ||_         y r   rv  ry  s      r   r\  z8TestDescriptors.test_no_default_value.<locals>.D.__set__  rz  r   r{  r   r   r   rc   r    r|  r   rc   c                   ,    e Zd ZU  W         ZW  ed<   y)0TestDescriptors.test_no_default_value.<locals>.Cr4   NrZ  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@  rG  rN  rT  r_  re  rk  rq  r  r  r   r   r   r)  r)    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>.Cr9   Nr  r  s   r   r&   r        Jr   r&   r9   )r3  r)   r  r  r.   r&   r  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>.Cr9   Nr  r  s   r   r&   r    r  r   r&   r   r3  r)   r*   r9   r  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>.Cr9   Nr  r  s   r   r&   r    r  r   r&   zobject has no attribute 'x'rD   )r3  r)   rI   rE  r9   r  s     @r   test_initvarz"TestStringAnnotations.test_initvar  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>.Cr9   Nr  r  s   r   r&   r     r  r   r&   r   r  r  s     @r   test_isnt_initvarz'TestStringAnnotations.test_isnt_initvar  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  rD   rN  r   r  )iv0iv1iv2iv3)
field_namezobject has no attribute 'r0  not_iv4)test.test_dataclassesr  r  r  r  r3  USING_STRINGSr  r*   cv0r  rI   rE  r  rZ   r  r  r  )r.   r  r  r  r  r  r   r  s           r   !test_classvar_module_level_importz7TestStringAnnotations.test_classvar_module_level_import  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   rV  )r  r  r*   r   r5  r1  r   rY   )r.   r  s     r   test_text_annotationsz+TestStringAnnotations.test_text_annotations0  sk    <-112&**+	- 	-11::;&**Dz#	$r   N)	r   r   r   r  r  r  r  r  r  r   r   r   r  r    s"    "2H.(>.'<R	$r   r  ByMakeDataClassr9   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&   r9   r   r   r  add_onec                      | j                   dz   S r4  r   r   s    r   r   z/TestMakeDataclass.test_simple.<locals>.<lambda>J  s    dffqj r   r  r   )r   r   r  )r  r;   rH   r*   r9   r   r  r   s      r   r5  zTestMakeDataclass.test_simpleF  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&   r9   r   r   r  r  )r  r;   rH   r*   )r.   nsr&   s      r   test_no_mutate_namespacez*TestMakeDataclass.test_no_mutate_namespaceP  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   Base1r  Z  r`   r   r  c                       e Zd Zy)*TestMakeDataclass.test_base.<locals>.Base2Nr   r   r   r   Base2r  \  r`   r   r  r&   r9   r  rN  )r  r;   r  r.   r  r  r&   r   s        r   	test_basezTestMakeDataclass.test_baseY  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>.Base1r9   Nr:   r   r   r   r  r  g  r=   r   r  c                       e Zd Zy)4TestMakeDataclass.test_base_dataclass.<locals>.Base2Nr   r   r   r   r  r  j  r`   r   r  r&   r   r  zrequired positionalrN  rD   r  )	r)   r  r;   rI   r   r  r*   r9   r   r  s        r   test_base_dataclassz%TestMakeDataclass.test_base_dataclassf  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_inity  s    FFaKFr   r&   r9   r   rd  r  rN  r   r   rD   )r  r;   r  r*   r  r+   r,   )r.   r  r&   r   s       r   r  zTestMakeDataclass.test_init_varx  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&   r9   r   r   r   r  r  rD   )
r  r;   r   rH   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&   r9   r   r   r   r  r  Fr  r   r  zunexpected keyword argument)xxinit)	r  r;   r   rH   r  r  rZ   rI   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  r9   r   r   rD   rN  r   z
typing.Anyr9   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 )NrD   r  Nested)r*   r  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NrD   rv  )	r  r  r  r  r  r3  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  r3  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   )rD   rN  r   r  )	bad_fieldzInvalid field: r&   r&  c                     | S r   r   r   s    r   r   zCTestMakeDataclass.test_invalid_type_specification.<locals>.<lambda>  s    1 r   zhas no len\(\))r3  rI   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rH   zField name duplicatedr&   r&  r3  rI   r   r  r.   rH   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_names  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_names  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_names  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  )r3  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   r5  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r   r   r   r  r  E  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>.Cr9   r   Nr:   r   r   r   r&   r  	  rK  r   r&   rD   rN  r   r   )r)   rc  r*   r9   r   r.   r&   r   r  s       r   r]  zTestReplace.test  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>.Cr9   r   Fr   r  r   r   r  N)r   r   r   r;   r<   rH   r   r  r   r   r   r&   r    s.    FFr2As2s3As3r   r&   rD   rN  r   r   )rD   rN  r   r   )r   rN  r   r   
init=Falser  r   )r9   r   r  r  zcannot assign to field 'x'z3__init__\(\) got an unexpected keyword argument 'a'r   )r9   r&  )r)   rc  r*   r9   r   r   r  rI   rJ   ru  r   r  s       r   r  zTestReplace.test_frozen  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>.Cr9   r   Nr:   r   r   r   r&   r  4  rK  r   r&   rD   rN  z3__init__\(\) got an unexpected keyword argument 'z'r   r  r)   rI   r   rc  r  s       r   test_invalid_field_namez#TestReplace.test_invalid_field_name3  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>.Cr9   r   Nr:   r   r   r   r&   r  ?  rK  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>.Cr9   Fr   r  r   Nr  r   r   r   r&   r   K  s    Fr2As2r   r&   rD   r  r   r   )r   r   r  rN  r  r  r   )r)   r   rc  r*   r9   rI   rJ   r  s       r   r)  zTestReplace.test_no_initJ  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>.Cr9   r  r   N)r   r   r   r;   r<   r   r   r   r   r   r&   r#  _  s    F#Ax}#r   r&   rD   rN  r  z3__init__\(\) got an unexpected keyword argument 'y'r  r   r   r   )r)   r  r   r*   rI   r   rc  r  s       r   r  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>.Cr9   r   c                 .    | xj                   |z  c_         y r   r   r  s     r   rd  z>TestReplace.test_initvar_is_specified.<locals>.C.__post_init__w  rp  r   Nr  r   r   r   r&   r&  r  s    Fs|Or   r&   rD   r   z,InitVar 'y' must be specified with replace()r   r   r   r  r   )r)   r*   r9   rI   rJ   rc  r   s      r   test_initvar_is_specifiedz%TestReplace.test_initvar_is_specifiedq  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>.Cr9   Nr   r>   r   c                 b    || xj                   |z  c_         || xj                   |z  c_         y y r   r   )r.   r   r   s      r   rd  zDTestReplace.test_initvar_with_default_value.<locals>.C.__post_init__  s+    =FFaKF=FFaKF !r   )	r   r   r   r;   r<   r   r  r   rd  r   r   r   r&   r+    s(    F"Aws|" Aws|  r   r&   rD   r   r  r  r   r  r   r>   )r   r   )r)   r*   rc  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&   r0    r=   r   r&   z1TestReplace.test_recursive_repr.<locals>.C(f=...)r)   r  r*   rO   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&   r5    rK  r   r&   zBTestReplace.test_recursive_repr_two_attrs.<locals>.C(f=..., g=...))r)   r  r6  r*   rO   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>.Crc   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   rc   r<    r=   r   rc   zwTestReplace.test_recursive_repr_indirection.<locals>.C(f=TestReplace.test_recursive_repr_indirection.<locals>.D(f=...))r1  )r.   r&   rc   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>.Crc   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   rc   rB    r=   r   rc   c                       e Zd ZU ded<   y):TestReplace.test_recursive_repr_indirection_two.<locals>.Er&   r  Nr  r   r   r   r  rD    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=...)))r1  )r.   r&   rc   r  r   r  rU  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  r6  NrV  r   r   r   r&   rH    rK  r   r&   rD   zATestReplace.test_recursive_repr_misc_attrs.<locals>.C(f=..., g=1)r1  r   s      r   test_recursive_repr_misc_attrsz*TestReplace.test_recursive_repr_misc_attrs  sF    		 	 
	 dAJa #< 	=r   N)r   r   r   r]  r  r  r  r)  r  r(  r-  r2  r7  r=  rE  rI  r   r   r   r  r    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   r{  z<TestAbstract.test_abc_implementation.<locals>.Ordered.__lt__      r   c                      y r   r   r   s     r   r|  z<TestAbstract.test_abc_implementation.<locals>.Ordered.__le__  rP  r   N)r   r   r   abcabstractmethodr{  r|  r   r   r   OrderedrN    s4         r   rT  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  Nr:   r   r   r   r  rV        INJr   r  i  r     r4     )rR  ABCr)   r  rt   
isabstractrF  )r.   rT  r  s      r   test_abc_implementationz$TestAbstract.test_abc_implementation  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  rP  r   N)r   r   r   rR  rS  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  rW  r  r;   r  Nr:   r   r   r   r  rc    rX  r   r  z>class Date without an implementation for abstract method 'foo')rR  r[  r)   rw   rt   r\  rI   r   )r.   r  r  rK   s       r   test_maintain_abczTestAbstract.test_maintain_abc  s]    	 	
 
	1 	 
	
 	**401Ny#t4r   N)r   r   r   r]  rd  r   r   r   rK  rK    s    >&5r   rK  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&  Nr:   r   r   r   r&   ri    r=   r   r&   r>   r  r)   r*   __match_args__r   s     r   test_match_argszTestMatchArgs.test_match_args  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<   rk  )mas   r   r&   ro    s    FNr   r&   r>   )r)   r  rk  )r.   r&   rq  s     @r   test_explicit_match_argsz&TestMatchArgs.test_explicit_match_args  s9    		  	  
	  	ae**B/r   c                 r    t        ddd       G d d             }| j                  |j                  d       y )NF)rO   rt  rN   c                   ,    e Zd ZU eed<   eed<   eed<   y)'TestMatchArgs.test_bpo_43764.<locals>.Xr&  r  r   Nr:   r   r   r   r   ru     r  r   r   r&  r  r   rj  )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&  Nr:   r   r   r   r   r|  (  r=   r   r   rk  c                       e Zd ZU eed<   dZy)1TestMatchArgs.test_match_args_argument.<locals>.Yr&  re  Nrp  r   r   r   r   r~  -  s    F#Nr   r   re  c                       e Zd ZU eed<   y)1TestMatchArgs.test_match_args_argument.<locals>.Zr   Nr:   r   r   r   rs  r  3  r=   r   rs  c                   "    e Zd ZU eed<   eed<   y)1TestMatchArgs.test_match_args_argument.<locals>.Ar&  r   Nr:   r   r   r   r  r  :  rK  r   r  c                       e Zd ZU eed<   y)1TestMatchArgs.test_match_args_argument.<locals>.Br  Nr:   r   r   r   r   r  >  r=   r   r   )r&  r   )r)   r  r  r*   rk  )r.   r   r   rs  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&   r9   r   r  Try  F__match__args__rk  r  r  )r  r;   r*   rk  r  r  r   s     r   test_make_dataclassesz#TestMatchArgs.test_make_dataclassesC  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   rl  rr  rw  r  r  r   r   r   rf  rf    s    70<783r   rf  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   rH   r&  r   r;   r<   r   r   r   r  r  U  s    #(#68C=6r   r  c                   0    e Zd ZU  ed      Zee   ed<   yr  Fr  r&  Nr  r   r   r   r  z1TestKeywordArgs.test_no_classvar_kwarg.<locals>.AZ      #(#78C=7r   Tr  c                   0    e Zd ZU  ed      Zee   ed<   yr  r  r   r   r   r  z1TestKeywordArgs.test_no_classvar_kwarg.<locals>.A_  r  r   rJ  )r.   rK   r  s      r   test_no_classvar_kwargz&TestKeywordArgs.test_no_classvar_kwargR  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 )NTr  c                       e Zd ZU eed<   y6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.Ar&  Nr:   r   r   r   r  r  f  r=   r   r  r   c                   *    e Zd ZU  ed      Zeed<   yr  Tr  r&  Nr   r   r   rH   r&  r;   r<   r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.Ak      4(As(r   c                   *    e Zd ZU  ed      Zeed<   yr  Fr  r&  Nr  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.Ap      5)As)r   Fc                       e Zd ZU eed<   yr  r:   r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.Aw  r=   r   c                   *    e Zd ZU  ed      Zeed<   yr  r  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  r  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A  r  r   c                       e Zd ZU eed<   yr  r:   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  r  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  r  r   r   r   r  z6TestKeywordArgs.test_field_marked_as_kwonly.<locals>.A  r  r   )r)   rw   r,   r  r  r  s     r   test_field_marked_as_kwonlyz+TestKeywordArgs.test_field_marked_as_kwonlyc  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 )NTr  c                       e Zd ZU eed<   y)*TestKeywordArgs.test_match_args.<locals>.Cr&  Nr:   r   r   r   r&   r    r=   r   r&   r>   r  r   c                   4    e Zd ZU eed<    ed      Zeed<   y)r  r&  Tr  r  N)r   r   r   r;   r<   rH   r  r   r   r   r&   z*TestKeywordArgs.test_match_args.<locals>.C  s    F4(As(r   r   re  rj  r   s     r   rl  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  r        FJFFr   r  r   r   r  r   r  -takes 2 positional arguments but 4 were givenTr  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   Nr  r   r   r   r   r    r  r   r   rv  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  Fr  r   Nr   r   r   r;   r<   r  rH   r   r   r   r   r&   r    s     FJF5)As)r   r&   rD   rN  re  )r  r   )r   r  r&  )r)   rI   r   r*   r&  r  r   )r.   r  rK   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   Nr:   r   r   r   r  r    s    F$$FFr   r  r   r   r  r  r  r  )r.   r  rK   s      r   test_KW_ONLY_as_stringz&TestKeywordArgs.test_KW_ONLY_as_string  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   Nr  r   r   r   r  r    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)r  r&  r   r  r   r   Nr  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.A  s    

r   c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)r  r&  r   r  r   r   Nr  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.A  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)r  r&  r  r  Tr  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r  r&  r  r  r   Nr  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.A  r  r   c                   "    e Zd ZU eed<   eed<   y)-TestKeywordArgs.test_KW_ONLY_twice.<locals>.Br  r  Nr   r   r   r  r<   r;   r   r   r   r   r    s    JFr   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   yr  r  r   r   r   r  z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.A  s    
r   c                   ,    e Zd ZU eed<   eed<   eed<   y)r  r   r  r   Nr  r   r   r   r   z-TestKeywordArgs.test_KW_ONLY_twice.<locals>.B  s    

r   rJ  )r.   rK   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=rc  r.   r  r  s      r   rd  z7TestKeywordArgs.test_post_init.<locals>.A.__post_init__)  s    !RQD!,//r   Nr   r   r   r;   r<   r  r  rd  r   r   r   r  r  "  s(    FJs|OFs|O0r   r  zb=3 d=4rD   rN  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   r  s      r   rd  z7TestKeywordArgs.test_post_init.<locals>.B.__post_init__5  s    r   Nr  r   r   r   r   r  .  s(    FJs|OFs|Or   r   r  )r)   rI   r   r*   rb  )r.   r  r   r  s       r   rv  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  rD   r   r  Nr   r   r   r&  r;   r<   r  r   r   r   r   r  r  =  s#    AsJJFAsJFr   r  r  r   )r  r  r   rD   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  rD   r   r  Nr  r   r   r   r  z(TestKeywordArgs.test_defaults.<locals>.AO  s(    3

3
r   )r)   r*   r&  r  r   r  rI   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&  Tr  r   r   r  FrD   )r  rw   r,   r  r;   rH   r  rl  s      r   test_make_dataclassz#TestKeywordArgs.test_make_dataclassX  s    3t4q	!,,-3#sE%,@!AB#') 	q	!,,-1--.r   N)r   r   r   r  r  rl  r  r  r  rv  r  r  r   r   r   r  r  Q  s2    8"2/h=.!`
>B64:/r   r  __main__)=dataclassesrR  r  r  rt   r  rj  r  r  unittestunittest.mockr   r  r   r   r   r   r	   r
   r   r   r   r   r   r   collectionsr   r   r   r   	functoolsr   r]  r   	Exceptionr   r"   r  r  r  rB  rc  rw  r  r  r.  r)  r  r  r;   r  r   r  r  r  r  r  rK  rf  r  mainr   r   r   <module>r     s+  
  
 	         m m m m ! C C $    #) "K"x   K"\D H--  Fd/H%% d/NR%x   R%jD*x   D*N,%X ,%^J8$$ JXYMx   YMxW"" Wtf!! fR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   