
    dafh                         d dl mZ d dlZd dlmZ  G d d      Z G d de      Z G d d	e      Z G d
 dej                        Z	e
dk(  r ej                          yy)    )dequeN)NEVER_EQc                       e Zd Zd Zy)base_setc                     || _         y Nelselfr
   s     -/root/Python-3.12.4/Lib/test/test_contains.py__init__zbase_set.__init__   s	        N)__name__
__module____qualname__r    r   r   r   r      s    r   r   c                       e Zd Zd Zy)mysetc                      | j                   |k(  S r   r	   r   s     r   __contains__zmyset.__contains__   s    ww"}r   Nr   r   r   r   r   r   r   r   r   
   s    r   r   c                       e Zd Zd Zy)seqc                 "    | j                   g|   S r   r	   )r   ns     r   __getitem__zseq.__getitem__   s    y|r   N)r   r   r   r   r   r   r   r   r      s    r   r   c                   $    e Zd Zd Zd Zd Zd Zy)TestContainsc                    t        d      t        d      }t        d      }| j                  d|       | j	                  d|       | j                  d|       | j	                  d|       | j                  t        fd       | j                  t        fd       | j                  dd       | j	                  dd       | j                  dd       | j                  dd       | j                  t        d	        y )
N   r   c                      d v S Nr!   r   as   r   <lambda>z0TestContains.test_common_tests.<locals>.<lambda>   s    Q!V r   c                      d vS r#   r   r$   s   r   r&   z0TestContains.test_common_tests.<locals>.<lambda>   s    QaZ r   cabcd c                  
    d dv S )Nr)   r   r   r   r   r&   z0TestContains.test_common_tests.<locals>.<lambda>%   s
    TU] r   )r   r   r   assertInassertNotInassertRaises	TypeError)r   br(   r%   s      @r   test_common_testszTestContains.test_common_tests   s    QK!HFaAaA)^4)%78 	c5!e$b"b% )%:;r   c                 z   t        d      }|D ]  }| j                  ||        | j                  d|       | j                  ||       t        |      }|D ]  }| j                  ||        | j                  d|       | j                  ||        G d d      }| j                   |       |j                         y )N
      c                   2    e Zd ZdZ e ed            Zd Zy):TestContains.test_builtin_sequence_types.<locals>.Deviant1zBehaves strangely when compared

            This class is designed to make sure that the contains code
            works when the list is modified during the check.
               c                     |dk(  rQ| j                   j                  d       | j                   j                  d       | j                   j                  d       y)N         r   )aListremover   others     r   __eq__zATestContains.test_builtin_sequence_types.<locals>.Deviant1.__eq__<   sB    B;JJ%%b)JJ%%b)JJ%%b)r   N)r   r   r   __doc__listranger=   rA   r   r   r   Deviant1r7   5   s    
 rOEr   rE   )rD   r-   r.   tupler=   )r   r%   irE   s       r   test_builtin_sequence_typesz(TestContains.test_builtin_sequence_types'   s    "I 	 AMM!Q	 QA!H 	 AMM!Q	 QA	 	 	X^^4r   c                 ,   t        d      dd dt        f}t        t        t        j
                  t        t        t        f}|D ]Q  } ||      }|D ]  }| j                  ||        | j                  | ||      k(         | j                  ||k(         S y )Nnanr!   r)   )floatr   rC   rF   dictfromkeysset	frozensetr   r-   
assertTrue)r   valuesconstructorsconstructor	containerelems         r   test_nonreflexivezTestContains.test_nonreflexiveE   s     uq$x7UDMM3	5H' 	4K#F+I! /dI./OOIV)<<=OOI23	4r   c                      G d dt               } |       } G d d|      } |       | j                  d|v        | j                  dt              v        | j                  t        fd       y )Nc                       e Zd Zd Zy)4TestContains.test_block_fallback.<locals>.ByContainsc                      y)NFr   r?   s     r   r   zATestContains.test_block_fallback.<locals>.ByContains.__contains__U   s    r   Nr   r   r   r   
ByContainsrY   T   s    r   r[   c                       e Zd ZdZd ZdZy)7TestContains.test_block_fallback.<locals>.BlockContainsa  Is not a container

            This class is a perfectly good iterable (as tested by
            list(bc)), as well as inheriting from a perfectly good
            container, but __contains__ = None prevents the usual
            fallback to iteration in the container protocol. That
            is, normally, 0 in bc would fall back to the equivalent
            of any(x==0 for x in bc), but here it's blocked from
            doing so.
            c              3      K   y wr   r   )r   s    r   __iter__z@TestContains.test_block_fallback.<locals>.BlockContains.__iter__c   s	     s   N)r   r   r   rB   r_   r   r   r   r   BlockContainsr]   X   s    	  Lr   r`   r   c                      d v S )Nr   r   )bcs   r   r&   z2TestContains.test_block_fallback.<locals>.<lambda>j   s    Q"W r   )objectassertFalserC   r/   r0   )r   r[   r(   r`   rb   s       @r   test_block_fallbackz TestContains.test_block_fallbackR   se    	 	 L	 J 	  _a d2h')_5r   N)r   r   r   r2   rH   rV   re   r   r   r   r   r      s    <(5<46r   r   __main__)collectionsr   unittesttest.supportr   r   r   r   TestCaser   r   mainr   r   r   <module>rl      s_      ! H ( X68$$ X6t zHMMO r   