§
    €Ûg´8  ã                   óÂ  — 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
mZ d dlmZ d dlmZ ddlmZ ddlmZmZ  G d	„ d
ej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z ej        ¦   «         Z G d„ dej        ¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z e Z! G d„ de¦  «        Z" G d„ dej#        j$        ¦  «        Z%dS )é    N)Údoctests)Ú
ErrorClassÚErrorClassPlugin)ÚPlugin)Úsrcé   )Úget_package_name)ÚKnownFailureExceptionÚKnownFailureTestc                   ó   — e Zd Zd„ Zd„ ZdS )ÚNumpyDocTestFinderc                 ó  — |€dS t          j        |¦  «        r|j        |j        u S t          j        |¦  «        r|j        |j        k    S t          j        |¦  «        r|j        |j        k    S t          j        |¦  «        r|j        |j	        j
        j        k    S t          j        |¦  «        �|t          j        |¦  «        u S t          |d¦  «        r|j        |j        k    S t          |t          ¦  «        rdS t          d¦  «        ‚)zY
        Return true if the given object is defined in the given
        module.
        NTÚ
__module__z"object must be a class or function)ÚinspectÚ
isfunctionÚ__dict__Ú__globals__Ú	isbuiltinÚ__name__r   ÚisclassÚismethodÚ__self__Ú	__class__Ú	getmoduleÚhasattrÚ
isinstanceÚpropertyÚ
ValueError)ÚselfÚmoduleÚobjects      úX/granary/edev/quantum/lib/python3.11/site-packages/numpy/testing/_private/noseclasses.pyÚ_from_modulezNumpyDocTestFinder._from_module   s  € ð
 ˆ>Ø�4ÝÔ Ñ'Ô'ð 	CØ”? fÔ&8Ð8Ð8ÝÔ˜vÑ&Ô&ð 	CØ”? fÔ&7Ò7Ð7ÝŒ_˜VÑ$Ô$ð 	CØ”? fÔ&7Ò7Ð7ÝÔ˜fÑ%Ô%ð 	Cð
 ”? f¤oÔ&?Ô&JÒJÐJÝÔ˜vÑ&Ô&Ð2Ø�WÔ.¨vÑ6Ô6Ð6Ð6Ý�V˜\Ñ*Ô*ð 	CØ”? fÔ&7Ò7Ð7Ý˜¥Ñ)Ô)ð 	CØ�4åÐAÑBÔBÐBó    c           
      óP  — t           j                             | |||||||¦  «         ddlm}m}	m}
m}m}  |
|¦  «        rt| j	        rm|j
                             ¦   «         D ]S\  }}|› d|› �} ||¦  «        s |	|¦  «        r1|                      ||¦  «        r|                      |||||||¦  «         ŒT |	|¦  «        rã| j	        rÞ|j
                             ¦   «         D ]Æ\  }}t          |t          ¦  «        rt          ||¦  «        }t          |t           ¦  «        rt          ||¦  «        j        } ||¦  «        s+ |	|¦  «        s  ||¦  «        st          |t$          ¦  «        r8|                      ||¦  «        r"|› d|› �}|                      |||||||¦  «         ŒÃdS dS dS )zm
        Find tests for the given object and any contained objects, and
        add them to `tests`.
        r   )Ú	isroutiner   Úismoduler   r   ú.N)ÚdoctestÚDocTestFinderÚ_findr   r&   r   r'   r   r   Ú_recurser   Úitemsr#   r   ÚstaticmethodÚgetattrÚclassmethodÚ__func__r   )r   ÚtestsÚobjÚnamer    Úsource_linesÚglobsÚseenr&   r   r'   r   r   ÚvalnameÚvalÚvalname1s                   r"   r+   zNumpyDocTestFinder._find:   sY  € õ 	Ô×#Ò# D¨%°°d¸FØ$0°%¸ñ	?ô 	?ð 	?ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð
 ˆ8�C‰=Œ=ð 	,˜Tœ]ð 	,Ø #¤× 2Ò 2Ñ 4Ô 4ð ,ð ,‘�˜Ø"Ð.Ð. WÐ.Ð.�Ø�i ‘n”nð ,¨¨°©¬ð ,Ø×*Ò*¨6°3Ñ7Ô7ð,ð —J’J˜u c¨8°V¸\Ø$ dñ,ô ,ð ,øð ˆ7�3‰<Œ<ð 	,˜DœMð 	,Ø #¤× 2Ò 2Ñ 4Ô 4ð ,ð ,‘�˜å˜c¥<Ñ0Ô0ð 0Ý! # wÑ/Ô/�CÝ˜c¥;Ñ/Ô/ð 9Ý! # wÑ/Ô/Ô8�Cð  �Z ‘_”_ð ,¨¨°©¬ð ,Ø�X˜c‘]”]ð,Ý&0°µhÑ&?Ô&?ð,à×'Ò'¨°Ñ4Ô4ð,ð "&Ð1Ð1¨Ð1Ð1�GØ—J’J˜u c¨7°F¸LØ$ dñ,ô ,ð ,øð	,ð 	,ð 	,ð 	,ð,ð ,r$   N)r   r   Ú__qualname__r#   r+   © r$   r"   r   r      s5   € € € € € ðCð Cð Cð8+,ð +,ð +,ð +,ð +,r$   r   c                   ó   — e Zd Zd„ ZdS )ÚNumpyOutputCheckerc                 ód  — t           j                             | |||¦  «        }|s‹d|v rdS |                     dd¦  «        }|                     dd¦  «        }dD ]4}|                     d|z  d¦  «        }|                     d|z  d¦  «        }Œ5t           j                             | |||¦  «        }|S )Nz#randomTz'>z'<)é   é   z'<i%d'Úint)r)   ÚOutputCheckerÚcheck_outputÚreplace)r   ÚwantÚgotÚoptionflagsÚretÚszs         r"   rD   zNumpyOutputChecker.check_outputl   sÌ   € ÝÔ#×0Ò0°°t¸SØ1<ñ>ô >ˆàð 	&Ø˜DÐ Ð Ø�tð —+’+˜d DÑ)Ô)ˆCØ—<’<  dÑ+Ô+ˆDð ð :ð :�Ø—k’k (¨R¡-°Ñ7Ô7�Ø—|’| H¨r¡M°5Ñ9Ô9��åÔ'×4Ò4°T¸4Ø˜ñ&ô &ˆCð ˆ
r$   N)r   r   r;   rD   r<   r$   r"   r>   r>   k   s#   € € € € € ðð ð ð ð r$   r>   c                   ó   — e Zd Z	 	 dd„ZdS )ÚNumpyDocTestCaser   NÚ_c                 ól   — || _         || _        t          j                             | |||||¬¦  «         d S )N)rH   ÚsetUpÚtearDownÚchecker)Ú_result_varÚ	_nose_objr)   ÚDocTestCaseÚ__init__)r   ÚtestrH   rO   rP   rQ   r3   Ú
result_vars           r"   rU   zNumpyDocTestCase.__init__‰   sJ   € à%ˆÔØˆŒÝÔ×$Ò$ T¨4Ø1<Ø+0¸8Ø-4ð 	%ñ 	6ô 	6ð 	6ð 	6ð 	6r$   )r   NNNNrM   )r   r   r;   rU   r<   r$   r"   rL   rL   ˆ   s.   € € € € € ØAEØ47ð6ð 6ð 6ð 6ð 6ð 6r$   rL   c                   óz   — e Zd ZdZdZej        ej        z  ZddgZ	e
ZeZeZej        fd„Zd„ Zd„ Zd„ Zd	„ Zd
„ ZdS )ÚNumpyDoctestÚnumpydoctestiè  zgenerate_numpy_api.pyzsetup.pyc                 óN   — t          j        | ||¦  «         d| _        d | _        d S )NT)r   ÚoptionsÚdoctest_testsÚdoctest_result_var©r   ÚparserÚenvs      r"   r\   zNumpyDoctest.options¦   s0   € ÝŒ�t˜V SÑ)Ô)Ð)ð "ˆÔð #'ˆÔÐÐr$   c                 óæ   — t          j        | ||¦  «         |                      ¦   «         | _        t	          j        ¦   «         | _        | j        r"d„ |j        j        D ¦   «         |j        _        d S d S )Nc                 ó(   — g | ]}|j         d k    ¯|‘ŒS ©r)   )r4   )Ú.0Úps     r"   ú
<listcomp>z*NumpyDoctest.configure.<locals>.<listcomp>¹   s.   € ð &>ð &>ð &>¨AØ)*¬°9Ò)<Ð)<ð '(Ø)<Ð)<Ð)<r$   )	r   Ú	configureÚtest_finder_classÚfinderr)   ÚDocTestParserr`   ÚenabledÚplugins©r   r\   Úconfigs      r"   rh   zNumpyDoctest.configure¯   s{   € åÔ˜˜w¨Ñ/Ô/Ð/Ø×,Ò,Ñ.Ô.ˆŒÝÔ+Ñ-Ô-ˆŒØŒ<ð 	>ð
&>ð &>°´Ô1Gð &>ñ &>ô &>ˆFŒNÔ"Ð"Ð"ð	>ð 	>r$   c                 ó  — t          t          j                             |j        ¦  «        ¦  «        }t
          ddt          dœ|_        d|v r?|                     d¦  «        }|d         }t          ||j        i |g¦  «        |j        |<   dS dS )a`   Configure `test` object to set test context

        We set the numpy / scipy standard doctest namespace

        Parameters
        ----------
        test : test object
            with ``globs`` dictionary defining namespace

        Returns
        -------
        None

        Notes
        -----
        `test` object modified in place
        Ú__main__)Ú__builtins__Ú__file__r   ÚnpÚscipyr(   éÿÿÿÿN)
r	   ÚosÚpathÚdirnameÚfilenamerr   Únumpyr6   ÚsplitÚ
__import__)r   rV   Úpkg_namerf   Úp2s        r"   Úset_test_contextzNumpyDoctest.set_test_context¼   s�   € õ& $¥B¤G§O¢O°D´MÑ$BÔ$BÑCÔCˆõ &2Ø!+Ø!+Ý ð"ð "ˆŒ
ð
 �hÐÐØ—’˜sÑ#Ô#ˆAØ�2”ˆBÝ'¨°$´*¸bÀ2À$ÑGÔGˆDŒJ�r‰NˆNˆNð Ðr$   c              #   ó  K  — |                       |j        ¦  «        s"t          j                             d|¦  «         d S 	 | j                             |¦  «        }n# t          $ r Y d S w xY w|sd S |                     ¦   «          t          |j
        ¦  «        }|D ]d}|j        sŒ
|j        s||_        |                      |¦  «         |                      || j        |                      ¦   «         | j        ¬¦  «        V — Œed S )NzDoctest doesn't want module %s)rH   rQ   rW   )Úmatchesr   ÚnpdÚlogÚdebugrj   ÚfindÚAttributeErrorÚsortr   rs   Úexamplesrz   r€   Údoctest_case_classÚdoctest_optflagsÚout_check_classr^   )r   r    r2   Úmodule_filerV   s        r"   ÚloadTestsFromModulez NumpyDoctest.loadTestsFromModuleæ   sA  è è € Ø�|Š|˜FœOÑ,Ô,ð 	ÝŒG�MŠMÐ:¸FÑCÔCÐCØˆFð	Ø”K×$Ò$ VÑ,Ô,ˆEˆEøÝð 	ð 	ð 	ð ˆFˆFð	øøøð ð 	ØˆFØ�
Š
‰ŒˆÝ˜&œ/Ñ*Ô*ˆØð 
	Nð 
	NˆDØ”=ð ØØ”=ð ,Ø +�”à×!Ò! $Ñ'Ô'Ð'Ø×)Ò)¨$Ø6:Ô6KØ26×2FÒ2FÑ2HÔ2HØ59Ô5Lð *ñ Nô Nð Nð Nð Nð Nð
	Nð 
	Ns   Á A Á
A)Á(A)c                 ó2   — t          j        di t          ¤Ž d S )Nr<   )r{   Úset_printoptionsÚprint_state)r   s    r"   ÚafterContextzNumpyDoctest.afterContext  s   € ÝÔÐ-Ð-¥Ð-Ð-Ð-Ð-Ð-r$   c                 ó–   — t           j                             |¦  «        }|| j        v rdS t          j                             | |¦  «        S )NF)rw   rx   ÚbasenameÚdoctest_ignorerƒ   ÚDoctestÚwantFile)r   ÚfileÚbns      r"   r—   zNumpyDoctest.wantFile  sB   € ÝŒW×Ò˜dÑ#Ô#ˆØ�Ô$Ð$Ð$Ø�5ÝŒ{×#Ò# D¨$Ñ/Ô/Ð/r$   N)r   r   r;   r4   Úscorer)   ÚNORMALIZE_WHITESPACEÚELLIPSISr‹   r•   rL   rŠ   r>   rŒ   r   ri   rw   Úenvironr\   rh   r€   rŽ   r’   r—   r<   r$   r"   rY   rY   •   sÀ   € € € € € Ø€DØ€Eð Ô3°gÔ6FÑFÐð .Ø ð"€Nð *ÐØ(€OØ*Ðð #%¤*ð 'ð 'ð 'ð 'ð>ð >ð >ð%Hð %Hð %HðTNð Nð Nð8.ð .ð .ð0ð 0ð 0ð 0ð 0r$   rY   c                   ó2   — e Zd ZdZdZdZdZd
d„Zd„ Zd„ Z	d	S )Ú	Unpluggerzi Nose plugin to remove named plugin late in loading

    By default it removes the "doctest" plugin.
    Ú	unpluggerTi   r)   c                 ó   — || _         d S ©N)Ú	to_unplug)r   r£   s     r"   rU   zUnplugger.__init__  s   € Ø"ˆŒˆˆr$   c                 ó   — d S r¢   r<   r_   s      r"   r\   zUnplugger.options  s   € Øˆr$   c                 óL   ‡ — ˆ fd„|j         j         D ¦   «         |j         _         d S )Nc                 ó4   •— g | ]}|j         ‰j        k    ¯|‘ŒS r<   )r4   r£   )re   rf   r   s     €r"   rg   z'Unplugger.configure.<locals>.<listcomp>  s1   ø€ ð "?ð "?ð "?¨Ø%&¤V¨t¬~Ò%=Ð%=ð #$Ø%=Ð%=Ð%=r$   )rm   rn   s   `  r"   rh   zUnplugger.configure  s:   ø€ ð"?ð "?ð "?ð "?¨V¬^Ô-Cð "?ñ "?ô "?ˆŒÔÐÐr$   Nrd   )
r   r   r;   Ú__doc__r4   rl   rš   rU   r\   rh   r<   r$   r"   rŸ   rŸ     sa   € € € € € ðð ð €DØ€GØ€Eð#ð #ð #ð #ðð ð ð?ð ?ð ?ð ?ð ?r$   rŸ   c                   óL   — e Zd ZdZdZ eedd¬¦  «        Zej	        fd„Z
d„ ZdS )	ÚKnownFailurePlugina1  Plugin that installs a KNOWNFAIL error class for the
    KnownFailureClass exception.  When KnownFailure is raised,
    the exception will be logged in the knownfail attribute of the
    result, 'K' or 'KNOWNFAIL' (verbose) will be output, and the
    exception will not be counted as an error or failure.TÚ	KNOWNFAILF)ÚlabelÚ	isfailurec           	      óf   — d}|                      ddd|                     |d¦  «        d¬¦  «         d S )NÚNOSE_WITHOUT_KNOWNFAILz--no-knownfailÚ
store_trueÚnoKnownFailFz3Disable special handling of KnownFailure exceptions)ÚactionÚdestÚdefaultÚhelp)Ú
add_optionÚget)r   r`   ra   Úenv_opts       r"   r\   zKnownFailurePlugin.options-  sK   € Ø*ˆØ×ÒÐ*°<Ø,°c·g²g¸gÀuÑ6MÔ6Mð ,ð 	ñ 	-ô 	-ð 	-ð 	-ð 	-r$   c                 ó^   — | j         sd S || _        t          |dd¦  «        }|r	d| _        d S d S )Nr°   F)Úcan_configureÚconfr/   rl   )r   r\   rº   Údisables       r"   rh   zKnownFailurePlugin.configure4  sG   € ØÔ!ð 	ØˆFØˆŒ	Ý˜' =°%Ñ8Ô8ˆØð 	!Ø ˆDŒLˆLˆLð	!ð 	!r$   N)r   r   r;   r§   rl   r   r
   Ú	knownfailrw   r�   r\   rh   r<   r$   r"   r©   r©   "  sn   € € € € € ð=ð =ð
 €GØ�
Ð0Ø!,Ø%*ð,ñ ,ô ,€Ið #%¤*ð -ð -ð -ð -ð!ð !ð !ð !ð !r$   r©   c                   ó   — e Zd ZdZd„ ZdS )ÚFPUModeCheckPluginzx
    Plugin that checks the FPU mode before and after each test,
    raising failures if the test changed the mode.
    c                 ó"   ‡‡— ddl mŠ ˆˆfd„}|S )Nr   )Úget_fpu_modec                 ó  •—  ‰¦   «         }‰                      | ¦  «          ‰¦   «         }||k    r\	 t          d                     ||¦  «        ¦  «        ‚# t          $ r+ |                      ‰t	          j        ¦   «         ¦  «         Y d S w xY wd S )Nz6FPU mode changed from {0:#x} to {1:#x} during the test)rV   ÚAssertionErrorÚformatÚ
addFailureÚsysÚexc_info)ÚresultÚold_modeÚnew_moderÀ   rV   s      €€r"   Úrunz/FPUModeCheckPlugin.prepareTestCase.<locals>.runH  s«   ø€ Ø#�|‘~”~ˆHØ�IŠI�fÑÔÐØ#�|‘~”~ˆHà˜8Ò#Ð#ð<Ý(ðß%šv h°Ñ9Ô9ñ;ô ;ð ;øõ &ð <ð <ð <Ø×%Ò% d­C¬L©N¬NÑ;Ô;Ð;Ð;Ð;Ð;ð<øøøð $Ð#s   ²#A Á1B
Â	B
)Únumpy.core._multiarray_testsrÀ   )r   rV   rÊ   rÀ   s    ` @r"   ÚprepareTestCasez"FPUModeCheckPlugin.prepareTestCaseE  s;   øø€ Ø=Ð=Ð=Ð=Ð=Ð=ð	<ð 	<ð 	<ð 	<ð 	<ð 	<ð ˆ
r$   N)r   r   r;   r§   rÌ   r<   r$   r"   r¾   r¾   ?  s-   € € € € € ðð ð
ð ð ð ð r$   r¾   c                   ó   — e Zd Zd„ ZdS )ÚNumpyTestProgramc                 ó|  — | j         €@t          j                             | j        j        | j        j        | j        ¬¦  «        | _         | j        j                             | j         ¦  «        }|�|| _         | j          	                    | j
        ¦  «        | _        | j                             ¦   «         | _        | j        S )a  Run Tests. Returns true on success, false on failure, and
        sets self.success to the same value.

        Because nose currently discards the test result object, but we need
        to return it to the user, override TestProgram.runTests to retain
        the result
        N)ÚstreamÚ	verbosityro   )Ú
testRunnerÚnoseÚcoreÚTextTestRunnerro   rÐ   rÑ   rm   ÚprepareTestRunnerrÊ   rV   rÇ   ÚwasSuccessfulÚsuccess)r   Úplug_runners     r"   ÚrunTestszNumpyTestProgram.runTests[  sŸ   € ð Œ?Ð"Ý"œi×6Ò6¸d¼kÔ>PØAEÄÔAVØ>B¼kð 7ñ Kô KˆDŒOð ”kÔ)×;Ò;¸D¼OÑLÔLˆØÐ"Ø)ˆDŒOØ”o×)Ò)¨$¬)Ñ4Ô4ˆŒØ”{×0Ò0Ñ2Ô2ˆŒØŒ|Ðr$   N)r   r   r;   rÚ   r<   r$   r"   rÎ   rÎ   Z  s#   € € € € € ðð ð ð ð r$   rÎ   )&rw   rÅ   r)   r   r{   rÓ   Únose.pluginsr   rƒ   Únose.plugins.errorclassr   r   Únose.plugins.baser   Ú	nose.utilr   Ú
nosetesterr	   Úutilsr
   r   r*   r   rC   r>   rT   rL   Úget_printoptionsr‘   r–   rY   rŸ   r©   ÚKnownFailurer¾   rÔ   ÚTestProgramrÎ   r<   r$   r"   ú<module>rä      sH  ðð 
€	€	€	Ø 
€
€
€
Ø €€€Ø €€€à €€€Ø €€€Ø (Ð (Ð (Ð (Ð (Ð (Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :ðI,ð I,ð I,ð I,ð I,˜Ô.ñ I,ô I,ð I,ð^ð ð ð ð ˜Ô.ñ ô ð ð:6ð 6ð 6ð 6ð 6�s”ñ 6ô 6ð 6ð %ˆeÔ$Ñ&Ô&€ðu0ð u0ð u0ð u0ð u0�3”;ñ u0ô u0ð u0ðp?ð ?ð ?ð ?ð ?ñ ?ô ?ð ?ð*!ð !ð !ð !ð !Ð)ñ !ô !ð !ð4 "€ðð ð ð ð ˜ñ ô ð ð6ð ð ð ð �t”yÔ,ñ ô ð ð ð r$   