o
    ŀg                   
   @   sV  d Z ddlZddlZddlmZmZ ddlmZ ej	e
eeeeeegddd Zej	e
efeefee
feefeefeefeefeefgdd d	d
d Zdd Zejddd Zejdg ddd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Z ejd)d*dgG d+d, d,Z!d-d. Z"d/d0 Z#dS )1zG"
Test module for testing ``pandas._testing.assert_produces_warning``.
    N)DtypeWarningPerformanceWarning)paramsc                 C      | j S )zx
    Return unique warning.

    Useful for testing behavior of tm.assert_produces_warning with various categories.
    paramrequest r
   b/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/util/test_assert_produces_warning.pycategory   s   r   c                 C   s
   t | jS N)type__name__)xr
   r
   r   <lambda>/   s   
 r   )r   idsc                 C   r   )z
    Return pair or different warnings.

    Useful for testing how several different warnings are handled
    in tm.assert_produces_warning.
    r   r   r
   r
   r   pair_different_warnings$   s   r   c                   C   s   t dt t dt d S )Nf1f2)warningswarnFutureWarningRuntimeWarningr
   r
   r
   r   f;   s   r   zignore:f1:FutureWarningc               	   C   s   d} t jt| d  tt t  W d    n1 sw   Y  W d    n1 s,w   Y  tjtdd t  W d    d S 1 sGw   Y  d S )NCaused unexpected warning\(s\)matchFraise_on_extra_warnings)pytestraisesAssertionErrortmassert_produces_warningr   r   msgr
   r
   r   *test_assert_produces_warning_honors_filter@   s   "r'   zmessage, match)) N)r(   r(   )Warning messagez.*)r)   War)r)   z
[Ww]arning)r)   age)r)   zage$)Message 12-234 with numbersz\d{2}-\d{3})r,   z^Mes.*\d{2}-\d{3})r,   z\d{2}-\d{3}\s\S+)zMessage, which we do not matchNc                 C   s@   t j| |d t||  W d    d S 1 sw   Y  d S )Nr   r#   r$   r   r   )r   messager   r
   r
   r   %test_catch_warning_category_and_matchL   s   "r/   c               	   C      t } d}d}tjt|d4 tj| |d td|  td|  W d    n1 s,w   Y  W d    d S W d    d S 1 sDw   Y  d S )NzDid not see this warningzDid not see warning 'RuntimeWarning' matching 'Did not see this warning'. The emitted warning messages are \[RuntimeWarning\('This is not a match.'\), RuntimeWarning\('Another unmatched warning.'\)\]r   This is not a match.Another unmatched warning.)r   r    r!   r"   r#   r$   r   r   r   r   	unmatchedr
   r
   r   "test_fail_to_match_runtime_warninga      "r5   c               	   C   r0   )NWarningzDid not see warning 'FutureWarning' matching 'Warning'. The emitted warning messages are \[FutureWarning\('This is not a match.'\), FutureWarning\('Another unmatched warning.'\)\]r   r1   r2   )r   r    r!   r"   r#   r$   r   r   r3   r
   r
   r   !test_fail_to_match_future_warningp   r6   r8   c               	   C   r0   )Nz\d+zDid not see warning 'ResourceWarning' matching '\\d\+'. The emitted warning messages are \[ResourceWarning\('This is not a match.'\), ResourceWarning\('Another unmatched warning.'\)\]r   r1   r2   )ResourceWarningr    r!   r"   r#   r$   r   r   r3   r
   r
   r   #test_fail_to_match_resource_warning   r6   r:   c              	   C   s   | \}}d}t jt|d, t| td| W d    n1 s$w   Y  W d    d S W d    d S 1 s<w   Y  d S )Nz%Did not see expected warning of classr   zwarning messager    r!   r"   r#   r$   r   r   )r   expected_categoryactual_categoryr   r
   r
   r   !test_fail_to_catch_actual_warning   s   "r>   c                 C   sT   | \}}t j|dd td| td| W d    d S 1 s#w   Y  d S )NFr   Expected warningzUnexpected warning OKr-   )r   r<   extra_categoryr
   r
   r   test_ignore_extra_warning   s
   "rA   c              	   C   s   | \}}d}t jt|d2 t| td| td| W d    n1 s*w   Y  W d    d S W d    d S 1 sBw   Y  d S )Nr   r   r?   zUnexpected warning NOT OKr;   )r   r<   r@   r   r
   r
   r   test_raise_on_extra_warning   s   "rB   c                  C   \   t } tj| dd td|  td|  td|  W d    d S 1 s'w   Y  d S )N^Match thisr   
Match thisDo not match thatDo not match that either)UserWarningr#   r$   r   r   r   r
   r
   r   1test_same_category_different_messages_first_match      "rJ   c                  C   rC   )NrD   r   rF   rG   rE   )DeprecationWarningr#   r$   r   r   rI   r
   r
   r   0test_same_category_different_messages_last_match   rK   rM   c                  C   sT   t tf} tj| dd tdt  tdt W d    d S 1 s#w   Y  d S )NrD   r   rE   zMatch this too)r   rH   r#   r$   r   r   rI   r
   r
   r   test_match_multiple_warnings   s
   "rN   c              	   C   s   | \}}t jtdd4 tj|dd td| td| W d    n1 s*w   Y  W d    d S W d    d S 1 sBw   Y  d S )NzDid not see warning.*matchingr   rD   zDo not match itrE   r;   )r   target_categoryother_categoryr
   r
   r   &test_right_category_wrong_match_raises   s   "rQ   false_or_noneFc                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestFalseOrNoneExpectedWarningc              	   C   sx   d}t jt|d) t| t  W d    n1 sw   Y  W d    d S W d    d S 1 s5w   Y  d S )Nr   r   )r    r!   r"   r#   r$   r   )selfrR   r&   r
   r
   r   test_raise_on_warning   s   "z4TestFalseOrNoneExpectedWarning.test_raise_on_warningc                 C   s0   t |	 W d    d S 1 sw   Y  d S r   )r#   r$   rT   rR   r
   r
   r   test_no_raise_without_warning   s   "z<TestFalseOrNoneExpectedWarning.test_no_raise_without_warningc                 C   s:   t j|dd t  W d    d S 1 sw   Y  d S )NFr   )r#   r$   r   rV   r
   r
   r   'test_no_raise_with_false_raise_on_extra   s   "zFTestFalseOrNoneExpectedWarning.test_no_raise_with_false_raise_on_extraN)r   
__module____qualname__rU   rW   rX   r
   r
   r
   r   rS      s    rS   c               	   C   s  d} t jt| d tt t1 sw   Y  W d    n1 s$w   Y  t jt| d tt	 tdt	 t
1 sBw   Y  W d    n1 sQw   Y  d} t jt| d td 	 tdt	 t1 sqw   Y  W d    d S 1 sw   Y  d S )Nz3Did not see expected warning of class 'UserWarning'r   r   zCaused unexpected warning)r    r!   r"   r#   r$   rH   
ValueErrorr   r   r   
IndexErrorSystemErrorr%   r
   r
   r   test_raises_during_exception   s&   "r^   c                	   C   s   t jtdd td  td1 sw   Y  W d    n1 s$w   Y  t jtdd# tjtdd tdt td1 sFw   Y  W d    d S 1 sVw   Y  d S )NErrorr   r   )	r    r!   SyntaxErrorr#   r$   r[   r   r   r   r
   r
   r
   r   test_passes_during_exception   s   "ra   )$__doc__r   r    pandas.errorsr   r   pandas._testing_testingr#   fixturer   r9   rH   r   rL   r   r   r   markfilterwarningsr'   parametrizer/   r5   r8   r:   r>   rA   rB   rJ   rM   rN   rQ   rS   r^   ra   r
   r
   r
   r   <module>   sf    
	





	