ó
    �œ‘hÂ  ã                   óú  • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKr	S SK
Jr  SSKJr   " S S\R                  5      r " S S\5      r " S	 S
\R                  5      r " S S\R                  5      r " S S\R                  5      r\R(                  R*                  \R(                  R-                  \R.                  " 5       R1                  5       S:H  SSS9 " S S\R                  5      5       5       rg)é    N)ÚIS_PYPYé   )Úutilc                   óÀ  • \ rS rSr\R
                  " SSSS5      /r\R                  R                  SSS/5      \R                  R                  S	 5       5       r\R                  R                  \S
S9S 5       rS r\R                  R!                  \R$                  S:H  SS9S 5       r\R                  R!                  \R$                  S:H  SS9S 5       rS rS rSrg)ÚTestF77Callbacké   ÚtestsÚsrcÚcallbackzfoo.fÚnameÚtÚt2c                 ó&   • U R                  U5        g ©N)Úcheck_function)Úselfr   s     ÚbC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\numpy/f2py/tests/test_callback.pyÚtest_allÚTestF77Callback.test_all   s   € ð 	×Ñ˜DÕ!ó    z,PyPy cannot modify tp_doc after PyType_Ready)Úreasonc                 ó|   • [         R                  " S5      nU R                  R                  R                  U:X  d   eg )NaË          a = t(fun,[fun_extra_args])

        Wrapper for ``t``.

        Parameters
        ----------
        fun : call-back function

        Other Parameters
        ----------------
        fun_extra_args : input tuple, optional
            Default: ()

        Returns
        -------
        a : int

        Notes
        -----
        Call-back functions::

            def fun(): return a
            Return objects:
                a : int
        )ÚtextwrapÚdedentÚmoduler   Ú__doc__)r   Úexpecteds     r   Útest_docstringÚTestF77Callback.test_docstring   s5   € ô —?’?ð $ó ˆð4 �{‰{�}‰}×$Ñ$¨Ó0Ð0Ñ0r   c                 óÂ  • [        U R                  U5      nU" S 5      nUS:X  d   eU" S SS9nUS:X  d   eU" S SS9nUS:X  d   eU" S	 S
S9nUS:X  d   eU" [        R                  [        R                  4S9nUS:X  d   eU" [        R                  [        R                  4S9nUS:X  d   eU" U R                  R
                  SS9nUS:X  d   eU" U R                  R                  5      nUS:X  d   eU" U R                  R                  R                  5      nUS:X  d   e " S S5      nU" 5       nU" U5      nUS:X  d   eU" UR                  5      nUS:X  d   eg )Nc                  ó   • g)Né   © r#   r   r   Ú<lambda>Ú0TestF77Callback.check_function.<locals>.<lambda>:   s   € �ar   r"   c                 ó   • g©Né   r#   ©Úas    r   r$   r%   <   s   € ˜r   )é   )Úfun_extra_argsr(   c                 ó   • U $ r   r#   r)   s    r   r$   r%   >   s   € ™r   r+   c                 ó   • SU -   $ r'   r#   r)   s    r   r$   r%   @   s   € ˜˜Ašr   )é   é   é´   r   é   c                   ó    • \ rS rSrS rS rSrg)Ú)TestF77Callback.check_function.<locals>.AéN   c                 ó   • g)Nr/   r#   ©r   s    r   Ú__call__Ú2TestF77Callback.check_function.<locals>.A.__call__O   ó   € Ør   c                 ó   • g)Né	   r#   r7   s    r   ÚmthÚ-TestF77Callback.check_function.<locals>.A.mthR   r:   r   r#   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r8   r=   Ú__static_attributes__r#   r   r   ÚAr4   N   s   † òõr   rD   r/   r<   )	Úgetattrr   ÚmathÚdegreesÚpiÚfuncÚfunc0Ú	_cpointerr=   )r   r   r   ÚrrD   r*   s         r   r   ÚTestF77Callback.check_function8   sQ  € Ü�D—K‘K Ó&ˆÙ‰i‹LˆØ�A‹vˆˆvÙ‰k¨%Ñ0ˆØ�A‹vˆˆvÙ‰k¨%Ñ0ˆØ�A‹vˆˆvÙ‰o¨eÑ4ˆØ�B‹wˆˆwÙŒd�l‰l¬D¯G©G¨;Ñ7ˆØ�C‹xˆˆxÙŒd�l‰l¬D¯G©G¨;Ñ7ˆØ�C‹xˆˆxáˆd�k‰k×Ñ¨uÑ5ˆØ�B‹wˆˆwÙˆd�k‰k×ÑÓ ˆØ�B‹wˆˆwÙˆd�k‰k×Ñ×)Ñ)Ó*ˆØ�B‹wˆˆw÷	ñ 	ñ ‹CˆÙˆa‹DˆØ�A‹vˆˆvÙˆa�e‰e‹HˆØ�A‹vˆ‰vr   Úwin32z)Fails with MinGW64 Gfortran (Issue #9673)c                 óV   • S nU R                   R                  nU" U5      nUS:X  d   eg )Nc                 ó   • U S:X  a  gg)NrL   r   r   r#   )Úcodes    r   r   Ú6TestF77Callback.test_string_callback.<locals>.callback^   s   € Ø�s‹{Øàr   r   )r   Ústring_callback)r   r   ÚfrL   s       r   Útest_string_callbackÚ$TestF77Callback.test_string_callback[   s,   € ò	ð �K‰K×'Ñ'ˆÙˆh‹KˆØ�A‹vˆ‰vr   c                 ó  • [         R                  " SS5      n[         R                  " SS5      n[         R                  " S/S5      nS nU R                  R                  nXU4 H  nU" XFUR
                  5      nUS:X  a  M   e   g )N)r   ÚS8)r   é   ÚcÚ c                 óˆ   • U R                   U4:w  a  gU R                  S:w  a  g[        R                  " U S:H  5      (       d  gg)Nr   rX   é   r   é   r   )ÚshapeÚdtypeÚnpÚall)ÚcuÚlencus     r   r   Ú<TestF77Callback.test_string_callback_array.<locals>.callbackp   s;   € Ø�x‰x˜E˜8Ó#ØØ�x‰x˜4ÓØÜ—6’6˜" ™)×$Ñ$ØØr   r   )ra   ÚzerosÚarrayr   Ústring_callback_arrayÚsize)r   Úcu1Úcu2Úcu3r   rT   rc   Úress           r   Útest_string_callback_arrayÚ*TestF77Callback.test_string_callback_arrayh   su   € ô �hŠh�u˜dÓ#ˆÜ�hŠh�v˜sÓ#ˆÜ�hŠh˜�t˜TÓ"ˆò	ð �K‰K×-Ñ-ˆØ˜S“/ˆBÙ�H "§'¡'Ó*ˆCØ˜!•8ˆO�8ò "r   c           
      óT  ^ ^^• / mU 4S jmUUU 4S jnS VVs/ s H+  n[        S5        H  n[        R                  " X4S9PM     M-     nnnU H  nUR                  5         M     U H  nUR	                  5         M     SR	                  T5      mT(       a  [        T5      eg s  snnf )Nc                  óz   >• [         R                  " S5        TR                  R                  S 5      n U S:X  d   eg)Ngü©ñÒMbP?c                  ó   • g©Né{   r#   r#   r   r   r$   Ú?TestF77Callback.test_threadsafety.<locals>.cb.<locals>.<lambda>‰   s   €  cr   rt   é*   )ÚtimeÚsleepr   r   )rL   r   s    €r   ÚcbÚ-TestF77Callback.test_threadsafety.<locals>.cbƒ   s3   ø€ ô �JŠJ�tÔð —‘—‘™kÓ*ˆAØ˜“8ˆO�8àr   c                 óü   >•  [        S5       H7  nTR                  R                  T5      nUS:X  d   eTR                  U 5        M9     g ! [         a'    TR                  [        R                  " 5       5         g f = f)Né2   rv   )Úranger   r   r   Ú	ExceptionÚappendÚ	tracebackÚ
format_exc)r   ÚjrL   ry   Úerrorsr   s      €€€r   ÚrunnerÚ1TestF77Callback.test_threadsafety.<locals>.runnerŽ   sg   ø€ ð6Ü˜rž�AØŸ™Ÿ™ bÓ)�AØ ›7�N˜7Ø×'Ñ'¨Ö-ò #øô ó 6Ø—‘œi×2Ò2Ó4Ö5ð6ús   ƒAA
 Á
.A;Á:A;)r   r   é   )ÚtargetÚargsz

)r}   Ú	threadingÚThreadÚstartÚjoinÚAssertionError)r   r„   ÚargÚnÚthreadsr   ry   rƒ   s   `     @@r   Útest_threadsafetyÚ!TestF77Callback.test_threadsafety~   s¥   ú€ ð ˆõ		÷	6ñ #ô
â"�¬E°"¯I qô ×Ò F°Ô9Ù,5ñ :Ù"ð 	ñ 
ó
 ˆAØ�G‰GŽIñ ó ˆAØ�F‰FŽHñ ð —‘˜VÓ$ˆÞÜ  Ó(Ð(ð ùó
s   ™2B$c                 ó   •  U R                   R                  S5         U R                   R                  S5        S U R                   l        U R                   R                  S5      nUS:X  d   eS U R                   l        U R                   R                  S5      nUS:X  d   eU R                   ? U R                   R                  S5        S
S jU R                   l        U R                   R                  S5      nUS	:X  d   eU R                   R                  S5      nUS:X  d   eg ! [         a,  n[        U5      R	                  S5      (       d   e S nAGN:S nAff = f! [         a,  n[        U5      R	                  S5      (       d   e S nAGNWS nAff = f! [         a+  n[        U5      R	                  S5      (       d   e S nANýS nAff = f)Nr]   zCallback global_f not definedz!cb: Callback global_f not definedc                 ó   • U S-   $ )Nr   r#   ©Úxs    r   r$   Ú6TestF77Callback.test_hidden_callback.<locals>.<lambda>±   ó   € ¨¨Qªr   r^   c                 ó   • U S-   $ )Nr]   r#   r•   s    r   r$   r—   µ   r˜   r   r"   c                 ó   • U S-   $ )Nr^   r#   r•   s    r   r$   r—   ¿   s   € ¨1¨qª5r   r(   )r   )r   Úhidden_callbackr~   ÚstrÚ
startswithÚhidden_callback2Úglobal_f)r   ÚmsgrL   s      r   Útest_hidden_callbackÚ$TestF77Callback.test_hidden_callback¦   sˆ  € ð	HØ�K‰K×'Ñ'¨Ô*ð	LØ�K‰K×(Ñ(¨Ô+ñ  /ˆ�‰ÔØ�K‰K×'Ñ'¨Ó*ˆØ�A‹vˆˆvá.ˆ�‰ÔØ�K‰K×'Ñ'¨Ó*ˆØ�A‹vˆˆvà�K‰KÐ ð	HØ�K‰K×'Ñ'¨Ô*ó  1ˆ�‰ÔØ�K‰K×'Ñ'¨Ó*ˆØ�A‹vˆˆvð �K‰K×(Ñ(¨Ó+ˆØ�A‹vˆ‰vøô9 ó 	HÜ�s“8×&Ñ&Ð'F×GÑGÐGÖGûð	Hûô
 ó 	LÜ�s“8×&Ñ&Ð'J×KÑKÐKÖKûð	Lûô ó 	HÜ�s“8×&Ñ&Ð'F×GÑGÐGÕGûð	HúsF   ‚D& žE Â0F Ä&
EÄ0!EÅEÅ
FÅ)!FÆFÆ
GÆ"!GÇGr#   N)r?   r@   rA   rB   r   ÚgetpathÚsourcesÚpytestÚmarkÚparametrizeÚslowr   Úxfailr   r   r   ÚskipifÚsysÚplatformrU   rn   r‘   r¡   rC   r#   r   r   r   r      s  † Ø�|Š|˜G U¨J¸Ó@ÐA€Gà‡[�[×Ñ˜V c¨4 [Ó1Ø‡[�[×Ññ"ó ó 2ð"ð ‡[�[×Ñ�wØLð ð Nñ1óNð1ò:!ðF ‡[�[×Ñ˜Ÿ™¨Ñ/ØJð ð Lñ	óLð	ð ‡[�[×Ñ˜Ÿ™¨Ñ/ØJð ð LñóLðò(&)õPr   r   c                   ó   • \ rS rSrSrS/rSrg)ÚTestF77CallbackPythonTLSéÈ   zO
Callback tests using Python thread-local storage instead of
compiler-provided
z-DF2PY_USE_PYTHON_TLSr#   N)r?   r@   rA   rB   r   ÚoptionsrC   r#   r   r   r®   r®   È   s   † ñð
 'Ð'ƒGr   r®   c                   óx   • \ rS rSr\R
                  " SSSS5      /r\R                  R                  S 5       r
Srg)	ÚTestF90CallbackéÑ   r	   r
   r   zgh17797.f90c                 óš   • S n[         R                  " / SQ[         R                  S9nU R                  R	                  X5      nUS:X  d   eg )Nc                 ó   • U S-   $ rs   r#   r•   s    r   ÚincrÚ*TestF90Callback.test_gh17797.<locals>.incrÖ   s   € Ø�s‘7ˆNr   )r   r]   r^   )r`   é�   )ra   rg   Úint64r   Úgh17797)r   r¶   ÚyrL   s       r   Útest_gh17797ÚTestF90Callback.test_gh17797Ô   s?   € ò	ô �HŠH’Y¤b§h¡hÑ/ˆØ�K‰K×Ñ Ó(ˆØ�OÓ#Ð#Ñ#r   r#   N)r?   r@   rA   rB   r   r£   r¤   r¥   r¦   r¨   r¼   rC   r#   r   r   r²   r²   Ñ   s5   † Ø�|Š|˜G U¨J¸ÓFÐG€Gà‡[�[×Ññ$ó ó$r   r²   c                   ó|   • \ rS rSrSr\R                  " SSSS5      /r\R                  R                  S 5       rSrg	)
ÚTestGH18335éÞ   zÔThe reproduction of the reported issue requires specific input that
extensions may break the issue conditions, so the reproducer is
implemented as a separate test class. Do not extend this test with
other tests!
r	   r
   r   zgh18335.f90c                 óP   • S nU R                   R                  U5      nUS:X  d   eg )Nc                 ó   • U S==   S-  ss'   g )Nr   r   r#   r•   s    r   ÚfooÚ%TestGH18335.test_gh18335.<locals>.fooè   s   € Øˆa‹D�A‰IŒDr   é|   )r   Úgh18335)r   rÃ   rL   s      r   Útest_gh18335ÚTestGH18335.test_gh18335æ   s)   € ò	ð �K‰K×Ñ Ó$ˆØ�G‹|Ð‰|r   r#   N)r?   r@   rA   rB   r   r   r£   r¤   r¥   r¦   r¨   rÇ   rC   r#   r   r   r¿   r¿   Þ   s<   † ñð
 �|Š|˜G U¨J¸ÓFÐG€Gà‡[�[×Ññó ór   r¿   c                   ór   • \ rS rSr\R
                  " SSSS5      \R
                  " SSSS5      /rSrS rS	r	g
)ÚTestGH25211éï   r	   r
   r   z	gh25211.fzgh25211.pyfÚ	callback2c                 óP   • S nU R                   R                  U5      nUS:X  d   eg )Nc                 ó
   • X -  $ r   r#   r•   s    r   ÚbarÚ%TestGH25211.test_gh25211.<locals>.barõ   s	   € Ø‘5ˆLr   én   )r   rÃ   )r   rÏ   rm   s      r   Útest_gh25211ÚTestGH25211.test_gh25211ô   s'   € ò	ð �k‰k�o‰o˜cÓ"ˆØ�c‹zÐ‰zr   r#   N)
r?   r@   rA   rB   r   r£   r¤   Úmodule_namerÒ   rC   r#   r   r   rÊ   rÊ   ï   s8   † Ø�|Š|˜G U¨J¸ÓDØ�|Š|˜G U¨J¸ÓFðH€Gà€Kõr   rÊ   ÚdarwinFz*Callback aborts cause CI failures on macOS)Ú	conditionÚrunr   c                   óL   • \ rS rSr\R
                  " SSSS5      /rS/rS rSr	g	)
ÚTestCBFortranCallstatementéü   r	   r
   r   zgh26681.f90z--lowerc                 ó  • [         R                  " [        SS9 nU R                  R                  R
                  U R                  l        U R                  R                  R                  S5        S S S 5        g ! , (       d  f       g = f)NÚhelpme)Úmatch)r¥   ÚraisesÚ
ValueErrorr   ÚutilsÚmy_abortÚ
mypy_abortÚdo_something)r   Úexcs     r   Útest_callstatement_fortranÚ5TestCBFortranCallstatement.test_callstatement_fortran  sR   € Ü�]Š]œ:¨XÒ6¸#Ø%)§[¡[×%6Ñ%6×%?Ñ%?ˆD�K‰KÔ"Ø�K‰K×Ñ×*Ñ*¨8Ô4÷ 7×6Ö6ús   šAA8Á8
Br#   N)
r?   r@   rA   rB   r   r£   r¤   r°   rå   rC   r#   r   r   rÙ   rÙ   ü   s'   † ð
 �|Š|˜G U¨J¸ÓFÐG€GØˆk€Gõ5r   rÙ   )rF   r¬   r«   r   r‰   rw   r€   r¥   Únumpyra   Únumpy.testingr   r[   r   ÚF2PyTestr   r®   r²   r¿   rÊ   r¦   r¨   r©   ÚsystemÚlowerrÙ   r#   r   r   Ú<module>rì      sÙ   ðÛ Û Û 
Û Û Û Û ã ã Ý !å ôt�d—m‘mô tôn(˜ô (ô
$�d—m‘mô 
$ô�$—-‘-ô ô"
�$—-‘-ô 
ð ‡�×ÑØ‡�×Ñ˜hŸošoÓ/×5Ñ5Ó7¸8ÑCØØFð ð Hô5 §¡ó 5óHó ñ5r   