§
    `Štj»  ã                   óð  — 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                              ej        ¦   «                              ¦   «         dk    dd¬¦  «         G d„ dej        ¦  «        ¦   «         ¦   «         ZdS )é    N)ÚIS_PYPYé   )Úutilc                   óº  — e Zd Z ej        dddd¦  «        gZej                             dddg¦  «        ej        j	        d„ ¦   «         ¦   «         Z
ej                             ed	¬
¦  «        d„ ¦   «         Zd„ Zej                             ej        dk    d¬
¦  «        d„ ¦   «         Zej                             ej        dk    d¬
¦  «        d„ ¦   «         Zd„ Zd„ ZdS )ÚTestF77CallbackÚtestsÚsrcÚcallbackzfoo.fÚnameÚtÚt2c                 ó0   — |                       |¦  «         d S ©N)Úcheck_function)Úselfr   s     ú\/var/www/html/CA-Chatbot/venv/lib/python3.11/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                 ó\   — t          j        d¦  «        }| j        j        j        |k    sJ ‚d S )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_docstringzTestF77Callback.test_docstring   s:   € õ ”?ð $ñ ô ˆð4 Œ{Œ}Ô$¨Ò0Ð0Ð0Ð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 ‚ |t          j        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 ‚d S )Nc                  ó   — dS )Né   © r    r   r   ú<lambda>z0TestF77Callback.check_function.<locals>.<lambda>:   s   € �a€ r   r   c                 ó   — dS ©Né   r    ©Úas    r   r!   z0TestF77Callback.check_function.<locals>.<lambda><   ó   € ˜€ r   )é   )Úfun_extra_argsr$   c                 ó   — | S r   r    r%   s    r   r!   z0TestF77Callback.check_function.<locals>.<lambda>>   r'   r   r(   c                 ó   — d| z   S r#   r    r%   s    r   r!   z0TestF77Callback.check_function.<locals>.<lambda>@   s
   € ˜˜A™€ r   )é   é   é´   é   é   c                   ó   — e Zd Zd„ Zd„ ZdS )ú)TestF77Callback.check_function.<locals>.Ac                 ó   — dS )Nr,   r    ©r   s    r   Ú__call__z2TestF77Callback.check_function.<locals>.A.__call__O   ó   € Ø�qr   c                 ó   — dS )Né	   r    r4   s    r   Úmthz-TestF77Callback.check_function.<locals>.A.mthR   r6   r   N)Ú__name__Ú
__module__Ú__qualname__r5   r9   r    r   r   ÚAr2   N   s2   € € € € € ðð ð ðð ð ð ð r   r=   r,   r8   )	Úgetattrr   ÚmathÚdegreesÚpiÚfuncÚfunc0Ú	_cpointerr9   )r   r   r   Úrr=   r&   s         r   r   zTestF77Callback.check_function8   sÀ  € Ý�D”K Ñ&Ô&ˆØˆAˆiˆi‰LŒLˆØ�AŠvˆvˆvˆvØˆAˆkˆk¨%Ð0Ñ0Ô0ˆØ�AŠvˆvˆvˆvØˆAˆkˆk¨%Ð0Ñ0Ô0ˆØ�AŠvˆvˆvˆvØˆAˆoˆo¨eÐ4Ñ4Ô4ˆØ�BŠwˆwˆwˆwØˆA�dŒl­D¬G¨;Ð7Ñ7Ô7ˆØ�CŠxˆxˆxˆxØˆA�dŒl­D¬G¨;Ð7Ñ7Ô7ˆØ�CŠxˆxˆxˆxàˆAˆdŒkÔ¨uÐ5Ñ5Ô5ˆØ�BŠwˆwˆwˆwØˆAˆdŒkÔÑ Ô ˆØ�BŠwˆwˆwˆwØˆAˆdŒkÔÔ)Ñ*Ô*ˆØ�BŠwˆwˆwˆwð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð ˆA‰CŒCˆØˆAˆa‰DŒDˆØ�AŠvˆvˆvˆvØˆAˆaŒe‰HŒHˆØ�AŠvˆvˆvˆvˆvˆvr   Úwin32z)Fails with MinGW64 Gfortran (Issue #9673)c                 óJ   — d„ }| j         j        } ||¦  «        }|dk    sJ ‚d S )Nc                 ó   — | dk    rdS dS )NrE   r   r   r    )Úcodes    r   r
   z6TestF77Callback.test_string_callback.<locals>.callback^   s   € Ø�sŠ{ˆ{Ø�qà�qr   r   )r   Ústring_callback)r   r
   ÚfrE   s       r   Útest_string_callbackz$TestF77Callback.test_string_callback[   s;   € ð	ð 	ð 	ð ŒKÔ'ˆØˆAˆh‰KŒKˆØ�AŠvˆvˆvˆvˆvˆvr   c                 óè   — t          j        dd¦  «        }t          j        dd¦  «        }t          j        dgd¦  «        }d„ }| j        j        }|||fD ]} ||||j        ¦  «        }|dk    sJ ‚Œd S )N)r   ÚS8)r   é   ÚcÚ c                 óp   — | j         |fk    rdS | j        dk    rdS t          j        | dk    ¦  «        sdS dS )Nr   rN   é   r   é   r   )ÚshapeÚdtypeÚnpÚall)ÚcuÚlencus     r   r
   z<TestF77Callback.test_string_callback_array.<locals>.callbackp   sH   € ØŒx˜E˜8Ò#Ð#Ø�qØŒx˜4ÒÐØ�qÝ”6˜" š)Ñ$Ô$ð Ø�qØ�1r   r   )rW   ÚzerosÚarrayr   Ústring_callback_arrayÚsize)r   Úcu1Úcu2Úcu3r
   rK   rY   Úress           r   Útest_string_callback_arrayz*TestF77Callback.test_string_callback_arrayh   s—   € õ Œh�u˜dÑ#Ô#ˆÝŒh�v˜sÑ#Ô#ˆÝŒh˜�t˜TÑ"Ô"ˆð	ð 	ð 	ð ŒKÔ-ˆØ˜˜S�/ð 	ð 	ˆBØ�!�H˜b "¤'Ñ*Ô*ˆCØ˜!’8�8�8�8�8ð	ð 	r   c                 óö   ‡ ‡‡‡— g Šˆ fd„Šˆˆˆ fd„Šˆfd„dD ¦   «         }|D ]}|                      ¦   «          Œ|D ]}|                     ¦   «          Œd                     ‰¦  «        Š‰rt          ‰¦  «        ‚d S )Nc                  óv   •— t          j        d¦  «         ‰j                             d„ ¦  «        } | dk    sJ ‚dS )Ngü©ñÒMbP?c                  ó   — dS ©Né{   r    r    r   r   r!   z?TestF77Callback.test_threadsafety.<locals>.cb.<locals>.<lambda>‰   s   €  c€ r   rh   é*   )ÚtimeÚsleepr   r   )rE   r   s    €r   Úcbz-TestF77Callback.test_threadsafety.<locals>.cbƒ   s>   ø€ õ ŒJ�tÑÔÐð ”—’˜k˜kÑ*Ô*ˆAØ˜’8�8�8�8à�2r   c                 ó
  •— 	 t          d¦  «        D ]9}‰j                             ‰¦  «        }|dk    sJ ‚‰                     | ¦  «         Œ:d S # t          $ r* ‰                     t          j        ¦   «         ¦  «         Y d S 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Ž   sŸ   ø€ ð6Ý˜r™œð .ð .�AØœŸš bÑ)Ô)�AØ š7˜7˜7˜7Ø×'Ò'¨Ñ-Ô-Ð-Ð-ð.ð .øõ ð 6ð 6ð 6Ø—’�iÔ2Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5Ð5ð6øøøs   ƒA	A Á0BÂBc                 ób   •— g | ]+}t          d ¦  «        D ]}t          j        ‰|f¬¦  «        ‘ŒŒ,S )é   )ÚtargetÚargs)ro   Ú	threadingÚThread)Ú.0ÚargÚnrv   s      €r   ú
<listcomp>z5TestF77Callback.test_threadsafety.<locals>.<listcomp>—   sU   ø€ ð 
ð 
ð 
à­E°"©I¬Ið
ð 
à'(õ Ô F°#°Ð9Ñ9Ô9ð
ð 
ð 
ð 
r   )r   r   z

)ÚstartÚjoinÚAssertionError)r   Úthreadsr   rl   ru   rv   s   `  @@@r   Útest_threadsafetyz!TestF77Callback.test_threadsafety~   sà   øøøø€ ð ˆð		ð 		ð 		ð 		ð 		ð	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð
ð 
ð 
ð 
à"ð
ñ 
ô 
ˆð
 ð 	ð 	ˆAØ�GŠG‰IŒIˆIˆIàð 	ð 	ˆAØ�FŠF‰HŒHˆHˆHà—’˜VÑ$Ô$ˆØð 	)Ý  Ñ(Ô(Ð(ð	)ð 	)r   c                 ó~  — 	 | j                              d¦  «         n;# t          $ r.}t          |¦  «                             d¦  «        sJ ‚Y d }~nd }~ww xY w	 | j                              d¦  «         n;# t          $ r.}t          |¦  «                             d¦  «        sJ ‚Y d }~nd }~ww xY wd„ | j         _        | j                              d¦  «        }|dk    sJ ‚d„ | j         _        | j                              d¦  «        }|dk    sJ ‚| j         `	 | j                              d¦  «         n;# t          $ r.}t          |¦  «                             d¦  «        sJ ‚Y d }~nd }~ww xY wdd	„| j         _        | j                              d¦  «        }|d
k    sJ ‚| j                              d¦  «        }|dk    sJ ‚d S )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   r   c                 ó   — | dz   S )NrT   r    rˆ   s    r   r!   z6TestF77Callback.test_hidden_callback.<locals>.<lambda>¿   s
   € ¨1¨q©5€ r   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×'Ò'¨Ñ*Ô*Ð*Ð*øÝð 	Hð 	Hð 	HÝ�s‘8”8×&Ò&Ð'FÑGÔGÐGÐGÐGÐGÐGÐGÐGÐGøøøøð	Høøøð	LØŒK×(Ò(¨Ñ+Ô+Ð+Ð+øÝð 	Lð 	Lð 	LÝ�s‘8”8×&Ò&Ð'JÑKÔKÐKÐKÐKÐKÐKÐKÐKÐKøøøøð	Løøøð  /˜ˆŒÔØŒK×'Ò'¨Ñ*Ô*ˆØ�AŠvˆvˆvˆvà.˜ˆŒÔØŒK×'Ò'¨Ñ*Ô*ˆØ�AŠvˆvˆvˆvàŒKÐ ð	HØŒK×'Ò'¨Ñ*Ô*Ð*Ð*øÝð 	Hð 	Hð 	HÝ�s‘8”8×&Ò&Ð'FÑGÔGÐGÐGÐGÐGÐGÐGÐGÐGøøøøð	Høøøð  1Ð0Ð0ˆŒÔØŒK×'Ò'¨Ñ*Ô*ˆØ�AŠvˆvˆvˆvð ŒK×(Ò(¨Ñ+Ô+ˆØ�AŠvˆvˆvˆvˆvˆvsD   ‚ �
A§$AÁAÁA4 Á4
B,Á>$B'Â'B,ÄD0 Ä0
E(Ä:$E#Å#E(N)r:   r;   r<   r   ÚgetpathÚsourcesÚpytestÚmarkÚparametrizeÚslowr   Úxfailr   r   r   ÚskipifÚsysÚplatformrL   rc   r…   r“   r    r   r   r   r      se  € € € € € ØˆtŒ|˜G U¨J¸Ñ@Ô@ÐA€Gà„[×Ò˜V c¨4 [Ñ1Ô1Ø„[Ôð"ð "ñ Ôñ 2Ô1ð"ð „[×Ò�wØLð ñ Nô Nð1ð 1ñNô Nð1ð:!ð !ð !ðF „[×Ò˜œ¨Ò/ØJð ñ Lô Lð	ð 	ñLô Lð	ð „[×Ò˜œ¨Ò/ØJð ñ Lô Lðð ñLô Lðð(&)ð &)ð &)ðPð ð ð ð r   r   c                   ó   — e Zd ZdZdgZdS )Ú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"   € € € € € ðð ð
 'Ð'€G€G€Gr   rŸ   c                   ó`   — e Zd Z ej        dddd¦  «        gZej        j        d„ ¦   «         Z	dS )ÚTestF90Callbackr   r	   r
   zgh17797.f90c                 ó–   — d„ }t          j        g d¢t           j        ¬¦  «        }| j                             ||¦  «        }|dk    sJ ‚d S )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Ô   s[   € ð	ð 	ð 	õ ŒH�Y�Y�Y¥b¤hÐ/Ñ/Ô/ˆØŒK×Ò  aÑ(Ô(ˆØ�OÒ#Ð#Ð#Ð#Ð#Ð#r   N)
r:   r;   r<   r   r”   r•   r–   r—   r™   rª   r    r   r   r¢   r¢   Ñ   sM   € € € € € ØˆtŒ|˜G U¨J¸ÑFÔFÐG€Gà„[Ôð$ð $ñ Ôð$ð $ð $r   r¢   c                   ód   — e Zd ZdZ ej        dddd¦  «        gZej        j	        d„ ¦   «         Z
dS )Ú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                 óP   — d„ }| j                              |¦  «        }|dk    sJ ‚d S )Nc                 ó&   — | dxx         dz  cc<   d S )Nr   r   r    rˆ   s    r   Úfooz%TestGH18335.test_gh18335.<locals>.fooè   s   € ØˆaˆDˆDŒD�A‰IˆDˆD‰DˆDˆDr   é|   )r   Úgh18335)r   r¯   rE   s      r   Útest_gh18335zTestGH18335.test_gh18335æ   s9   € ð	ð 	ð 	ð ŒK×Ò Ñ$Ô$ˆØ�GŠ|ˆ|ˆ|ˆ|ˆ|ˆ|r   N)r:   r;   r<   r   r   r”   r•   r–   r—   r™   r²   r    r   r   r¬   r¬   Þ   sY   € € € € € ðð ð
 ˆtŒ|˜G U¨J¸ÑFÔFÐG€Gà„[Ôðð ñ Ôðð ð r   r¬   c                   ód   — e Zd Z ej        dddd¦  «         ej        dddd¦  «        gZdZd„ ZdS )	ÚTestGH25211r   r	   r
   z	gh25211.fzgh25211.pyfÚ	callback2c                 óP   — d„ }| j                              |¦  «        }|dk    sJ ‚d S )Nc                 ó   — | | z  S r   r    rˆ   s    r   Úbarz%TestGH25211.test_gh25211.<locals>.barõ   s   € Ø�q‘5ˆLr   én   )r   r¯   )r   r¸   rb   s      r   Útest_gh25211zTestGH25211.test_gh25211ô   s7   € ð	ð 	ð 	ð Œk�oŠo˜cÑ"Ô"ˆØ�cŠzˆzˆzˆzˆzˆzr   N)r:   r;   r<   r   r”   r•   Úmodule_namerº   r    r   r   r´   r´   ï   sZ   € € € € € ØˆtŒ|˜G U¨J¸ÑDÔDØˆtŒ|˜G U¨J¸ÑFÔFðH€Gà€Kðð ð ð ð r   r´   ÚdarwinFz*Callback aborts cause CI failures on macOS)Ú	conditionÚrunr   c                   óB   — e Zd Z ej        dddd¦  «        gZdgZd„ ZdS )ÚTestCBFortranCallstatementr   r	   r
   zgh26681.f90z--lowerc                 óâ   — t          j        t          d¬¦  «        5 }| j        j        j        | j        _        | j        j                             d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚhelpme)Úmatch)r–   ÚraisesÚ
ValueErrorr   ÚutilsÚmy_abortÚ
mypy_abortÚdo_something)r   Úexcs     r   Útest_callstatement_fortranz5TestCBFortranCallstatement.test_callstatement_fortran  s£   € ÝŒ]�:¨XÐ6Ñ6Ô6ð 	5¸#Ø%)¤[Ô%6Ô%?ˆDŒKÔ"ØŒKÔ×*Ò*¨8Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s   œ;A$Á$A(Á+A(N)r:   r;   r<   r   r”   r•   r    rË   r    r   r   rÀ   rÀ   ü   sF   € € € € € ð
 ˆtŒ|˜G U¨J¸ÑFÔFÐG€GØˆk€Gð5ð 5ð 5ð 5ð 5r   rÀ   )r?   r�   rœ   r   r{   rj   rr   r–   ÚnumpyrW   Únumpy.testingr   rQ   r   ÚF2PyTestr   rŸ   r¢   r¬   r´   r—   r™   rš   ÚsystemÚlowerrÀ   r    r   r   ú<module>rÑ      sù  ðØ €€€Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð à €€€à Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !à Ð Ð Ð Ð Ð ðtð tð tð tð t�d”mñ tô tð tðn(ð (ð (ð (ð (˜ñ (ô (ð (ð
$ð 
$ð 
$ð 
$ð 
$�d”mñ 
$ô 
$ð 
$ðð ð ð ð �$”-ñ ô ð ð"
ð 
ð 
ð 
ð 
�$”-ñ 
ô 
ð 
ð „ÔØ„×Ò˜o˜hœoÑ/Ô/×5Ò5Ñ7Ô7¸8ÒCØØFð ñ Hô Hð5ð 5ð 5ð 5ð 5 ¤ñ 5ô 5ñHô Hñ Ôð5ð 5ð 5r   