mò
­fIc           @   ss  d  k  Z  d  k Z d  k Z d  k Z d  k Z d k l Z l Z d k l	 Z	 e ƒ  Z
 d e  i f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d „  Z d e  i f d „  ƒ  YZ d e  i f d „  ƒ  YZ d e  i f d „  ƒ  YZ d e  i f d „  ƒ  YZ d e  i f d „  ƒ  YZ d e  i f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d  „  ƒ  YZ d! e f d" „  ƒ  YZ d# e f d$ „  ƒ  YZ d% e  i f d& „  ƒ  YZ d' e f d( „  ƒ  YZ d) e f d* „  ƒ  YZ  d+ e f d, „  ƒ  YZ! d- e f d. „  ƒ  YZ" d/ e f d0 „  ƒ  YZ# d1 e f d2 „  ƒ  YZ$ d3 e f d4 „  ƒ  YZ% d5 e  i f d6 „  ƒ  YZ& d7 e& f d8 „  ƒ  YZ' d9 e& f d: „  ƒ  YZ( d; e& f d< „  ƒ  YZ) d= e& f d> „  ƒ  YZ* d? e& f d@ „  ƒ  YZ+ dA e  i f dB „  ƒ  YZ, dC Z- h  dD e- <Z. d  dE „ Z0 e1 dF j o e0 dG e2 ƒ n d  S(H   N(   s   Sets   ImmutableSet(   s   test_supportt   TestBasicOpsc           B   sª   t  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 RS(   Nc         C   s4   |  i d  j	 o  |  i t |  i ƒ |  i ƒ n d  S(   N(   t   selft   reprt   Nonet   assertEqualt   set(   R   (    (    t+   /mit/python/lib/python2.4/test/test_sets.pyt	   test_repr   s    c         C   s    |  i t |  i ƒ |  i ƒ d  S(   N(   R   R   t   lenR   t   length(   R   (    (    R   t   test_length   s    c         C   s   |  i |  i |  i ƒ d  S(   N(   R   R   R   (   R   (    (    R   t   test_self_equality   s    c         C   s   |  i |  i |  i ƒ d  S(   N(   R   R   R   t   dup(   R   (    (    R   t   test_equivalent_equality   s    c         C   s    |  i |  i i ƒ  |  i ƒ d  S(   N(   R   R   R   t   copyR   (   R   (    (    R   t	   test_copy   s    c         C   s'   |  i |  i B} |  i | |  i ƒ d  S(   N(   R   R   t   resultR   R   (   R   R   (    (    R   t   test_self_union   s    c         C   s$   |  i t B} |  i | |  i ƒ d  S(   N(   R   R   t	   empty_setR   R   R   (   R   R   (    (    R   t   test_empty_union!   s    c         C   s$   t  |  i B} |  i | |  i ƒ d  S(   N(   R   R   R   R   R   R   (   R   R   (    (    R   t   test_union_empty%   s    c         C   s'   |  i |  i @} |  i | |  i ƒ d  S(   N(   R   R   R   R   R   (   R   R   (    (    R   t   test_self_intersection)   s    c         C   s!   |  i t @} |  i | t ƒ d  S(   N(   R   R   R   R   R   (   R   R   (    (    R   t   test_empty_intersection-   s    c         C   s!   t  |  i @} |  i | t  ƒ d  S(   N(   R   R   R   R   R   (   R   R   (    (    R   t   test_intersection_empty1   s    c         C   s$   |  i |  i A} |  i | t ƒ d  S(   N(   R   R   R   R   R   (   R   R   (    (    R   t   test_self_symmetric_difference5   s    c         C   s$   |  i t A} |  i | |  i ƒ d  S(   N(   R   R   R   R   R   (   R   R   (    (    R   t   checkempty_symmetric_difference9   s    c         C   s$   |  i |  i } |  i | t ƒ d  S(   N(   R   R   R   R   R   (   R   R   (    (    R   t   test_self_difference=   s    c         C   s$   |  i t } |  i | |  i ƒ d  S(   N(   R   R   R   R   R   R   (   R   R   (    (    R   t   test_empty_differenceA   s    c         C   s!   t  |  i } |  i | t  ƒ d  S(   N(   R   R   R   R   R   (   R   R   (    (    R   t   test_empty_difference_revE   s    c         C   s.   x' |  i D] } |  i | |  i j ƒ q
 Wd  S(   N(   R   R   t   vt   assert_t   values(   R   R   (    (    R   t   test_iterationI   s    
 c         C   sH   t  i |  i ƒ } t  i | ƒ } |  i |  i | d |  i | f ƒ d  S(   Ns   %s != %s(   t   picklet   dumpsR   R   t   pt   loadsR   R   (   R   R#   R   (    (    R   t   test_picklingM   s    (   t   __name__t
   __module__R   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R%   (    (    (    R   R       s$   																	t   TestBasicOpsEmptyc           B   s   t  Z d „  Z RS(   Nc         C   sL   d |  _ g  |  _ t |  i ƒ |  _ t |  i ƒ |  _ d |  _ d |  _ d  S(   Ns	   empty seti    s   Set([])(   R   t   caseR   t   SetR   R   R	   R   (   R   (    (    R   t   setUpV   s    			(   R&   R'   R+   (    (    (    R   R(   U   s   t   TestBasicOpsSingletonc           B   s#   t  Z d „  Z d „  Z d „  Z RS(   Nc         C   sO   d |  _ d g |  _ t |  i ƒ |  _ t |  i ƒ |  _ d |  _ d |  _ d  S(   Ns   unit set (number)i   i   s   Set([3])(   R   R)   R   R*   R   R   R	   R   (   R   (    (    R   R+   a   s    		c         C   s   |  i d |  i j ƒ d  S(   Ni   (   R   t
   failUnlessR   (   R   (    (    R   t   test_ini   s    c         C   s   |  i d |  i j ƒ d  S(   Ni   (   R   R-   R   (   R   (    (    R   t   test_not_inl   s    (   R&   R'   R+   R.   R/   (    (    (    R   R,   `   s   		t   TestBasicOpsTuplec           B   s#   t  Z d „  Z d „  Z d „  Z RS(   Nc         C   sO   d |  _ d g |  _ t |  i ƒ |  _ t |  i ƒ |  _ d |  _ d |  _ d  S(   Ns   unit set (tuple)i    t   zeroi   s   Set([(0, 'zero')])(   i    s   zero(   R   R)   R   R*   R   R   R	   R   (   R   (    (    R   R+   r   s    		c         C   s   |  i d |  i j ƒ d  S(   Ni    R1   (   i    s   zero(   R   R-   R   (   R   (    (    R   R.   z   s    c         C   s   |  i d |  i j ƒ d  S(   Ni	   (   R   R-   R   (   R   (    (    R   R/   }   s    (   R&   R'   R+   R.   R/   (    (    (    R   R0   q   s   		t   TestBasicOpsTriplec           B   s   t  Z d „  Z RS(   Nc         C   sX   d |  _ d d t i g |  _ t |  i ƒ |  _ t |  i ƒ |  _ d |  _ d  |  _
 d  S(   Ns
   triple seti    R1   i   (   R   R)   t   operatort   addR   R*   R   R   R	   R   R   (   R   (    (    R   R+   ƒ   s    		(   R&   R'   R+   (    (    (    R   R2   ‚   s   c           c   s   t  ‚ t Vd  S(   N(   t	   TypeErrort   True(    (    (    R   t   baditer   s    c           c   s   t  Vd  S(   N(   R6   (    (    (    R   t   gooditer‘   s    t   TestExceptionPropagationc           B   s    t  Z d  Z d „  Z d „  Z RS(   s?   SF 628246:  Set constructor should not trap iterator TypeErrorsc         C   s   |  i t t t ƒ  ƒ d  S(   N(   R   t   assertRaisesR5   R*   R7   (   R   (    (    R   t   test_instanceWithException—   s    c         C   sm   t  d d d g ƒ t  d ƒ t  h  d d <d d <d d <ƒ t  t d ƒ ƒ t  d ƒ t  t ƒ  ƒ d  S(	   Ni   i   i   t   onet   twot   threet   abc(   i   i   i   (   R*   t   xrangeR8   (   R   (    (    R   t   test_instancesWithoutExceptionš   s    
%
(   R&   R'   t   __doc__R;   RA   (    (    (    R   R9   ”   s    	t   TestSetOfSetsc           B   s   t  Z d „  Z RS(   Nc         C   s~   t  d g ƒ } t  | g ƒ } | i ƒ  } |  i t | ƒ t ƒ | i	 | ƒ | i
 | ƒ |  i | t  ƒ  ƒ | i | ƒ d  S(   Ni   (   R*   t   innert   outert   popt   elementR   R   t   typet   ImmutableSetR4   t   removet   discard(   R   RE   RG   RD   (    (    R   t   test_constructor¦   s    (   R&   R'   RL   (    (    (    R   RC   ¥   s   t   TestBinaryOpsc           B   s˜   t  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 RS(   Nc         C   s   t  d ƒ |  _ d  S(   Ni   i   i   (   i   i   i   (   R*   R   R   (   R   (    (    R   R+   ³   s    c         C   s8   |  i |  i t h  d d <d d <d d <ƒ ƒ d  S(   Ni   i   i   i   i   i   (   R   R   R   R*   (   R   (    (    R   t   test_eq¶   s    c         C   s0   |  i t d g ƒ B} |  i | t d ƒ ƒ d  S(   Ni   i   i   (   i   i   i   (   R   R   R*   R   R   (   R   R   (    (    R   t   test_union_subset¹   s    c         C   sE   |  i t d d d d g ƒ B} |  i | t d d d d g ƒ ƒ d  S(   Ni   i   i   i   (   R   R   R*   R   R   (   R   R   (    (    R   t   test_union_superset½   s    c         C   sE   |  i t d d d g ƒ B} |  i | t d d d d d g ƒ ƒ d  S(   Ni   i   i   i   i   (   R   R   R*   R   R   (   R   R   (    (    R   t   test_union_overlapÁ   s    c         C   s<   |  i t d g ƒ B} |  i | t d d d d g ƒ ƒ d  S(   Ni   i   i   i   (   R   R   R*   R   R   (   R   R   (    (    R   t   test_union_non_overlapÅ   s    c         C   s-   |  i t d ƒ @} |  i | t d ƒ ƒ d  S(   Ni   i   (   i   i   (   i   i   (   R   R   R*   R   R   (   R   R   (    (    R   t   test_intersection_subsetÉ   s    c         C   sB   |  i t d d d d g ƒ @} |  i | t d d d g ƒ ƒ d  S(   Ni   i   i   i   (   R   R   R*   R   R   (   R   R   (    (    R   t   test_intersection_supersetÍ   s    c         C   s9   |  i t d d d g ƒ @} |  i | t d g ƒ ƒ d  S(   Ni   i   i   (   R   R   R*   R   R   (   R   R   (    (    R   t   test_intersection_overlapÑ   s    c         C   s*   |  i t d g ƒ @} |  i | t ƒ d  S(   Ni   (   R   R   R*   R   R   R   (   R   R   (    (    R   t   test_intersection_non_overlapÕ   s    c         C   s0   |  i t d ƒ A} |  i | t d g ƒ ƒ d  S(   Ni   i   i   (   i   i   (   R   R   R*   R   R   (   R   R   (    (    R   t   test_sym_difference_subsetÙ   s    c         C   s0   |  i t d ƒ A} |  i | t d g ƒ ƒ d  S(   Ni   i   i   i   (   i   i   i   i   (   R   R   R*   R   R   (   R   R   (    (    R   t   test_sym_difference_supersetÝ   s    c         C   s9   |  i t d ƒ A} |  i | t d d d d g ƒ ƒ d  S(   Ni   i   i   i   i   (   i   i   i   (   R   R   R*   R   R   (   R   R   (    (    R   t   test_sym_difference_overlapá   s    c         C   s<   |  i t d g ƒ A} |  i | t d d d d g ƒ ƒ d  S(   Ni   i   i   i   (   R   R   R*   R   R   (   R   R   (    (    R   t   test_sym_difference_non_overlapå   s    c         C   sx   t  d ƒ t  d ƒ } } |  i t t | | ƒ |  i t | | ƒ d ƒ |  i t t | d ƒ |  i t t d | ƒ d  S(   Nt   at   bi    i   R?   (   R*   R[   R\   R   R:   R5   t   cmpR   (   R   R[   R\   (    (    R   t   test_cmpé   s
    c         C   sœ   |  i i ƒ  } | | O} |  i | |  i ƒ | | M} |  i | |  i ƒ | | 8} |  i t | ƒ d ƒ |  i i ƒ  } | | N} |  i t | ƒ d ƒ d  S(   Ni    (   R   R   R   t   tR   R   (   R   R_   (    (    R   t   test_inplace_on_selfö   s    



(   R&   R'   R+   RN   RO   RP   RQ   RR   RS   RT   RU   RV   RW   RX   RY   RZ   R^   R`   (    (    (    R   RM   ²   s    															t   TestUpdateOpsc           B   sÅ   t  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 RS(   Nc         C   s   t  d ƒ |  _ d  S(   Ni   i   i   (   i   i   i   (   R*   R   R   (   R   (    (    R   R+     s    c         C   s5   |  i t d g ƒ O_ |  i |  i t d ƒ ƒ d  S(   Ni   i   i   (   i   i   i   (   R   R   R*   R   (   R   (    (    R   RO   	  s    c         C   sJ   |  i t d d d d g ƒ O_ |  i |  i t d d d d g ƒ ƒ d  S(   Ni   i   i   i   (   R   R   R*   R   (   R   (    (    R   RP     s    !c         C   sJ   |  i t d d d g ƒ O_ |  i |  i t d d d d d g ƒ ƒ d  S(   Ni   i   i   i   i   (   R   R   R*   R   (   R   (    (    R   RQ     s    c         C   sA   |  i t d g ƒ O_ |  i |  i t d d d d g ƒ ƒ d  S(   Ni   i   i   i   (   R   R   R*   R   (   R   (    (    R   RR     s    c         C   sK   |  i i t d d d g ƒ ƒ |  i |  i t d d d d d g ƒ ƒ d  S(   Ni   i   i   i   i   (   R   R   t   union_updateR*   R   (   R   (    (    R   t   test_union_method_call  s    c         C   s2   |  i t d ƒ M_ |  i |  i t d ƒ ƒ d  S(   Ni   i   (   i   i   (   i   i   (   R   R   R*   R   (   R   (    (    R   RS     s    c         C   sG   |  i t d d d d g ƒ M_ |  i |  i t d d d g ƒ ƒ d  S(   Ni   i   i   i   (   R   R   R*   R   (   R   (    (    R   RT   !  s    !c         C   s>   |  i t d d d g ƒ M_ |  i |  i t d g ƒ ƒ d  S(   Ni   i   i   (   R   R   R*   R   (   R   (    (    R   RU   %  s    c         C   s/   |  i t d g ƒ M_ |  i |  i t ƒ d  S(   Ni   (   R   R   R*   R   R   (   R   (    (    R   RV   )  s    c         C   s?   |  i i t d d d g ƒ ƒ |  i |  i t d g ƒ ƒ d  S(   Ni   i   i   (   R   R   t   intersection_updateR*   R   (   R   (    (    R   t   test_intersection_method_call-  s    c         C   s5   |  i t d ƒ N_ |  i |  i t d g ƒ ƒ d  S(   Ni   i   i   (   i   i   (   R   R   R*   R   (   R   (    (    R   RW   1  s    c         C   s5   |  i t d ƒ N_ |  i |  i t d g ƒ ƒ d  S(   Ni   i   i   i   (   i   i   i   i   (   R   R   R*   R   (   R   (    (    R   RX   5  s    c         C   s>   |  i t d ƒ N_ |  i |  i t d d d d g ƒ ƒ d  S(   Ni   i   i   i   i   (   i   i   i   (   R   R   R*   R   (   R   (    (    R   RY   9  s    c         C   sA   |  i t d g ƒ N_ |  i |  i t d d d d g ƒ ƒ d  S(   Ni   i   i   i   (   R   R   R*   R   (   R   (    (    R   RZ   =  s    c         C   sH   |  i i t d d d g ƒ ƒ |  i |  i t d d d d g ƒ ƒ d  S(   Ni   i   i   i   i   (   R   R   t   symmetric_difference_updateR*   R   (   R   (    (    R   t   test_sym_difference_method_callA  s    c         C   s5   |  i t d ƒ 8_ |  i |  i t d g ƒ ƒ d  S(   Ni   i   i   (   i   i   (   R   R   R*   R   (   R   (    (    R   t   test_difference_subsetE  s    c         C   s2   |  i t d ƒ 8_ |  i |  i t g  ƒ ƒ d  S(   Ni   i   i   i   (   i   i   i   i   (   R   R   R*   R   (   R   (    (    R   t   test_difference_supersetI  s    c         C   s8   |  i t d ƒ 8_ |  i |  i t d d g ƒ ƒ d  S(   Ni   i   i   i   i   (   i   i   i   (   R   R   R*   R   (   R   (    (    R   t   test_difference_overlapM  s    c         C   s>   |  i t d g ƒ 8_ |  i |  i t d d d g ƒ ƒ d  S(   Ni   i   i   i   (   R   R   R*   R   (   R   (    (    R   t   test_difference_non_overlapQ  s    c         C   sB   |  i i t d d d g ƒ ƒ |  i |  i t d d g ƒ ƒ d  S(   Ni   i   i   i   i   (   R   R   t   difference_updateR*   R   (   R   (    (    R   t   test_difference_method_callU  s    (   R&   R'   R+   RO   RP   RQ   RR   Rc   RS   RT   RU   RV   Re   RW   RX   RY   RZ   Rg   Rh   Ri   Rj   Rk   Rm   (    (    (    R   Ra     s*   																				t
   TestMutatec           B   s†   t  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 RS(   Nc         C   s(   d d d g |  _ t |  i ƒ |  _ d  S(   NR[   R\   t   c(   R   R   R*   R   (   R   (    (    R   R+   \  s    c         C   s-   |  i i d ƒ |  i |  i t d ƒ ƒ d  S(   NRo   R?   (   R   R   R4   R   R*   (   R   (    (    R   t   test_add_present`  s    c         C   s-   |  i i d ƒ |  i |  i t d ƒ ƒ d  S(   Nt   dt   abcd(   R   R   R4   R   R*   (   R   (    (    R   t   test_add_absentd  s    c         C   sg   t  ƒ  } d } x> |  i D]3 } | i | ƒ | d 7} |  i t | ƒ | ƒ q W|  i | |  i	 ƒ d  S(   Ni    i   (
   R*   t   tmpt   expected_lenR   R   R   R4   R   R   R   (   R   Rt   Ru   R   (    (    R   t   test_add_until_fullh  s    	
 
c         C   s-   |  i i d ƒ |  i |  i t d ƒ ƒ d  S(   NR\   t   ac(   R   R   RJ   R   R*   (   R   (    (    R   t   test_remove_presentq  s    c         C   s;   y! |  i i d ƒ |  i d ƒ Wn t j
 o n Xd  S(   NRq   s7   Removing missing element should have raised LookupError(   R   R   RJ   t   failt   LookupError(   R   (    (    R   t   test_remove_absentu  s
    c         C   sZ   t  |  i ƒ } xD |  i D]9 } |  i i | ƒ | d 8} |  i t  |  i ƒ | ƒ q Wd  S(   Ni   (   R   R   R   Ru   R   R   RJ   R   (   R   Ru   R   (    (    R   t   test_remove_until_empty|  s    
 
c         C   s-   |  i i d ƒ |  i |  i t d ƒ ƒ d  S(   NRo   t   ab(   R   R   RK   R   R*   (   R   (    (    R   t   test_discard_presentƒ  s    c         C   s-   |  i i d ƒ |  i |  i t d ƒ ƒ d  S(   NRq   R?   (   R   R   RK   R   R*   (   R   (    (    R   t   test_discard_absent‡  s    c         C   s*   |  i i ƒ  |  i t |  i ƒ d ƒ d  S(   Ni    (   R   R   t   clearR   R   (   R   (    (    R   t
   test_clear‹  s    c         C   su   h  } x" |  i o d  | |  i i ƒ  <q	 W|  i t | ƒ t |  i ƒ ƒ x$ |  i D] } |  i	 | | j ƒ qT Wd  S(   N(
   t   poppedR   R   R   RF   R   R   R   R   R-   (   R   R‚   R   (    (    R   t   test_pop  s     

 c         C   s0   |  i i f  ƒ |  i |  i t |  i ƒ ƒ d  S(   N(   R   R   Rb   R   R*   R   (   R   (    (    R   t   test_update_empty_tuple—  s    c         C   s0   |  i i d ƒ |  i |  i t |  i ƒ ƒ d  S(   NR[   (   R[   (   R   R   Rb   R   R*   R   (   R   (    (    R   t   test_update_unit_tuple_overlap›  s    c         C   s7   |  i i d ƒ |  i |  i t |  i d g ƒ ƒ d  S(   NR[   t   z(   R[   R†   (   R   R   Rb   R   R*   R   (   R   (    (    R   t"   test_update_unit_tuple_non_overlapŸ  s    (   R&   R'   R+   Rp   Rs   Rv   Rx   R{   R|   R~   R   R   Rƒ   R„   R…   R‡   (    (    (    R   Rn   [  s   														t   TestSubsetsc           B   se   t  Z h  d d <d d <Z h  d d <d d <d d <d d <d d <d d <Z d	 „  Z RS(
   Ns   <=t   issubsets   >=t
   issupersets   ==s   !=t   <t   >c         C   s#  |  i } |  i } x
d	 D]} | |  i j } t d | d t	 ƒ  ƒ } |  i | | ƒ | t i j o6 t | t i | ƒ } | | ƒ } |  i | | ƒ n t i | } t d | d t	 ƒ  ƒ } |  i | | ƒ | t i j o6 t | t i | ƒ } | | ƒ } |  i | | ƒ q q Wd  S(
   Ns   !=s   ==R‹   s   <=RŒ   s   >=t   xt   y(   s   !=s   ==R‹   s   <=RŒ   s   >=(   R   t   leftR   t   rightRŽ   R)   t   casest   expectedt   evalt   localsR   R   Rˆ   t   case2methodt   getattrt   methodt   reverset   rcase(   R   R)   R’   R   RŽ   R   R™   R—   (    (    R   t   test_issubset³  s$    		 (   R&   R'   R•   R˜   Rš   (    (    (    R   Rˆ   ¥  s   <t   TestSubsetEqualEmptyc           B   s&   t  Z e ƒ  Z e ƒ  Z d Z d Z RS(   Ns
   both emptys   ==s   <=s   >=(   s   ==s   <=s   >=(   R&   R'   R*   R   R   t   nameR‘   (    (    (    R   R›   Ë  s   		t   TestSubsetEqualNonEmptyc           B   s8   t  Z e d d g ƒ Z e d d g ƒ Z d Z d Z RS(   Ni   i   s
   equal pairs   ==s   <=s   >=(   s   ==s   <=s   >=(   R&   R'   R*   R   R   Rœ   R‘   (    (    (    R   R   Ó  s   t   TestSubsetEmptyNonEmptyc           B   s/   t  Z e ƒ  Z e d d g ƒ Z d Z d Z RS(   Ni   i   s   one empty, one non-emptys   !=R‹   s   <=(   s   !=R‹   s   <=(   R&   R'   R*   R   R   Rœ   R‘   (    (    (    R   Rž   Û  s   	t   TestSubsetPartialc           B   s5   t  Z e d g ƒ Z e d d g ƒ Z d Z d Z RS(   Ni   i   s&   one a non-empty proper subset of others   !=R‹   s   <=(   s   !=R‹   s   <=(   R&   R'   R*   R   R   Rœ   R‘   (    (    (    R   RŸ   ã  s   t   TestSubsetNonOverlapc           B   s2   t  Z e d g ƒ Z e d g ƒ Z d Z d Z RS(   Ni   i   s   neither empty, neither containss   !=(   R&   R'   R*   R   R   Rœ   R‘   (    (    (    R   R    ë  s   t   TestOnlySetsInBinaryOpsc           B   s†   t  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 RS(   Nc         C   st   |  i |  i |  i j t ƒ |  i |  i |  i j t ƒ |  i |  i |  i j t ƒ |  i |  i |  i j t ƒ d  S(   N(   R   R   t   otherR   t   FalseR6   (   R   (    (    R   t
   test_eq_neõ  s    c            s´   ˆ  i t ‡  d †  ƒ ˆ  i t ‡  d †  ƒ ˆ  i t ‡  d †  ƒ ˆ  i t ‡  d †  ƒ ˆ  i t ‡  d †  ƒ ˆ  i t ‡  d †  ƒ ˆ  i t ‡  d †  ƒ ˆ  i t ‡  d †  ƒ d  S(	   Nc              s   ˆ  i ˆ  i j  S(   N(   R   R   R¢   (    (   R   (    R   t   <lambda>ý  s    c              s   ˆ  i ˆ  i j S(   N(   R   R   R¢   (    (   R   (    R   R¥   þ  s    c              s   ˆ  i ˆ  i j S(   N(   R   R   R¢   (    (   R   (    R   R¥   ÿ  s    c              s   ˆ  i ˆ  i j S(   N(   R   R   R¢   (    (   R   (    R   R¥      s    c              s   ˆ  i ˆ  i j  S(   N(   R   R¢   R   (    (   R   (    R   R¥     s    c              s   ˆ  i ˆ  i j S(   N(   R   R¢   R   (    (   R   (    R   R¥     s    c              s   ˆ  i ˆ  i j S(   N(   R   R¢   R   (    (   R   (    R   R¥     s    c              s   ˆ  i ˆ  i j S(   N(   R   R¢   R   (    (   R   (    R   R¥     s    (   R   R:   R5   (   R   (    (   R   R   t   test_ge_gt_le_ltü  s    c         C   s=   y |  i |  i O_ Wn t j
 o n X|  i d ƒ d  S(   Ns   expected TypeError(   R   R   R¢   R5   Ry   (   R   (    (    R   t   test_union_update_operator  s
    c         C   sA   |  i o |  i i |  i ƒ n |  i t |  i i |  i ƒ d  S(   N(   R   t   otherIsIterableR   Rb   R¢   R:   R5   (   R   (    (    R   t   test_union_update  s    
c            sm   ˆ  i t ‡  d †  ƒ ˆ  i t ‡  d †  ƒ ˆ  i o ˆ  i i ˆ  i ƒ n ˆ  i t ˆ  i i ˆ  i ƒ d  S(   Nc              s   ˆ  i ˆ  i BS(   N(   R   R   R¢   (    (   R   (    R   R¥     s    c              s   ˆ  i ˆ  i BS(   N(   R   R¢   R   (    (   R   (    R   R¥     s    (   R   R:   R5   R¨   R   t   unionR¢   (   R   (    (   R   R   t
   test_union  s
    
c         C   s=   y |  i |  i M_ Wn t j
 o n X|  i d ƒ d  S(   Ns   expected TypeError(   R   R   R¢   R5   Ry   (   R   (    (    R   t!   test_intersection_update_operator  s
    c         C   sA   |  i o |  i i |  i ƒ n |  i t |  i i |  i ƒ d  S(   N(   R   R¨   R   Rd   R¢   R:   R5   (   R   (    (    R   t   test_intersection_update%  s
    
		c            sm   ˆ  i t ‡  d †  ƒ ˆ  i t ‡  d †  ƒ ˆ  i o ˆ  i i ˆ  i ƒ n ˆ  i t ˆ  i i ˆ  i ƒ d  S(   Nc              s   ˆ  i ˆ  i @S(   N(   R   R   R¢   (    (   R   (    R   R¥   .  s    c              s   ˆ  i ˆ  i @S(   N(   R   R¢   R   (    (   R   (    R   R¥   /  s    (   R   R:   R5   R¨   R   t   intersectionR¢   (   R   (    (   R   R   t   test_intersection-  s
    
c         C   s=   y |  i |  i N_ Wn t j
 o n X|  i d ƒ d  S(   Ns   expected TypeError(   R   R   R¢   R5   Ry   (   R   (    (    R   t#   test_sym_difference_update_operator5  s
    c         C   sA   |  i o |  i i |  i ƒ n |  i t |  i i |  i ƒ d  S(   N(   R   R¨   R   Rf   R¢   R:   R5   (   R   (    (    R   t   test_sym_difference_update=  s
    
		c            sm   ˆ  i t ‡  d †  ƒ ˆ  i t ‡  d †  ƒ ˆ  i o ˆ  i i ˆ  i ƒ n ˆ  i t ˆ  i i ˆ  i ƒ d  S(   Nc              s   ˆ  i ˆ  i AS(   N(   R   R   R¢   (    (   R   (    R   R¥   F  s    c              s   ˆ  i ˆ  i AS(   N(   R   R¢   R   (    (   R   (    R   R¥   G  s    (   R   R:   R5   R¨   R   t   symmetric_differenceR¢   (   R   (    (   R   R   t   test_sym_differenceE  s
    
c         C   s=   y |  i |  i 8_ Wn t j
 o n X|  i d ƒ d  S(   Ns   expected TypeError(   R   R   R¢   R5   Ry   (   R   (    (    R   t   test_difference_update_operatorM  s
    c         C   sA   |  i o |  i i |  i ƒ n |  i t |  i i |  i ƒ d  S(   N(   R   R¨   R   Rl   R¢   R:   R5   (   R   (    (    R   t   test_difference_updateU  s
    
		c            sm   ˆ  i t ‡  d †  ƒ ˆ  i t ‡  d †  ƒ ˆ  i o ˆ  i i ˆ  i ƒ n ˆ  i t ˆ  i i ˆ  i ƒ d  S(   Nc              s   ˆ  i ˆ  i S(   N(   R   R   R¢   (    (   R   (    R   R¥   ^  s    c              s   ˆ  i ˆ  i S(   N(   R   R¢   R   (    (   R   (    R   R¥   _  s    (   R   R:   R5   R¨   R   t
   differenceR¢   (   R   (    (   R   R   t   test_difference]  s
    
(   R&   R'   R¤   R¦   R§   R©   R«   R¬   R­   R¯   R°   R±   R³   R´   Rµ   R·   (    (    (    R   R¡   ó  s   													t   TestOnlySetsNumericc           B   s   t  Z d „  Z RS(   Nc         C   s%   t  d ƒ |  _ d |  _ t |  _ d  S(   Ni   i   i   i   (   i   i   i   (   R*   R   R   R¢   R£   R¨   (   R   (    (    R   R+   h  s    	(   R&   R'   R+   (    (    (    R   R¸   g  s   t   TestOnlySetsDictc           B   s   t  Z d „  Z RS(   Nc         C   s7   t  d ƒ |  _ h  d d <d d <|  _ t |  _ d  S(   Ni   i   i   i   (   i   i   i   (   R*   R   R   R¢   R6   R¨   (   R   (    (    R   R+   p  s    (   R&   R'   R+   (    (    (    R   R¹   o  s   t   TestOnlySetsOperatorc           B   s   t  Z d „  Z RS(   Nc         C   s(   t  d ƒ |  _ t i |  _ t |  _ d  S(   Ni   i   i   (   i   i   i   (   R*   R   R   R3   R4   R¢   R£   R¨   (   R   (    (    R   R+   x  s    (   R&   R'   R+   (    (    (    R   Rº   w  s   t   TestOnlySetsTuplec           B   s   t  Z d „  Z RS(   Nc         C   s%   t  d ƒ |  _ d |  _ t |  _ d  S(   Ni   i   i   i   i   (   i   i   i   (   i   i   i   (   R*   R   R   R¢   R6   R¨   (   R   (    (    R   R+   €  s    	(   R&   R'   R+   (    (    (    R   R»     s   t   TestOnlySetsStringc           B   s   t  Z d „  Z RS(   Nc         C   s%   t  d ƒ |  _ d |  _ t |  _ d  S(   Ni   i   i   R?   (   i   i   i   (   R*   R   R   R¢   R6   R¨   (   R   (    (    R   R+   ˆ  s    	(   R&   R'   R+   (    (    (    R   R¼   ‡  s   t   TestOnlySetsGeneratorc           B   s   t  Z d „  Z RS(   Nc         C   s1   d „  } t d ƒ |  _ | ƒ  |  _ t |  _ d  S(   Nc          c   s%   x t  d d d ƒ D]
 }  |  Vq Wd  S(   Ni    i
   i   (   R@   t   i(   R¾   (    (    R   t   gen‘  s     i   i   i   (   i   i   i   (   R¿   R*   R   R   R¢   R6   R¨   (   R   R¿   (    (    R   R+     s    	(   R&   R'   R+   (    (    (    R   R½     s   t   TestOnlySetsofSetsc           B   s   t  Z d „  Z RS(   Nc         C   s7   t  d ƒ |  _ t  d ƒ t d ƒ g |  _ t |  _ d  S(   Ni   i   i   R}   t   cd(   i   i   i   (   R*   R   R   RI   R¢   R6   R¨   (   R   (    (    R   R+   ›  s    (   R&   R'   R+   (    (    (    R   RÀ   š  s   t   TestCopyingc           B   s   t  Z d „  Z d „  Z RS(   Nc         C   s–   |  i i ƒ  } t | ƒ } | i ƒ  t |  i ƒ } | i ƒ  |  i t	 | ƒ t	 | ƒ ƒ x5 t
 t	 | ƒ ƒ D]! } |  i | | | | j ƒ qm Wd  S(   N(   R   R   R   R   t   listt   dup_listt   sortt   set_listR   R   t   rangeR¾   R-   (   R   R¾   RÆ   R   RÄ   (    (    R   R   ¤  s     c         C   s–   t  i |  i ƒ } t | ƒ } | i ƒ  t |  i ƒ } | i ƒ  |  i	 t
 | ƒ t
 | ƒ ƒ x2 t t
 | ƒ ƒ D] } |  i	 | | | | ƒ qp Wd  S(   N(   R   t   deepcopyR   R   R   RÃ   RÄ   RÅ   RÆ   R   R   RÇ   R¾   (   R   R¾   RÆ   R   RÄ   (    (    R   t   test_deep_copy¬  s     (   R&   R'   R   RÉ   (    (    (    R   RÂ   ¢  s   	t   TestCopyingEmptyc           B   s   t  Z d „  Z RS(   Nc         C   s   t  ƒ  |  _ d  S(   N(   R*   R   R   (   R   (    (    R   R+   ¸  s    (   R&   R'   R+   (    (    (    R   RÊ   ·  s   t   TestCopyingSingletonc           B   s   t  Z d „  Z RS(   Nc         C   s   t  d g ƒ |  _ d  S(   Nt   hello(   R*   R   R   (   R   (    (    R   R+   ¾  s    (   R&   R'   R+   (    (    (    R   RË   ½  s   t   TestCopyingTriplec           B   s   t  Z d „  Z RS(   Nc         C   s   t  d d d  g ƒ |  _ d  S(   NR1   i    (   R*   R   R   R   (   R   (    (    R   R+   Ä  s    (   R&   R'   R+   (    (    (    R   RÍ   Ã  s   t   TestCopyingTuplec           B   s   t  Z d „  Z RS(   Nc         C   s   t  d g ƒ |  _ d  S(   Ni   i   (   i   i   (   R*   R   R   (   R   (    (    R   R+   Ê  s    (   R&   R'   R+   (    (    (    R   RÎ   É  s   t   TestCopyingNestedc           B   s   t  Z d „  Z RS(   Nc         C   s   t  d d f g ƒ |  _ d  S(   Ni   i   i   i   (   i   i   (   i   i   (   R*   R   R   (   R   (    (    R   R+   Ð  s    (   R&   R'   R+   (    (    (    R   RÏ   Ï  s   t   TestIdentitiesc           B   sG   t  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         C   sv   t  g  } t d ƒ D] } | t i d ƒ q ~ ƒ |  _ t  g  } t d ƒ D] } | t i d ƒ qM ~ ƒ |  _ d  S(   Ni2   id   (	   R*   t   _[1]R@   R¾   t   randomt	   randrangeR   R[   R\   (   R   R¾   RÑ   (    (    R   R+   Ö  s    9c         C   s¼   |  i |  i } } |  i | | | j ƒ |  i | | | j ƒ |  i | | @| j ƒ |  i | | @| j ƒ |  i | | B| j ƒ |  i | | B| j ƒ |  i | | A| | Bj ƒ d  S(   N(   R   R[   R\   R   (   R   R[   R\   (    (    R   t   test_binopsVsSubsetsÚ  s    c         C   sˆ   |  i |  i } } |  i | | @| | @ƒ |  i | | B| | Bƒ |  i | | A| | Aƒ | | j o |  i | | | | ƒ n d  S(   N(   R   R[   R\   R   t   assertNotEqual(   R   R[   R\   (    (    R   t   test_commutativityä  s    c         C   s    |  i t ƒ  } } |  i | | A| ƒ |  i | | | ƒ |  i | | B| ƒ |  i | | @| ƒ |  i | | j ƒ |  i | | j ƒ |  i | | j ƒ d  S(   N(   R   R[   R*   R1   R   R   (   R   R[   R1   (    (    R   t   test_reflexsive_relationsì  s    c         C   sï   |  i |  i } } |  i | | | | @B| | B| | Bƒ |  i | | @| | AB| | Bƒ |  i | | | B| | Bƒ |  i | | | B| | Bƒ |  i | | | | @B| ƒ |  i | | | | @B| ƒ |  i | | | | B| | Aƒ d  S(   N(   R   R[   R\   R   (   R   R[   R\   (    (    R   t   test_summationsö  s    ( c         C   sm   |  i |  i t ƒ  } } } |  i | | | @| ƒ |  i | | | @| ƒ |  i | | @| | A@| ƒ d  S(   N(   R   R[   R\   R*   R1   R   (   R   R[   R\   R1   (    (    R   t   test_exclusion  s    c         C   s  |  i |  i } } |  i t | ƒ t | | ƒ t | | @ƒ ƒ |  i t | ƒ t | | ƒ t | | @ƒ ƒ |  i t | | Aƒ t | | ƒ t | | ƒ ƒ |  i t | | Bƒ t | | ƒ t | | @ƒ t | | ƒ ƒ |  i t | | Aƒ t | | @ƒ t | | Bƒ ƒ d  S(   N(   R   R[   R\   R   R   (   R   R[   R\   (    (    R   t   test_cardinality_relations  s    ..2@(	   R&   R'   R+   RÔ   RÖ   R×   RØ   RÙ   RÚ   (    (    (    R   RÐ   Õ  s   		
		
		sÓ  
Example from the Library Reference:  Doc/lib/libsets.tex

>>> from sets import Set as Base  # override _repr to get sorted output
>>> class Set(Base):
...     def _repr(self):
...         return Base._repr(self, sorted=True)
>>> engineers = Set(['John', 'Jane', 'Jack', 'Janice'])
>>> programmers = Set(['Jack', 'Sam', 'Susan', 'Janice'])
>>> managers = Set(['Jane', 'Jack', 'Susan', 'Zack'])
>>> employees = engineers | programmers | managers           # union
>>> engineering_management = engineers & managers            # intersection
>>> fulltime_management = managers - engineers - programmers # difference
>>> engineers.add('Marvin')
>>> print engineers
Set(['Jack', 'Jane', 'Janice', 'John', 'Marvin'])
>>> employees.issuperset(engineers)           # superset test
False
>>> employees.union_update(engineers)         # update from another set
>>> employees.issuperset(engineers)
True
>>> for group in [engineers, programmers, managers, employees]:
...     group.discard('Susan')                # unconditionally remove element
...     print group
...
Set(['Jack', 'Jane', 'Janice', 'John', 'Marvin'])
Set(['Jack', 'Janice', 'Sam'])
Set(['Jack', 'Jane', 'Zack'])
Set(['Jack', 'Jane', 'Janice', 'John', 'Marvin', 'Sam', 'Zack'])
t
   libreftestc         C   s}   d  k  } d  k } t i t t t t t t	 t
 t t t t t t t t t t t t t t t t t t t t | i | ƒ ƒ d  S(   N(    t	   test_setst   doctestt   test_supportt   run_unittestRC   R9   R(   R,   R0   R2   RM   Ra   Rn   R›   R   Rž   RŸ   R    R¸   R¹   Rº   R»   R¼   R½   RÀ   RÊ   RË   RÍ   RÎ   RÏ   RÐ   t   DocTestSuite(   t   verboseRÜ   RÝ   (    (    R   t	   test_main5  s:    	t   __main__Rá   (3   t   unittestR3   R   R!   RÒ   t   setsR*   RI   t   testRÞ   R   t   TestCaseR    R(   R,   R0   R2   R7   R8   R9   RC   RM   Ra   Rn   Rˆ   R›   R   Rž   RŸ   R    R¡   R¸   R¹   Rº   R»   R¼   R½   RÀ   RÂ   RÊ   RË   RÍ   RÎ   RÏ   RÐ   RÛ   t   __test__R   Râ   R&   R6   (-   RÞ   RM   R,   RÛ   R›   Rä   RÒ   RŸ   RÍ   RÀ   R8   R   R3   Ra   Rž   R¡   R2   R0   Rº   R7   R¹   Rˆ   R(   RÎ   RI   Râ   RÊ   RC   R¼   RÐ   Rn   R9   Rè   R¸   R   RË   R½   R*   R    R»   R   RÂ   R    R!   RÏ   (    (    R   t   ?   sR   -	J		SVJ&t=!!