§
    2@Äj&  ã                   ó`   — d Z ddlmZ ddlmZ ddlmZmZ ddlmZm	Z	  G d„ de	e¦  «        Z
dS )	zÓ
Testing numba implementation of the numba set.

The tests here only check that the numba typing and codegen are working
correctly.  Detailed testing of the underlying set operations is done
in test_setimpl.py.
é    )Únjit)Úint32)ÚSetÚ	setobject)ÚTestCaseÚMemoryLeakMixinc                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestSetObjectc                 óF  — t           d„ ¦   «         }|                       |d¬¦  «        d¦  «         |                       |d¬¦  «        d¦  «         |                       |d¬¦  «        d¦  «         |                       |d¬¦  «        d¦  «         t           d„ ¦   «         }|                       |d¬¦  «        d¦  «         |                       |d¬¦  «        d¦  «         |                       |d¬¦  «        d¦  «         |                       |d¬¦  «        d¦  «         dS )	z6
        Test set creation, insertion and len
        c                 ó¦   — t          j        t          ¦  «        }t          | ¦  «        D ]}|                     |dz   ¦  «         Œt          |¦  «        S ©Né   )r   Únew_setr   ÚrangeÚaddÚlen©ÚnÚsÚis      úKC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_setobject.pyÚfooz*TestSetObject.test_set_create.<locals>.foo   sG   € åÔ!¥%Ñ(Ô(ˆAÝ˜1‘X”Xð ð �Ø—’�a˜!‘e‘”��Ý�q‘6”6ˆMó    r   )r   r   é   éd   c                 ó¦   — t          j        t          ¦  «        }t          | ¦  «        D ]}|                     |dz   ¦  «         Œt          |¦  «        S r   )r   Úemptyr   r   r   r   r   s      r   r   z*TestSetObject.test_set_create.<locals>.foo$   sF   € å”	�%Ñ Ô ˆAÝ˜1‘X”Xð ð �Ø—’�a˜!‘e‘”��Ý�q‘6”6ˆMr   N)r   ÚassertEqual)Úselfr   s     r   Útest_set_createzTestSetObject.test_set_create   s@  € õ 
ð	ð 	ñ 
Œð	ð 	×Ò˜˜˜q˜™œ 1Ñ%Ô%Ð%à×Ò˜˜˜q˜™œ 1Ñ%Ô%Ð%à×Ò˜˜˜q˜™œ 1Ñ%Ô%Ð%à×Ò˜˜˜s˜™œ SÑ)Ô)Ð)å	ð	ð 	ñ 
Œð	ð 	×Ò˜˜˜q˜™œ 1Ñ%Ô%Ð%à×Ò˜˜˜q˜™œ 1Ñ%Ô%Ð%à×Ò˜˜˜q˜™œ 1Ñ%Ô%Ð%à×Ò˜˜˜s˜™œ SÑ)Ô)Ð)Ð)Ð)r   c                 óú   — t          j        t          ¦  «        }|                      t	          |¦  «        d¦  «         t
          d„ ¦   «         } ||¦  «        }|                      t	          |¦  «        d¦  «         dS )z.
        Test set boxing and unboxing
        r   c                 ó   — | S ©N© ©r   s    r   r   z)TestSetObject.test_box_unbox.<locals>.foo<   s   € àˆHr   N)r   r   r   r   r   r   )r   r   r   s      r   Útest_box_unboxzTestSetObject.test_box_unbox4   sy   € õ ŒI•eÑÔˆà×Ò�˜Q™œ Ñ#Ô#Ð#å	ð	ð 	ñ 
Œð	ð ˆC�‰FŒFˆØ×Ò�˜Q™œ Ñ#Ô#Ð#Ð#Ð#r   c                 óN  — t          j        t          ¦  «        }t          d¦  «        D ]}|                     |dz   ¦  «         Œ|                      t          |¦  «        d¦  «         t          d„ ¦   «         } ||¦  «        }|                      t          |¦  «        d¦  «         dS )ú%
        Test set add method
        é   r   c                 óV   — t          d¦  «        D ]}|                      | ¦  «         Œ| S )Nr)   ©r   r   ©r   r   s     r   r   z'TestSetObject.test_set_add.<locals>.fooO   s1   € õ ˜1‘X”Xð ð �Ø—’�q�b‘	”	�	�	ØˆHr   é   N©r   r   r   r   r   r   r   r   ©r   r   r   r   s       r   Útest_set_addzTestSetObject.test_set_addC   s¥   € õ ŒI•eÑÔˆå�q‘”ð 	ð 	ˆAØ�EŠE�!�a‘%‰LŒLˆLˆLð 	×Ò�˜Q™œ Ñ#Ô#Ð#å	ð	ð 	ñ 
Œð	ð ˆC�‰FŒFˆà×Ò�˜Q™œ Ñ#Ô#Ð#Ð#Ð#r   c                 óN  — t          j        t          ¦  «        }t          d¦  «        D ]}|                     |dz   ¦  «         Œ|                      t          |¦  «        d¦  «         t          d„ ¦   «         } ||¦  «        }|                      t          |¦  «        d¦  «         dS )r(   r)   r   c                 óZ   — t          d¦  «        D ]}|                      |dz   ¦  «         Œ| S )Nr-   r   r+   r,   s     r   r   z2TestSetObject.test_set_add_duplicates.<locals>.foof   s3   € õ ˜1‘X”Xð ð �Ø—’�a˜!‘e‘”��ØˆHr   r-   Nr.   r/   s       r   Útest_set_add_duplicatesz%TestSetObject.test_set_add_duplicatesZ   s§   € õ ŒI•eÑÔˆå�q‘”ð 	ð 	ˆAØ�EŠE�!�a‘%‰LŒLˆLˆLð 	×Ò�˜Q™œ Ñ#Ô#Ð#å	ð	ð 	ñ 
Œð	ð ˆC�‰FŒFˆð 	×Ò�˜Q™œ Ñ#Ô#Ð#Ð#Ð#r   c                 óž  — t          j        t          ¦  «        }d}t          |¦  «        D ]}|                     |¦  «         Œ|                      t          |¦  «        |¦  «         t          d„ ¦   «         }t          |¦  «        D ]G}|                      t          ||v ¦  «        d¦  «         |                       |||¦  «        d¦  «         ŒHdS )z*
        Test set contains method
        é
   c                 ó$   — t          || v ¦  «        S r#   )Úbool)ÚsetÚkeys     r   r   z(TestSetObject.test_contains.<locals>.foo~   s   € å˜˜s˜
Ñ#Ô#Ð#r   TN)	r   r   r   r   r   r   r   r   r7   )r   r   Únum_keysr9   r   s        r   Útest_containszTestSetObject.test_containsr   s×   € õ ŒI•eÑÔˆØˆå˜‘?”?ð 	ð 	ˆCØ�EŠE�#‰JŒJˆJˆJà×Ò�˜Q™œ Ñ*Ô*Ð*å	ð	$ð 	$ñ 
Œð	$õ ˜‘?”?ð 	0ð 	0ˆCØ×Ò�T #¨ (™^œ^¨TÑ2Ô2Ð2Ø×Ò˜S˜S  C™[œ[¨$Ñ/Ô/Ð/Ð/ð	0ð 	0r   c                 ó|  — t          j        t          ¦  «        }t          d¦  «        D ]}|                     |dz   ¦  «         Œ|                      t          |¦  «        d¦  «         |                     d¦  «         |                     d¦  «         |                      t          |¦  «        d¦  «         t          d„ ¦   «         } ||¦  «        }|                      t          |¦  «        d¦  «         |                      t          d|v ¦  «        d¦  «         |                      t          d|v ¦  «        d¦  «         dS )	z)
        Test set discard method
        r)   r   é   é   c                 óZ   — |                       d¦  «         |                       d¦  «         | S )Nr   r   )Údiscardr%   s    r   r   z'TestSetObject.test_discard.<locals>.foo•   s'   € ð �IŠI�a‰LŒLˆLØ�IŠI�a‰LŒLˆLØˆHr   r   FN)
r   r   r   r   r   r   r   r@   r   r7   r/   s       r   Útest_discardzTestSetObject.test_discard†   s  € õ ŒI•eÑÔˆå�q‘”ð 	ð 	ˆAØ�EŠE�!�a‘%‰LŒLˆLˆLØ×Ò�˜Q™œ Ñ#Ô#Ð#ð 	
�	Š	�!‰ŒˆØ	�	Š	�!‰ŒˆØ×Ò�˜Q™œ Ñ#Ô#Ð#å	ð	ð 	ñ 
Œð	ð ˆC�‰FŒFˆà×Ò�˜Q™œ Ñ#Ô#Ð#à×Ò�˜a 1˜f™œ uÑ-Ô-Ð-Ø×Ò�˜a 1˜f™œ uÑ-Ô-Ð-Ð-Ð-r   c                 óJ  — t          j        t          ¦  «        }d}t          |¦  «        D ]}|                     |¦  «         Œt
          d„ ¦   «         }|                     |¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         t          |¦  «        D ]}|  	                    ||¦  «         Œ ||¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         t          |¦  «        D ]}|  	                    ||¦  «         Œd S )Niè  c                 ó>   — g }| D ]}|                      |¦  «         Œ|S r#   )Úappend)r8   Úkeysr9   s      r   r   z$TestSetObject.test_iter.<locals>.foo­   s0   € àˆDàð !ð !�Ø—’˜CÑ Ô Ð Ð ØˆKr   )
r   r   r   r   r   r   Úpy_funcr   r   ÚassertIn)r   r   Únmaxr   r   rE   s         r   Ú	test_iterzTestSetObject.test_iter¤   s  € åŒI•eÑÔˆØˆõ �t‘”ð 	ð 	ˆAØ�EŠE�!‰HŒHˆHˆHå	ð	ð 	ñ 
Œð	ð �{Š{˜1‰~Œ~ˆà×Ò�˜Q™œ¥ T¡¤Ñ+Ô+Ð+Ý�t‘”ð 	#ð 	#ˆAØ�MŠM˜!˜TÑ"Ô"Ð"Ð"àˆs�1‰vŒvˆà×Ò�˜Q™œ¥ T¡¤Ñ+Ô+Ð+Ý�t‘”ð 	#ð 	#ˆAØ�MŠM˜!˜TÑ"Ô"Ð"Ð"ð	#ð 	#r   c                 ón  — t          j        t          ¦  «        }t          j        t          ¦  «        }t          d¦  «        D ],}|                     |¦  «         |                     |¦  «         Œ-|                      ||¦  «         t          d„ ¦   «         }|                       |||¦  «        d¦  «         d S )Nr5   c                 ó   — | |k    S r#   r$   )Ús1Ús2s     r   r   z(TestSetObject.test_equality.<locals>.fooË   s   € à˜’8ˆOr   T)r   r   r   r   r   r   r   )r   rL   rM   r   r   s        r   Útest_equalityzTestSetObject.test_equalityÁ   s¬   € ÝŒY•uÑÔˆÝŒY•uÑÔˆå�r‘”ð 	ð 	ˆAØ�FŠF�1‰IŒIˆIØ�FŠF�1‰IŒIˆIˆIà×Ò˜˜RÑ Ô Ð å	ð	ð 	ñ 
Œð	ð 	×Ò˜˜˜R ™œ dÑ+Ô+Ð+Ð+Ð+r   N)Ú__name__Ú
__module__Ú__qualname__r    r&   r0   r3   r;   rA   rI   rN   r$   r   r   r
   r
      s�   € € € € € ð"*ð "*ð "*ðH$ð $ð $ð$ð $ð $ð.$ð $ð $ð00ð 0ð 0ð(.ð .ð .ð<#ð #ð #ð:,ð ,ð ,ð ,ð ,r   r
   N)Ú__doc__Únumbar   r   Únumba.typedr   r   Únumba.tests.supportr   r   r
   r$   r   r   ú<module>rV      s¥   ððð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ð@,ð @,ð @,ð @,ð @,�O Xñ @,ô @,ð @,ð @,ð @,r   