Ë
    öU.jÏ  ã                   ó   — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZ	d dl
mZ ddlmZ  G d„ dej                  «      Z G d„ de«      Z G d	„ d
ej                  «      Z G d„ dej                  «      Z G d„ dej                  «      Zej(                  j*                  ej(                  j-                   ej.                  «       j1                  «       dk(  dd¬«       G d„ dej                  «      «       «       Zy)é    N)ÚIS_PYPYé   )Úutilc                   óä  — e Zd Z ej                  dddd«      gZej                  j                  ddj                  d«      «      ej                  j                  d„ «       «       Zej                  j                  ed	¬
«      d„ «       Zd„ Zej                  j!                  ej$                  dk(  d¬
«      d„ «       Zej                  j!                  ej$                  dk(  d¬
«      d„ «       Zd„ Zd„ Zy)ÚTestF77CallbackÚtestsÚsrcÚcallbackzfoo.fÚnamezt,t2Ú,c                 ó&   — | j                  |«       y ©N)Úcheck_function)Úselfr   s     ú`C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\numpy/f2py/tests/test_callback.pyÚtest_allzTestF77Callback.test_all   s   € ð 	×Ñ˜DÕ!ó    z,PyPy cannot modify tp_doc after PyType_Ready)Úreasonc                 óx   — t        j                  d«      }| j                  j                  j                  |k(  sJ ‚y )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ÚmoduleÚtÚ__doc__)r   Úexpecteds     r   Útest_docstringzTestF77Callback.test_docstring   s5   € ô —?‘?ð $ó ˆð4 �{‰{�}‰}×$Ñ$¨Ò0Ð0Ñ0r   c                 ó¶  — t        | j                  |«      } |d„ «      }|dk(  sJ ‚ |d„ d¬«      }|dk(  sJ ‚ |d„ d¬«      }|dk(  sJ ‚ |d	„ d
¬«      }|dk(  sJ ‚ |d„ t        j                  f¬«      }|dk(  sJ ‚ |t        j                  t        j                  f¬«      }|dk(  sJ ‚ || j                  j
                  d¬«      }|dk(  sJ ‚ || j                  j                  «      }|dk(  sJ ‚ || j                  j                  j                  «      }|dk(  sJ ‚ G d„ d«      } |«       } ||«      }|dk(  sJ ‚ ||j                  «      }|dk(  sJ ‚y )Nc                   ó   — y)Né   © r    r   r   Ú<lambda>z0TestF77Callback.check_function.<locals>.<lambda>8   s   € �ar   r   c                  ó   — y©Né   r    ©Úas    r   r!   z0TestF77Callback.check_function.<locals>.<lambda>:   s   € ˜r   )é   )Úfun_extra_argsr$   c                 ó   — | S r   r    r%   s    r   r!   z0TestF77Callback.check_function.<locals>.<lambda><   s   € ™r   r'   c                 ó   — d| z   S r#   r    r%   s    r   r!   z0TestF77Callback.check_function.<locals>.<lambda>>   s   € ˜˜Ašr   )é   é   c                 ó,   — t        j                  | «      S r   )ÚmathÚdegreesr%   s    r   r!   z0TestF77Callback.check_function.<locals>.<lambda>@   s   € œŸ™ Qœr   é´   é   é   c                   ó   — e Zd Zd„ Zd„ Zy)ú)TestF77Callback.check_function.<locals>.Ac                  ó   — y)Nr+   r    ©r   s    r   Ú__call__z2TestF77Callback.check_function.<locals>.A.__call__M   ó   € Ør   c                  ó   — y)Né	   r    r6   s    r   Úmthz-TestF77Callback.check_function.<locals>.A.mthP   r8   r   N)Ú__name__Ú
__module__Ú__qualname__r7   r;   r    r   r   ÚAr4   L   s   „ òór   r?   r+   r:   )	Úgetattrr   r.   Úpir/   ÚfuncÚfunc0Ú	_cpointerr;   )r   r   r   Úrr?   r&   s         r   r   zTestF77Callback.check_function6   sN  € Ü�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ˆØ�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                 óT   — d„ }| j                   j                  } ||«      }|dk(  sJ ‚y )Nc                 ó   — | dk(  ryy)NrE   r   r   r    )Úcodes    r   r
   z6TestF77Callback.test_string_callback.<locals>.callback\   s   € Ø�sŠ{Øàr   r   )r   Ústring_callback)r   r
   ÚfrE   s       r   Útest_string_callbackz$TestF77Callback.test_string_callbackY   s,   € ò	ð �K‰K×'Ñ'ˆÙˆh‹KˆØ�AŠvˆ‰vr   c                 ó  — t        j                  dd«      }t        j                  dd«      }t        j                  dgd«      }d„ }| j                  j                  }|||fD ]  } ||||j
                  «      }|dk(  rŒJ ‚ y )N)r   ÚS8)r   é   ÚcÚ c                 óx   — | j                   |fk7  ry| j                  dk7  ryt        j                  | dk(  «      syy)Nr   rN   é   r   é   r   )ÚshapeÚdtypeÚnpÚall)ÚcuÚlencus     r   r
   z<TestF77Callback.test_string_callback_array.<locals>.callbackn   s8   € Ø�x‰x˜E˜8Ò#ØØ�x‰x˜4ÒØÜ—6‘6˜" ™)Ô$ØØr   r   )rW   ÚzerosÚarrayr   Ústring_callback_arrayÚsize)r   Úcu1Úcu2Úcu3r
   rK   rY   Úress           r   Útest_string_callback_arrayz*TestF77Callback.test_string_callback_arrayf   sy   € ô �h‰h�u˜dÓ#ˆÜ�h‰h�v˜sÓ#ˆÜ�h‰h˜�t˜TÓ"ˆò	ð �K‰K×-Ñ-ˆØ˜˜S“/ˆBÙ�H˜b "§'¡'Ó*ˆCØ˜!“8ˆO�8ñ "r   c           	      ó8  ‡ ‡‡— g Šˆ fd„Šˆˆˆ fd„}dD ��cg c]*  }t        d«      D ]  }t        j                  ||f¬«      ‘Œ Œ, }}}|D ]  }|j                  «        Œ |D ]  }|j	                  «        Œ dj	                  ‰«      Š‰rt        ‰«      ‚y c c}}w )Nc                  óv   •— t        j                  d«       ‰j                  j                  d„ «      } | dk(  sJ ‚y)Ngü©ñÒMbP?c                   ó   — y©Né{   r    r    r   r   r!   z?TestF77Callback.test_threadsafety.<locals>.cb.<locals>.<lambda>‡   s   €  cr   rh   é*   )ÚtimeÚsleepr   r   )rE   r   s    €r   Úcbz-TestF77Callback.test_threadsafety.<locals>.cb�   s3   ø€ ô �J‰J�tÔð —‘—‘™kÓ*ˆAØ˜’8ˆO�8àr   c                 óò   •— 	 t        d«      D ]5  }‰j                  j                  ‰«      }|dk(  sJ ‚‰j                  | «       Œ7 y # t        $ r& ‰j                  t        j                  «       «       Y y w xY w)Né2   ri   )Úranger   r   r   Ú	ExceptionÚappendÚ	tracebackÚ
format_exc)r   ÚjrE   rl   Úerrorsr   s      €€€r   Úrunnerz1TestF77Callback.test_threadsafety.<locals>.runnerŒ   sg   ø€ ð6Ü˜rž�AØŸ™Ÿ™ bÓ)�AØ š7�N˜7Ø×'Ñ'¨Õ-ñ #øô ò 6Ø—‘œi×2Ñ2Ó4Ö5ð6ús   ƒAA Á,A6Á5A6)r   Út2é   )ÚtargetÚargsz

)ro   Ú	threadingÚThreadÚstartÚjoinÚAssertionError)r   rv   ÚargÚnÚthreadsr   rl   ru   s   `     @@r   Útest_threadsafetyz!TestF77Callback.test_threadsafety|   s§   ú€ ð ˆô		ö	6ñ #ô
á"�¬E°"®I qô ×Ñ F°#°Ö9Ø,5ð :Ø"ð 	ñ 
ó
 ˆAØ�G‰G�Ið ó ˆAØ�F‰F�Hð ð —‘˜VÓ$ˆÙÜ  Ó(Ð(ð ùó
s   —/Bc                 ór  — 	 | j                   j                  d«       	 | j                   j                  d«       d„ | j                   _        | j                   j                  d«      }|dk(  sJ ‚d„ | j                   _        | j                   j                  d«      }|dk(  sJ ‚| j                   `	 | j                   j                  d«       d
d„| j                   _        | j                   j                  d«      }|d	k(  sJ ‚| j                   j                  d«      }|dk(  sJ ‚y # t        $ r'}t        |«      j	                  d«      sJ ‚Y d }~�Œ/d }~ww xY w# t        $ r'}t        |«      j	                  d«      sJ ‚Y d }~�ŒFd }~ww xY w# t        $ r&}t        |«      j	                  d«      sJ ‚Y d }~Œèd }~ww xY w)NrS   zCallback global_f not definedz!cb: Callback global_f not definedc                 ó   — | dz   S )Nr   r    ©Úxs    r   r!   z6TestF77Callback.test_hidden_callback.<locals>.<lambda>¯   ó   € ¨¨Qªr   rT   c                 ó   — | dz   S )NrS   r    r†   s    r   r!   z6TestF77Callback.test_hidden_callback.<locals>.<lambda>³   rˆ   r   r   c                 ó   — | dz   S )NrT   r    r†   s    r   r!   z6TestF77Callback.test_hidden_callback.<locals>.<lambda>½   s   € ¨1¨qª5r   r$   )r   )r   Úhidden_callbackrp   ÚstrÚ
startswithÚhidden_callback2Úglobal_f)r   ÚmsgrE   s      r   Útest_hidden_callbackz$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ûð	Hûô
 ò 	LÜ�s“8×&Ñ&Ð'JÔKÐKÖKûð	Lûô ò 	HÜ�s“8×&Ñ&Ð'FÔGÐGÕGûð	HúsF   ‚D! žE Â.F Ä!	EÄ*EÅEÅ	FÅE?Å?FÆ	F6ÆF1Æ1F6N)r<   r=   r>   r   ÚgetpathÚsourcesÚpytestÚmarkÚparametrizeÚsplitÚslowr   Úxfailr   r   r   ÚskipifÚsysÚplatformrL   rc   rƒ   r‘   r    r   r   r   r      s	  „ Øˆt�|‰|˜G U¨J¸Ó@ÐA€Gà‡[�[×Ñ˜V V§\¡\°#Ó%6Ó7Ø‡[�[×Ññ"ó ó 8ð"ð ‡[�[×Ñ�wØLð ó Nñ1óNð1ò:!ðF ‡[�[×Ñ˜Ÿ™¨Ñ/ØJð ó Lñ	óLð	ð ‡[�[×Ñ˜Ÿ™¨Ñ/ØJð ó LñóLðò(&)óPr   r   c                   ó   — e Zd ZdZdgZy)ÚTestF77CallbackPythonTLSz[
    Callback tests using Python thread-local storage instead of
    compiler-provided
    z-DF2PY_USE_PYTHON_TLSN)r<   r=   r>   r   Úoptionsr    r   r   rž   rž   Æ   s   „ ñð
 'Ð'�Gr   rž   c                   óp   — e Zd Z ej                  dddd«      gZej                  j                  d„ «       Z	y)ÚTestF90Callbackr   r	   r
   zgh17797.f90c                 óž   — d„ }t        j                  g d¢t         j                  ¬«      }| j                  j	                  ||«      }|dk(  sJ ‚y )Nc                 ó   — | dz   S rg   r    r†   s    r   Úincrz*TestF90Callback.test_gh17797.<locals>.incrÔ   s   € Ø�s‘7ˆNr   )r   rS   rT   )rV   é�   )rW   r\   Úint64r   Úgh17797)r   r¤   ÚyrE   s       r   Útest_gh17797zTestF90Callback.test_gh17797Ò   sA   € ò	ô �H‰H’Y¤b§h¡hÔ/ˆØ�K‰K×Ñ  aÓ(ˆØ�OÒ#Ð#Ñ#r   N)
r<   r=   r>   r   r’   r“   r”   r•   r˜   r©   r    r   r   r¡   r¡   Ï   s7   „ Øˆt�|‰|˜G U¨J¸ÓFÐG€Gà‡[�[×Ññ$ó ñ$r   r¡   c                   ót   — e Zd ZdZ ej
                  dddd«      gZej                  j                  d„ «       Z
y)ÚTestGH18335zä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                 óN   — d„ }| j                   j                  |«      }|dk(  sJ ‚y )Nc                 ó   — | dxx   dz  cc<   y )Nr   r   r    r†   s    r   Úfooz%TestGH18335.test_gh18335.<locals>.fooæ   s   € Øˆa‹D�A‰IŒDr   é|   )r   Úgh18335)r   r®   rE   s      r   Útest_gh18335zTestGH18335.test_gh18335ä   s)   € ò	ð �K‰K×Ñ Ó$ˆØ�GŠ|Ð‰|r   N)r<   r=   r>   r   r   r’   r“   r”   r•   r˜   r±   r    r   r   r«   r«   Ü   s>   „ ñð
 ˆt�|‰|˜G U¨J¸ÓFÐG€Gà‡[�[×Ññó ñr   r«   c                   ój   — e Zd Z ej                  dddd«       ej                  dddd«      gZdZd„ Zy)	ÚTestGH25211r   r	   r
   z	gh25211.fzgh25211.pyfÚ	callback2c                 óN   — d„ }| j                   j                  |«      }|dk(  sJ ‚y )Nc                 ó   — | | z  S r   r    r†   s    r   Úbarz%TestGH25211.test_gh25211.<locals>.baró   s   € Ø�Q‘3ˆJr   én   )r   r®   )r   r·   rb   s      r   Útest_gh25211zTestGH25211.test_gh25211ò   s'   € ò	ð �k‰k�o‰o˜cÓ"ˆØ�cŠzÐ‰zr   N)r<   r=   r>   r   r’   r“   Úmodule_namer¹   r    r   r   r³   r³   í   s<   „ Øˆt�|‰|˜G U¨J¸ÓDØˆt�|‰|˜G U¨J¸ÓFðH€Gà€Kór   r³   ÚdarwinFz*Callback aborts cause CI failures on macOS)Ú	conditionÚrunr   c                   óD   — e Zd Z ej                  dddd«      gZdgZd„ Zy)ÚTestCBFortranCallstatementr   r	   r
   zgh26681.f90z--lowerc                 ó  — t        j                  t        d¬«      5 }| j                  j                  j
                  | j                  _        | j                  j                  j                  d«       d d d «       y # 1 sw Y   y xY w)NÚhelpme)Úmatch)r”   ÚraisesÚ
ValueErrorr   ÚutilsÚmy_abortÚ
mypy_abortÚdo_something)r   Úexcs     r   Útest_callstatement_fortranz5TestCBFortranCallstatement.test_callstatement_fortran  sR   € Ü�]‰]œ:¨XÕ6¸#Ø%)§[¡[×%6Ñ%6×%?Ñ%?ˆD�K‰KÔ"Ø�K‰K×Ñ×*Ñ*¨8Ô4÷ 7×6Ñ6ús   œAA:Á:BN)r<   r=   r>   r   r’   r“   rŸ   rÊ   r    r   r   r¿   r¿   ú   s)   „ ð
 ˆt�|‰|˜G U¨J¸ÓFÐG€GØˆk€Gó5r   r¿   )r.   r   r›   r”   r{   rr   rj   rœ   ÚnumpyrW   Únumpy.testingr   rQ   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ô 
$ô�$—-‘-ô ô"
�$—-‘-ô 
ð ‡�×ÑØ‡�×Ñ˜o˜hŸo™oÓ/×5Ñ5Ó7¸8ÑCØØFð ó Hô5 §¡ó 5óHó ñ5r   