o
    *ฮฎc  ใ                   @   s@   d dl mZmZ d dlmZ dd Zdd Zdd Zd	d
 ZdS )้    )ฺcacheitฺcached_property)ฺraisesc                  C   s,   t dd } | jdksJ | jdksJ d S )Nc                   S   s   dS )๚test docstringNฉ r   r   r   ๚B/tmp/pip-target-vg8gfxp4/lib/python/sympy/core/tests/test_cache.pyฺtestfn   s   z test_cacheit_doc.<locals>.testfnr   r   )r   ฺ__doc__ฺ__name__)r   r   r   r   ฺtest_cacheit_doc   s   
r   c                  C   s`   t dd } | ddksJ | ddksJ i }| |i ks J d|d< | |ddiks.J d S )Nc                 S   s   | S ฉNr   ฉฺxr   r   r   ฺtestit   s   z'test_cacheit_unhashable.<locals>.testit้   ้   )r   )r   ฺar   r   r   ฺtest_cacheit_unhashable   s   
r   c                      sศ   g  t  fddttfdd t dksJ   ก  ttfdd t dks0J t  fdd  ก  ttfd	d t dksMJ   ก  ttfd
d t dksbJ d S )Nc                    s      dก tฉNr   ฉฺappendฺ	TypeErrorr   ฉr   r   r   ฺtestf   s   
z$test_cachit_exception.<locals>.testfc                      ๓    dS ฉNr   r   r   ฉr   r   r   ฺ<lambda>$   ๓    z'test_cachit_exception.<locals>.<lambda>r   c                      ๓    g S r   r   r   r   r   r   r   )   r   c                    s      dก td)Nr   ฺErrorr   r   r   r   r   ฺtestf2,   s   
z%test_cachit_exception.<locals>.testf2c                      r   r   r   r   ฉr!   r   r   r   2   r   c                      r   r   r   r   r"   r   r   r   7   r   )r   r   r   ฺlenฺclearr   r   )r   r   r!   r   ฺtest_cachit_exception   s    r%   c                  C   sv   G dd d} | d}|j dksJ |jdksJ |j dks J |jdks'J |j dks.J | d }|jd ks9J d S )Nc                   @   s    e Zd Zdd Zedd ZdS )ztest_cached_property.<locals>.Ac                 S   s   || _ d| _d S r   )ฺvalueฺcalls)ฺselfr&   r   r   r   ฺ__init__<   s   
z(test_cached_property.<locals>.A.__init__c                 S   s   | j d | _ | jS r   )r'   r&   )r(   r   r   r   ฺprop@   s   z$test_cached_property.<locals>.A.propN)r
   ฺ
__module__ฺ__qualname__r)   r   r*   r   r   r   r   ฺA;   s    r-   r   r   r   )r'   r*   )r-   r   ฺbr   r   r   ฺtest_cached_property:   s   
r/   N)	ฺsympy.core.cacher   r   ฺsympy.testing.pytestr   r   r   r%   r/   r   r   r   r   ฺ<module>   s    	!