
    [e;                         d dl Z d dlmZ d dlZd dlmZ d dlmZ d dlm	Z	 d Z
d Zd Zd	 Zd
 Zd Zej                            deeg          d             ZdS )    N)MutableMapping)Func)ZictBase)
utils_testc                     | dz   S N    xs    4lib/python3.11/site-packages/zict/tests/test_func.pyincr          q5L    c                     | dz
  S r   r
   r   s    r   decr      r   r   c                 ,    | dd          | d d         z   S r   r
   r   s    r   rotlr      s    QRR51RaR5=r   c                 ,    | dd          | d d         z   S )Nr
   r   s    r   rotrr      s    RSS6AcrcF?r   c                     i } t          t          t          |           dd<   d         dk    sJ | d         dk    sJ dv sJ t                    dgk    sJ t                                                    dgk    sJ t                                                    dgk    sJ t          fddD                       sJ t          fddD                       sJ d= d| vsJ d S )N
   r      )r   r   c              3   :   K   | ]}|t                    v V  d S N)str.0sfs     r   	<genexpr>ztest_simple.<locals>.<genexpr>'   s-      @@qqCFF{@@@@@@r   )r   r   r   r   c              3   :   K   | ]}|t                    v V  d S r   )reprr   s     r   r"   ztest_simple.<locals>.<genexpr>(   s-      AAqDGG|AAAAAAr   )r   r   r   listvaluesitemsall)dr!   s    @r   test_simpler*      s   
AS#qAAcFS6R<<<<S6R<<<<!888877se

t####		??yk))))@@@@$?@@@@@@@@AAAA%@AAAAAAAA	#a<<<<<<r   c                      i } t          t          t          |           }t          j        |           t          j        |           dS )z,
    Test mapping interface for Func().
    N)r   r   r   r   check_mappingcheck_closing)r)   zs     r   test_mappingr/   .   sB     	AT4AQQr   wrapped_clsc                      G fdd           G d d|           }t          fdd  |                      }|                    t                              t	          d                               dS )	zTest that Func.update() descopes the output of self.dump as soon as it can, if
    the wrapped mapping allows, and doesn't store everything into a list.
    c                   (    e Zd ZdZ fdZ fdZdS )*test_update_descopes_early.<locals>.Dumpedr   c                 h    t          j                     xj        dz  c_        j        dk     sJ d S )Nr	      )gccollectnselfDumpeds    r   __init__z3test_update_descopes_early.<locals>.Dumped.__init__A   s0    JLLLHHMHH8a<<<<<<r   c                 (    xj         dz  c_         d S r   )r8   r9   s    r   __del__z2test_update_descopes_early.<locals>.Dumped.__del__F   s    HHMHHHHr   N)__name__
__module____qualname__r8   r<   r>   )r;   s   r   r;   r3   >   sL        	  	  	  	  	 
	 	 	 	 	 	 	r   r;   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS ))test_update_descopes_early.<locals>.Dummyc                     d S r   r
   r:   keyvalues      r   __setitem__z5test_update_descopes_early.<locals>.Dummy.__setitem__J   s    Dr   c                      t          |          r   KeyErrorrE   s      r   __getitem__z5test_update_descopes_early.<locals>.Dummy.__getitem__M       3--r   c                      t          |          r   rJ   )r:   rF   s     r   __delitem__z5test_update_descopes_early.<locals>.Dummy.__delitem__P   rM   r   c                      t          d          S )Nr
   )iterr:   s    r   __iter__z2test_update_descopes_early.<locals>.Dummy.__iter__S   s    88Or   c                     dS )Nr   r
   rR   s    r   __len__z1test_update_descopes_early.<locals>.Dummy.__len__V   s    1r   N)r?   r@   rA   rH   rL   rO   rS   rU   r
   r   r   DummyrC   I   s_        	 	 		  	  	 	  	  	 	 	 		 	 	 	 	r   rV   c                                  S r   r
   )vr;   s    r   <lambda>z,test_update_descopes_early.<locals>.<lambda>Y   s    vvxx r   c                     d S r   r
   )ws    r   rY   z,test_update_descopes_early.<locals>.<lambda>Y   s    4 r   r   N)r   updatedictfromkeysrange)r0   rV   r)   r;   s      @r   test_update_descopes_earlyr`   8   s    	 	 	 	 	 	 	 	 	 	         	99AHHT]]599%%&&&&&r   )r6   collections.abcr   pytestzictr   zict.commonr   
zict.testsr   r   r   r   r   r*   r/   markparametrizer`   r
   r   r   <module>rh      s    				 * * * * * *                    ! ! ! ! ! !          &      (BCC!' !' DC!' !' !'r   