§
    2@Äjp2  ã                   ó´  — d Z ddlZddlZddlmZmZmZm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mZmZ ej         G d„ d	e
j        ¦  «        ¦   «         Z ed
e
j        dd…         fde
j        fg¬¦  «        Z ej        eej        ¦  «          G d„ dej        ¦  «        Zej         G d„ de
j        ¦  «        ¦   «         Z ej        eed
dg¦  «         ed„ ¦   «         Zed„ ¦   «         Z ed„ ¦   «         Z!ed„ ¦   «         Z"ed„ ¦   «         Z#ed„ ¦   «         Z$ed„ ¦   «         Z%ed„ ¦   «         Z&ed„ ¦   «         Z' G d„ de¦  «        Z( G d„ dee¦  «        Z) eed¦  «        d„ ¦   «         Z* eed ¦  «        d!„ ¦   «         Z+ G d"„ d#ee¦  «        Z,d$„ Z-d%„ Z. G d&„ d'ee¦  «        Z/ej         G d(„ d)e
j        ¦  «        ¦   «         Z0 e0d*e
j1        fd+e
j1        ff¬¦  «        Z2 G d,„ d-ej        ¦  «        Z3ed.„ ¦   «         Z4ed/„ ¦   «         Z5 ej        e3e0d*d+g¦  «          ee0d0¦  «        d1„ ¦   «         Z6 ee0d ¦  «        d2„ ¦   «         Z7 G d3„ d4ee¦  «        Z8dS )5z%
Test mutable struct, aka, structref
é    N)ÚtypedÚnjitÚerrorsÚtypeof)Útypes)Ú	structref)Úoverload_methodÚoverload_attribute)ÚMemoryLeakMixinÚTestCaseÚtemp_directoryÚoverride_configc                   ó   — e Zd ZdZdS )ÚMySimplerStructTypezV
    Test associated with this type represent the lowest level uses of structref.
    N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úLC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_struct_ref.pyr   r      ó   € € € € € ðð ð 	€Dr   r   ÚvaluesÚcounter)Úfieldsc                   ó‚   — e Zd Zd„ Zed„ ¦   «         Zej        d„ ¦   «         Zed„ ¦   «         Zd„ Zed„ ¦   «         Z	d„ Z
dS )	ÚMyStructc                 óD   — t           j                             | ||¦  «        S ©N©r   ÚStructRefProxyÚ__new__)Úclsr   r   s      r   r#   zMyStruct.__new__"   s   € õ Ô'×/Ò/°°V¸WÑEÔEÐEr   c                 ó    — t          | ¦  «        S r    )Ú
get_values©Úselfs    r   r   zMyStruct.values*   s   € å˜$ÑÔÐr   c                 ó"   — t          | |¦  «        S r    )Ú
set_values)r(   Úvals     r   r   zMyStruct.values.   s   € å˜$ Ñ$Ô$Ð$r   c                 ó    — t          | ¦  «        S r    )Úget_counterr'   s    r   r   zMyStruct.counter2   s   € å˜4Ñ Ô Ð r   c                 ó&   — | j         |z  | j        z   S r    ©r   r   ©r(   Úargs     r   ÚtestmezMyStruct.testme6   ó   € ØŒ{˜SÑ  4¤<Ñ/Ð/r   c                 ó   — | j         | j        fS r    r/   r'   s    r   ÚpropzMyStruct.prop9   s   € àŒ{˜DœLÐ(Ð(r   c                 ó    — t          | ¦  «        S r    )Úcompute_fieldsr'   s    r   Ú__hash__zMyStruct.__hash__=   s   € Ý˜dÑ#Ô#Ð#r   N)r   r   r   r#   Úpropertyr   Úsetterr   r2   r5   r8   r   r   r   r   r       s²   € € € € € ðFð Fð Fð ð ð  ñ „Xð ð „]ð%ð %ñ „]ð%ð ð!ð !ñ „Xð!ð0ð 0ð 0ð ð)ð )ñ „Xð)ð$ð $ð $ð $ð $r   r   c                   ó   — e Zd ZdZdS )ÚMyStructTypezTTest associated with this type represent the higher-level uses of
    structef.
    Nr   r   r   r   r<   r<   A   r   r   r<   c                 óZ   — t          j        t          ¦  «        }t          || |¦  «         |S r    )r   ÚnewÚmy_struct_tyÚmy_struct_init)r   r   Ústs      r   Ú	my_structrB   S   s(   € å	Œ•|Ñ	$Ô	$€BÝ�2�v˜wÑ'Ô'Ð'Ø€Ir   c                 ó"   — || _         || _        d S r    r/   )r(   r   r   s      r   r@   r@   Z   s   € à€D„KØ€D„L€L€Lr   c                 ór   — t          | |¬¦  «        }|xj        |j        z  c_        |xj        |z  c_        |S )N©r   )rB   r   r   )ÚvsÚctrrA   s      r   Úctor_by_intrinsicrH   `   s;   € å	�2˜sÐ	#Ñ	#Ô	#€BØ€I„I�”Ñ€I„IØ€J„J�#Ñ€J„JØ€Ir   c                 ó$   — t          | |¬¦  «        S ©Nr/   ©r   )rF   rG   s     r   Úctor_by_classrL   h   s   € å˜2 sÐ+Ñ+Ô+Ð+r   c                 ó   — | j         S r    ©r   ©rA   s    r   r&   r&   m   s
   € àŒ9Ðr   c                 ó   — || _         d S r    rN   )rA   r+   s     r   r*   r*   r   s   € à€B„I€I€Ir   c                 ó   — | j         S r    rE   rO   s    r   r-   r-   w   s
   € àŒ:Ðr   c                 ó    — | j         | j        z   S r    r/   rO   s    r   r7   r7   |   s   € àŒ9�r”zÑ!Ð!r   c                  óR   — t          dd¦  «        } t          dd¦  «        }| | u | |u fS )Né   é   rK   )ÚcÚds     r   Útest_structref_isrX   �   s/   € å��A‰Œ€AÝ��A‰Œ€AØ�ˆF�A˜�FÐÐr   c                   ó   — e Zd Zd„ ZdS )ÚTestStructRefIsc                 óŽ   — t          ¦   «         }|                      |d         ¦  «         |                      |d         ¦  «         d S ©Nr   é   )rX   Ú
assertTrueÚassertFalse)r(   Úress     r   Útest_is_identityz TestStructRefIs.test_is_identity‰   sA   € ÝÑ!Ô!ˆØ�Š˜˜AœÑÔÐØ×Ò˜˜QœÑ Ô Ð Ð Ð r   N)r   r   r   ra   r   r   r   rZ   rZ   ˆ   s#   € € € € € ð!ð !ð !ð !ð !r   rZ   c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚTestStructRefBasicc                 óà  — t          j        dt           j        fg¦  «        }|                      |j        d         t           j        ¦  «         t          j        dt           j        fdt           j        fg¦  «        }|                      |j        d         t           j        ¦  «         |                      |j        d         t           j        ¦  «         |                      t          d¦  «        5  t          j        dt           j        fg¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          d¦  «        5  t          j        dg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚaÚbzexpecting a str for field namer]   z%expecting a Numba Type for field type)re   é{   )r   Ú	StructRefÚint64ÚassertEqualÚ
field_dictÚfloat64ÚassertRaisesRegexÚ
ValueError)r(   Úsrs     r   Útest_structref_typez&TestStructRefBasic.test_structref_type�   s»  € ÝŒ_˜s¥E¤KÐ0Ð1Ñ2Ô2ˆØ×Ò˜œ sÔ+­U¬[Ñ9Ô9Ð9ÝŒ_˜s¥E¤KÐ0°3½¼Ð2FÐGÑHÔHˆØ×Ò˜œ sÔ+­U¬[Ñ9Ô9Ð9Ø×Ò˜œ sÔ+­U¬]Ñ;Ô;Ð;à×#Ò#¥JØ$DñFô Fð 	0ð 	0åŒO˜a¥¤Ð-Ð.Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð ×#Ò#¥JØ$KñMô Mð 	*ð 	*åŒO˜Z˜LÑ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s$   Ã,"DÄDÄ!DÅ E#Å#E'Å*E'c                 óX  — |                       t          d¦  «        5  t          j        t          j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                       t          d¦  «        5  t          j        t          j        t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzcannot register)rm   rn   r   Úregisterr   rh   Údefine_boxingr   r'   s    r   Útest_invalid_usesz$TestStructRefBasic.test_invalid_usesž   s  € Ø×#Ò#¥JÐ0AÑBÔBð 	0ð 	0ÝÔ�uœÑ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0à×#Ò#¥JÐ0AÑBÔBð 	?ð 	?ÝÔ#¥E¤OµXÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s#   œAÁAÁAÁ-%BÂB#Â&B#c                 óJ  — t          j        dt           j        ¬¦  «        }d}||z   }t          ||¦  «        }|                      |t
          ¦  «         |                      |t          |¦  «        ¦  «         |||z  z   }t          |¦  «        }|                      ||¦  «         d S )Né
   ©Údtypeé   )	ÚnpÚarangeÚintprH   ÚassertNotIsInstancer   ÚassertPreciseEqualr&   r7   )r(   rF   rG   Úfirst_expectedÚ	first_gotÚsecond_expectedÚ
second_gots          r   Útest_MySimplerStructTypez+TestStructRefBasic.test_MySimplerStructType¤   s¢   € ÝŒY�r¥¤Ð)Ñ)Ô)ˆØˆà˜b™ˆÝ% b¨#Ñ.Ô.ˆ	ð 	× Ò  ­HÑ5Ô5Ð5Ø×Ò µ
¸9Ñ0EÔ0EÑFÔFÐFà(¨C°#©IÑ6ˆÝ# IÑ.Ô.ˆ
Ø×Ò °Ñ<Ô<Ð<Ð<Ð<r   c                 ó”  — t          j        dt           j        ¬¦  «        }d}t          ||¦  «        }|                      |t
          j        ¦  «         |                      t          d¦  «        5  |j	         d d d ¦  «         n# 1 swxY w Y   |                      t          d¦  «        5  |j
         d d d ¦  «         d S # 1 swxY w Y   d S )Nrv   rw   ry   r   r   )rz   r{   r|   rH   ÚassertIsInstancer   r"   rm   ÚAttributeErrorr   r   )r(   rF   rG   Úwrappers       r   Ú-test_MySimplerStructType_wrapper_has_no_attrsz@TestStructRefBasic.test_MySimplerStructType_wrapper_has_no_attrs³   s8  € ÝŒY�r¥¤Ð)Ñ)Ô)ˆØˆÝ# B¨Ñ,Ô,ˆØ×Ò˜g¥yÔ'?Ñ@Ô@Ð@Ø×#Ò#¥N°HÑ=Ô=ð 	ð 	ØŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×#Ò#¥N°IÑ>Ô>ð 	ð 	ØŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s$   Á.BÂBÂ	BÂ(B=Â=CÃCc                 óˆ  — t          j        dt           j        ¬¦  «        }d}|                     ¦   «         }t	          ||¦  «        }|                      |t          ¦  «         |                      ||j        ¦  «         ||z   }t          |¦  «        }|                      ||¦  «         |  
                    |j        |¦  «         d S ©Nrv   rw   é   )rz   r{   rl   ÚcopyrL   r…   r   r~   r   r7   rj   r   )r(   rF   rG   Úfirst_expected_arrr€   r�   r‚   s          r   Útest_MyStructTypez$TestStructRefBasic.test_MyStructType½   s¶   € ÝŒY�r¥¤Ð,Ñ,Ô,ˆØˆàŸWšW™YœYÐÝ! " cÑ*Ô*ˆ	Ø×Ò˜i­Ñ2Ô2Ð2Ø×ÒÐ 2°IÔ4DÑEÔEÐEà,¨sÑ2ˆÝ# IÑ.Ô.ˆ
Ø×Ò °Ñ<Ô<Ð<Ø×Ò˜Ô*¨CÑ0Ô0Ð0Ð0Ð0r   c                 ó   — t           d„ ¦   «         } |dddd¦  «        \  }}|                      |j        d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         d S )Nc                 óB   — t          | |¦  «        t          ||¦  «        fS r    rK   )ÚxÚyÚmÚns       r   Ú
mixed_typezDTestStructRefBasic.test_MyStructType_mixed_types.<locals>.mixed_typeÍ   s   € å˜A˜q‘>”>¥8¨A¨q¡>¤>Ð1Ð1r   r]   çffffff@y        333333@)rU   )r   rj   r   r   )r(   r•   re   rf   s       r   Útest_MyStructType_mixed_typesz0TestStructRefBasic.test_MyStructType_mixed_typesË   sœ   € å	ð	2ð 	2ñ 
Œð	2ð ˆz˜!˜S $¨Ñ-Ô-‰ˆˆ1Ø×Ò˜œ 1Ñ%Ô%Ð%Ø×Ò˜œ CÑ(Ô(Ð(Ø×Ò˜œ 4Ñ(Ô(Ð(Ø×Ò˜œ DÑ)Ô)Ð)Ð)Ð)r   c                 óV  — t          j        ¦   «         }t          dd¦  «        |d<   |                      |d         j        d¦  «         |                      |d         j        d¦  «         t          dd¦  «        |d<   |                      |d         j        d¦  «         |                      |d         j        d¦  «         |d         xj        dz  c_        |                      |d         j        d¦  «         |                      |d         j        d¦  «         t          dd	¦  «        |d
<   d S )Nr]   r–   re   é   gffffff
@rv   é   rU   gffffff@rf   )r   ÚDictr   rj   r   r   ©r(   Útds     r   Útest_MyStructType_in_dictz,TestStructRefBasic.test_MyStructType_in_dict×   s  € ÝŒZ‰\Œ\ˆÝ˜1˜cÑ"Ô"ˆˆ3‰Ø×Ò˜˜Cœœ¨Ñ+Ô+Ð+Ø×Ò˜˜Cœœ¨#Ñ.Ô.Ð.å˜1˜cÑ"Ô"ˆˆ3‰Ø×Ò˜˜Cœœ¨Ñ+Ô+Ð+Ø×Ò˜˜Cœœ¨#Ñ.Ô.Ð.à
ˆ3ŒˆŒ˜"ÑˆŒØ×Ò˜˜Cœœ¨Ñ,Ô,Ð,Ø×Ò˜˜Cœœ¨#Ñ.Ô.Ð.å˜1˜cÑ"Ô"ˆˆ3‰ˆˆr   c                 ó–  — |                       ¦   «          t          j        ¦   «         }t          dd¦  «        |d<   |                      |d         j        d¦  «         |                      |d         j        d¦  «         |                      t          j	        d¦  «        5  t          dd¦  «        |d<   d d d ¦  «         d S # 1 swxY w Y   d S )Nr]   r–   re   zCannot cast numba.MyStructTyperf   )
Údisable_leak_checkr   r›   r   rj   r   r   rm   r   ÚTypingErrorrœ   s     r   Ú*test_MyStructType_in_dict_mixed_type_errorz=TestStructRefBasic.test_MyStructType_in_dict_mixed_type_errorç   s  € Ø×ÒÑ!Ô!Ð!åŒZ‰\Œ\ˆÝ˜1˜cÑ"Ô"ˆˆ3‰Ø×Ò˜˜Cœœ¨Ñ+Ô+Ð+Ø×Ò˜˜Cœœ¨#Ñ.Ô.Ð.ð ×#Ò#¥FÔ$6Ø$EñGô Gð 	'ð 	'õ ˜s AÑ&Ô&ˆBˆs‰Gð		'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's   ÂB>Â>CÃCc                 óŠ   — t          dd¦  «        }t          |¦  «         |                      t          |¦  «        d¦  «         d S )Nr]   r™   rT   )r   r   rj   Úhash)r(   rA   s     r   Ú*test_MyStructType_hash_no_typeof_recursionz=TestStructRefBasic.test_MyStructType_hash_no_typeof_recursionö   s>   € õ �a˜‰^Œ^ˆÝˆr‰
Œ
ˆ
à×Ò�˜b™œ 1Ñ%Ô%Ð%Ð%Ð%r   N)r   r   r   rp   rt   rƒ   rˆ   rŽ   r—   rž   r¢   r¥   r   r   r   rc   rc   �   s›   € € € € € ð*ð *ð *ð?ð ?ð ?ð=ð =ð =ðð ð ð1ð 1ð 1ð
*ð 
*ð 
*ð#ð #ð #ð 'ð 'ð 'ð&ð &ð &ð &ð &r   rc   r2   c                 ó   — d„ }|S )Nc                 ó&   — | j         |z  | j        z   S r    r/   r0   s     r   Úimplz%_ol_mystructtype_testme.<locals>.impl  r3   r   r   )r(   r1   r¨   s      r   Ú_ol_mystructtype_testmer©   ÿ   s   € ð0ð 0ð 0à€Kr   r5   c                 ó   — d„ }|S )Nc                 ó   — | j         | j        fS r    r/   r'   s    r   Úgetz"_ol_mystructtype_prop.<locals>.get  s   € ØŒ{˜DœLÐ(Ð(r   r   ©r(   r¬   s     r   Ú_ol_mystructtype_propr®     s   € ð)ð )ð )à€Jr   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestStructRefExtendingc                 ó–   — t           d„ ¦   «         }d} ||¦  «        }|                     |¦  «        }|                      ||¦  «         d S )Nc                 ó�   — t          j        dt           j        ¬¦  «        }d}t          ||¦  «        }|                     | ¦  «        S rŠ   )rz   r{   rl   r   r2   )r‘   rF   rG   Úobjs       r   Úcheckz:TestStructRefExtending.test_overload_method.<locals>.check  s<   € å”˜2¥R¤ZÐ0Ñ0Ô0ˆBØˆCÝ˜2˜sÑ#Ô#ˆCØ—:’:˜a‘=”=Ð r   rT   ©r   Úpy_funcr~   ©r(   r´   r‘   ÚgotÚexpects        r   Útest_overload_methodz+TestStructRefExtending.test_overload_method  s\   € Ý	ð	!ð 	!ñ 
Œð	!ð ˆØˆe�A‰hŒhˆØ—’˜qÑ!Ô!ˆØ×Ò  VÑ,Ô,Ð,Ð,Ð,r   c                 óŽ   — t           d„ ¦   «         } |¦   «         }|                     ¦   «         }|                      ||¦  «         d S )Nc                  ót   — t          j        dt           j        ¬¦  «        } d}t          | |¦  «        }|j        S rŠ   )rz   r{   rl   r   r5   )rF   rG   r³   s      r   r´   z=TestStructRefExtending.test_overload_attribute.<locals>.check  s3   € å”˜2¥R¤ZÐ0Ñ0Ô0ˆBØˆCÝ˜2˜sÑ#Ô#ˆCØ”8ˆOr   rµ   ©r(   r´   r¸   r¹   s       r   Útest_overload_attributez.TestStructRefExtending.test_overload_attribute  sQ   € Ý	ð	ð 	ñ 
Œð	ð ˆe‰gŒgˆØ—’‘”ˆØ×Ò  VÑ,Ô,Ð,Ð,Ð,r   N)r   r   r   rº   r¾   r   r   r   r°   r°     s2   € € € € € ð-ð -ð -ð
-ð 
-ð 
-ð 
-ð 
-r   r°   c                 ó(   — t          | |¬¦  «        }|S rJ   rK   )r‘   r’   Ústructs      r   Úcaching_test_makerÁ   (  s   € Ý˜Q¨Ð*Ñ*Ô*€FØ€Mr   c                 ó,   — |                       |¦  «        S r    )r2   )rÀ   Úzs     r   Úcaching_test_userÄ   -  s   € Ø�=Š=˜ÑÔÐr   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestStructRefCachingc                 óü   — t          t          j        ¦  «        | _        t	          d| j        ¦  «        | _        | j                             ¦   «          t          j        d¦  «         t          j	        dd¬¦  «         d S )NÚ	CACHE_DIRÚerrorÚignoreÚ	typeguard)ÚactionÚmodule)
r   rÆ   r   Ú
_cache_dirr   Ú_cache_overrideÚ	__enter__ÚwarningsÚsimplefilterÚfilterwarningsr'   s    r   ÚsetUpzTestStructRefCaching.setUp2  sk   € Ý(Õ)=Ô)FÑGÔGˆŒÝ.¨{¸D¼OÑLÔLˆÔØÔ×&Ò&Ñ(Ô(Ð(ÝÔ˜gÑ&Ô&Ð&ÝÔ x¸ÐDÑDÔDÐDÐDÐDr   c                 ód   — | j                              d d d ¦  «         t          j        ¦   «          d S r    )rÏ   Ú__exit__rÑ   Úresetwarningsr'   s    r   ÚtearDownzTestStructRefCaching.tearDown9  s2   € ØÔ×%Ò% d¨D°$Ñ7Ô7Ð7ÝÔÑ Ô Ð Ð Ð r   c                 ó^   ‡ ‡‡— ˆ fd„Šˆ fd„Šˆˆˆ fd„} |d¬¦  «          |d¬¦  «         d S )Nc                 ó¨   •— ‰                      t          | j        ¦  «        d¦  «         ‰                      t          | j        ¦  «        d¦  «         d S )Nr]   r   ©rj   ÚlenÚ
cache_hitsÚcache_misses©Ústatsr(   s    €r   Úassert_cachedzBTestStructRefCaching.test_structref_caching.<locals>.assert_cached>  óK   ø€ Ø×Ò�S Ô!1Ñ2Ô2°AÑ6Ô6Ð6Ø×Ò�S Ô!3Ñ4Ô4°aÑ8Ô8Ð8Ð8Ð8r   c                 ó¨   •— ‰                      t          | j        ¦  «        d¦  «         ‰                      t          | j        ¦  «        d¦  «         d S r\   rÛ   rß   s    €r   Úassert_not_cachedzFTestStructRefCaching.test_structref_caching.<locals>.assert_not_cachedB  râ   r   c                 óº  •—  t          d¬¦  «        t          ¦  «        } t          d¬¦  «        t          ¦  «        }t          j                             d¦  «        }d}d} |||¦  «        } |||¦  «        }||z  |z   }‰                     ||¦  «         | r" ‰	|j        ¦  «          ‰	|j        ¦  «         d S  ‰
|j        ¦  «          ‰
|j        ¦  «         d S )NT)ÚcacherT   é   )r   rÁ   rÄ   rz   Úrandomr~   rà   )ÚcachedÚ
check_makeÚ	check_userF   rG   ÚfactorrA   r¸   r¹   rá   rä   r(   s            €€€r   r´   z:TestStructRefCaching.test_structref_caching.<locals>.checkF  sþ   ø€ Ø)� DÐ)Ñ)Ô)Õ*;Ñ<Ô<ˆJØ(� 4Ð(Ñ(Ô(Õ)9Ñ:Ô:ˆIÝ”×!Ò! !Ñ$Ô$ˆBØˆCØˆFØ�˜B Ñ$Ô$ˆBØ�)˜B Ñ'Ô'ˆCØ˜&‘[ 3Ñ&ˆFØ×#Ò# C¨Ñ0Ô0Ð0àð 3Ø�˜jÔ.Ñ/Ô/Ð/Ø�˜iœoÑ.Ô.Ð.Ð.Ð.à!Ð! *Ô"2Ñ3Ô3Ð3Ø!Ð! )¤/Ñ2Ô2Ð2Ð2Ð2r   F)ré   Tr   )r(   r´   rá   rä   s   ` @@r   Útest_structref_cachingz+TestStructRefCaching.test_structref_caching=  sˆ   øøø€ ð	9ð 	9ð 	9ð 	9ð 	9ð	9ð 	9ð 	9ð 	9ð 	9ð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð$ 	ˆ�UÐÑÔÐØˆ�TÐÑÔÐÐÐr   N)r   r   r   rÔ   rØ   rí   r   r   r   rÆ   rÆ   1  sD   € € € € € ðEð Eð Eð!ð !ð !ðð ð ð ð r   rÆ   c                   ó   — e Zd Zd„ ZdS )ÚPolygonStructTypec                 óº   — dt          | ¦  «        › �| _        t          dt          j        t          j        ¦  «        fdt          j        | ¦  «        fg¦  «        }|S )Nznumba.PolygonStructType#ÚvalueÚparent)ÚidÚnameÚtupler   ÚOptionalri   )r(   r   s     r   Úpreprocess_fieldsz#PolygonStructType.preprocess_fields_  sX   € à9­r°$©x¬xÐ9Ð9ˆŒ	ÝØ•e”n¥U¤[Ñ1Ô1Ð2Ø•u”~ dÑ+Ô+Ð,ð
ñ ô ˆð
 ˆr   N)r   r   r   r÷   r   r   r   rï   rï   \  s#   € € € € € ðð ð ð ð r   rï   rñ   rò   c                   ó@   — e Zd Zd„ Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚPolygonStructc                 óD   — t           j                             | ||¦  «        S r    r!   )r$   rñ   rò   s      r   r#   zPolygonStruct.__new__q  s   € ÝÔ'×/Ò/°°U¸FÑCÔCÐCr   c                 ó    — t          | ¦  «        S r    )ÚPolygonStruct_get_valuer'   s    r   rñ   zPolygonStruct.valuet  s   € å& tÑ,Ô,Ð,r   c                 ó    — t          | ¦  «        S r    )ÚPolygonStruct_get_parentr'   s    r   rò   zPolygonStruct.parentx  s   € å'¨Ñ-Ô-Ð-r   N)r   r   r   r#   r9   rñ   rò   r   r   r   rù   rù   p  s\   € € € € € ðDð Dð Dð ð-ð -ñ „Xð-ð ð.ð .ñ „Xð.ð .ð .r   rù   c                 ó   — | j         S r    ©rñ   r'   s    r   rü   rü   }  s
   € àŒ:Ðr   c                 ó   — | j         S r    )rò   r'   s    r   rþ   rþ   ‚  s
   € àŒ;Ðr   Úflipc                 ó   — d„ }|S )Nc                 ó2   — | j         �| j          | _         d S d S r    r   r'   s    r   r¨   z%_ol_polygon_struct_flip.<locals>.impl�  s!   € ØŒ:Ð!Øœ*˜ˆDŒJˆJˆJð "Ð!r   r   )r(   r¨   s     r   Ú_ol_polygon_struct_flipr  Ž  s   € ð%ð %ð %ð €Kr   c                 ó   — d„ }|S )Nc                 ó   — | j         | j        fS r    )rñ   rò   r'   s    r   r¬   z$_ol_polygon_struct_prop.<locals>.get˜  s   € ØŒz˜4œ;Ð&Ð&r   r   r­   s     r   Ú_ol_polygon_struct_propr  –  s   € ð'ð 'ð 'à€Jr   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestStructRefForwardTypingc                 óp   — t           d„ ¦   «         }d} ||¦  «        }|}|                      ||¦  «         d S )Nc                 ó„   — t          d d ¦  «        }t          d d ¦  «        }| |_        ||_        | |_        |j        j        S r    )rù   rñ   rò   ©r‘   ÚpolyÚp_polys      r   r´   zCTestStructRefForwardTyping.test_same_type_assignment.<locals>.checkŸ  s@   € å   tÑ,Ô,ˆDÝ" 4¨Ñ.Ô.ˆFØˆDŒJØ ˆDŒKØˆFŒLØ”;Ô$Ð$r   r‹   ©r   r~   r·   s        r   Útest_same_type_assignmentz4TestStructRefForwardTyping.test_same_type_assignmentž  sP   € Ý	ð	%ð 	%ñ 
Œð	%ð ˆØˆe�A‰hŒhˆØˆØ×Ò  VÑ,Ô,Ð,Ð,Ð,r   c                 ór   — t           d„ ¦   «         }d} ||¦  «        }| }|                      ||¦  «         d S )Nc                 óÞ   — t          d d ¦  «        }t          d d ¦  «        }| |_        ||_        | |_        |                     ¦   «          |j                             ¦   «          |j        j        S r    )rù   rñ   rò   r  r  s      r   r´   z>TestStructRefForwardTyping.test_overload_method.<locals>.check®  sa   € å   tÑ,Ô,ˆDÝ" 4¨Ñ.Ô.ˆFØˆDŒJØ ˆDŒKØˆFŒLØ�IŠI‰KŒKˆKØŒK×ÒÑÔÐØ”;Ô$Ð$r   rT   r  r·   s        r   rº   z/TestStructRefForwardTyping.test_overload_method­  sR   € Ý	ð	%ð 	%ñ 
Œð	%ð ˆØˆe�A‰hŒhˆØ�ˆØ×Ò  VÑ,Ô,Ð,Ð,Ð,r   c                 ój   — t           d„ ¦   «         } |¦   «         }d}|                      ||¦  «         d S )Nc                  ó<   — t          dd ¦  «        } | j        d         S )Né   r   )rù   r5   )r³   s    r   r´   zATestStructRefForwardTyping.test_overload_attribute.<locals>.check¿  s   € å  4Ñ(Ô(ˆCØ”8˜A”;Ðr   r  r  r½   s       r   r¾   z2TestStructRefForwardTyping.test_overload_attribute¾  sI   € Ý	ð	ð 	ñ 
Œð	ð ˆe‰gŒgˆØˆØ×Ò  VÑ,Ô,Ð,Ð,Ð,r   N)r   r   r   r  rº   r¾   r   r   r   r
  r
  �  sA   € € € € € ð-ð -ð -ð-ð -ð -ð"-ð -ð -ð -ð -r   r
  )9r   rÑ   Únumpyrz   Únumbar   r   r   r   Ú
numba.corer   Únumba.experimentalr   Únumba.extendingr	   r
   Únumba.tests.supportr   r   r   r   rr   rh   r   r|   r?   rs   r"   r   r<   Údefine_proxyrB   r@   rH   rL   r&   r*   r-   r7   rX   rZ   rc   r©   r®   r°   rÁ   rÄ   rÆ   rï   ÚAnyÚpolygon_struct_typerù   rü   rþ   r  r  r
  r   r   r   ú<module>r      s}  ððð ð €€€à Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?ðð ð ð ð ð ð ð ð ð ð ð ð
 Ôð	ð 	ð 	ð 	ð 	˜%œ/ñ 	ô 	ñ Ôð	ð #Ð"Ø�u”z ! ! !”}Ð%¨	°5´:Ð'>Ð?ðñ ô €ð €	Ô Ð+¨YÔ-EÑ FÔ FÐ Fð$ð $ð $ð $ð $ˆyÔ'ñ $ô $ð $ðB Ôð	ð 	ð 	ð 	ð 	�5”?ñ 	ô 	ñ Ôð	ð €	Ô ØØØˆyÐñô ð ð ðð ñ „ðð ðð ñ „ðð
 ðð ñ „ðð ð,ð ,ñ „ð,ð ðð ñ „ðð ðð ñ „ðð ðð ñ „ðð ð"ð "ñ „ð"ð ðð ñ „ðð!ð !ð !ð !ð !�hñ !ô !ð !ðm&ð m&ð m&ð m&ð m&˜¨(ñ m&ô m&ð m&ð` €�˜xÑ(Ô(ðð ñ )Ô(ðð Ð�L &Ñ)Ô)ðð ñ *Ô)ðð-ð -ð -ð -ð -˜_¨hñ -ô -ð -ð6ð ð ð
ð ð ð(ð (ð (ð (ð (˜?¨Hñ (ô (ð (ðV Ôð
ð 
ð 
ð 
ð 
˜œñ 
ô 
ñ Ôð
ð (Ð'ØˆeŒiÐØˆuŒyÐð0ð ñ ô Ð ð
.ð 
.ð 
.ð 
.ð 
.�IÔ,ñ 
.ô 
.ð 
.ð ðð ñ „ðð ðð ñ „ðð €	Ô ØØØˆhÐñô ð ð €Ð" FÑ+Ô+ðð ñ ,Ô+ðð ÐÐ% vÑ.Ô.ðð ñ /Ô.ðð)-ð )-ð )-ð )-ð )- °(ñ )-ô )-ð )-ð )-ð )-r   