
    \hT                         S SK JrJrJrJrJrJr  S SKJrJ	r	  S r
S rS rS rS rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rg)    )
DispatcherMDNotImplementedErrorMethodDispatcherhalt_orderingrestart_ordering#ambiguity_register_error_ignore_dup)raiseswarnsc                     U $ N xs    d/var/www/auris/envauris/lib/python3.13/site-packages/sympy/multipledispatch/tests/test_dispatcher.pyidentityr      s    H    c                     U S-   $ N   r   r   s    r   incr          q5Lr   c                     U S-
  $ r   r   r   s    r   decr      r   r   c                     [        S5      n U R                  [        4[        5        U R                  [        4[
        5        [        [        SS9   U R                  [        45      [        :X  d   e S S S 5        U R                  [        5      [        L d   eU " S5      S:X  d   eU " S5      S:X  d   eg ! , (       d  f       NI= f)NfF)test_stacklevelr            ?        )
r   addintr   floatr   r
   DeprecationWarningresolvedispatchr   s    r   test_dispatcherr'      s    3AEE3&#EE5(C	!5	9yy# C''' 
:::c?c!!!Q4199S6S== 
:	9s   !B55
Cc                      [        S5      n U R                  [        [        45      " [        5        U " S5      S:X  d   eU " S5      S:X  d   eg )Nr   r   r   r          @)r   registerr!   r"   r   r&   s    r   test_union_typesr+   !   s@    3AJJU|S!Q4199S6S==r   c                      [        S5      n U R                  [        5      S 5       nU R                  [        5      S 5       nU " S5      S:X  d   eU " S5      S:X  d   eg )Nr   c                     U S-   $ r   r   r   s    r   r   )test_dispatcher_as_decorator.<locals>.inc,       1ur   c                     U S-
  $ r   r   r   s    r   r   r.   0   r/   r   r   r   r   r   )r   r*   r!   r"   )r   r   s     r   test_dispatcher_as_decoratorr1   )   sd    3AZZ_  ZZ  Q4199S6S==r   c                  r     " S S5      n U " S5      nU " S/5      nUR                   UR                   :X  d   eg )Nc                       \ rS rSr\" S5      r\R                  \5      S 5       r\R                  \	5      S 5       r
Srg)+test_register_instance_method.<locals>.Test:   r   c                     Xl         g r   data)selfr8   s     r   
_init_list6test_register_instance_method.<locals>.Test._init_list=   s    Ir   c                     U/U l         g r   r7   )r9   datums     r   	_init_obj5test_register_instance_method.<locals>.Test._init_objA   s    DIr   r7   N)__name__
__module____qualname____firstlineno__r   __init__r*   listr:   objectr>   __static_attributes__r   r   r   Testr4   :   sH    #C(			4	 	 
!	 
		6	"	  
#	 r   rH      r7   )rH   abs      r   test_register_instance_methodrL   8   s8    	  	  	QAaS	A66QVVr   c                    ^ [        S5      n S nS/mU4S jnU R                  [        [        4XS9  TS   (       a   eU R                  [        [        4XS9  TS   (       a   eU R                  [        [        4XS9  TS   (       d   eg )Nr   c                     U $ r   r   r   s    r   r   #test_on_ambiguity.<locals>.identityM   s    AXr   Fc                    > STS'   g )NTr   r   )
dispatcherambambiguitiess     r   on_ambiguity'test_on_ambiguity.<locals>.on_ambiguityQ   s    Ar   rT   r   )r   r    rF   r"   )r   r   rT   rS   s      @r   test_on_ambiguityrW   J   s    3A'K EE66
HE@1~EE65/8E?1~EE5&/8E?q>>r   c                  R   ^  [        S5      m [        [        U 4S j5      (       d   eg )Nr   c                  0   > T R                  S[        5      $ )N)r   )r    r   r&   s   r   <lambda>/test_raise_error_on_non_class.<locals>.<lambda>^   s    QUU4%5r   r   r	   	TypeErrorr&   s   @r   test_raise_error_on_non_classr^   \   s     3A)56666r   c                     S n S nS nSn[        SUS9nUR                  [        [        4U 5        UR                  [        [        4U5        UR                  [        [        4U5        U R
                  R                  5       UR
                  ;   d   eUR
                  R                  5       UR
                  ;   d   eUR
                  R                  U R
                  R                  5       5      UR
                  R                  UR
                  R                  5       5      :  d   eSUR
                  ;   d   eX4R
                  ;   d   eg )Nc                 
    X-   $ zDocstring number one r   r   ys     r   onetest_docstring.<locals>.onec   	    ur   c                 
    X-   $ zDocstring number two r   rb   s     r   twotest_docstring.<locals>.twog   rf   r   c                 
    X-   $ r   r   rb   s     r   threetest_docstring.<locals>.threek   s	    ur   Doc of the multimethod itselfr   doczobject, object)r   r    rF   r!   r"   __doc__stripfindrd   ri   rl   
master_docr   s        r   test_docstringrv   a   s    1J3J'AEE66
C EE3*cEE5%.% ;;!))+++;;!))+++99>>#++++-.			s{{((*+, , ,qyy((("""r   c                  ^   S n S nS nSn[        SUS9nUR                  [        [        4U 5        UR                  [        [        4U5        UR                  [        [        4U5        UR                  SS5      UR                  :X  d   eUR                  SS	5      UR                  :X  d   eg )
Nc                 
    X-   $ ra   r   rb   s     r   rd   test_help.<locals>.one~   rf   r   c                 
    X-   $ rh   r   rb   s     r   ri   test_help.<locals>.two   rf   r   c                 
    X-   $ )zDocstring number three r   rb   s     r   rl   test_help.<locals>.three   rf   r   rn   r   ro   r   r   r)   )r   r    rF   r!   r"   _helprq   rt   s        r   	test_helpr   }   s     1J3J'AEE66
C EE3*cEE5%.% 771a=CKK'''773---r   c                      S n S nSn[        SUS9nUR                  [        [        4U 5        UR                  [        [        4U5        SUR	                  SS5      ;   d   eSUR	                  S	S	5      ;   d   eg )
Nc                 
    X-   $ ra   r   rb   s     r   rd   test_source.<locals>.one   rf   r   c                 
    X-
  $ rh   r   rb   s     r   ri   test_source.<locals>.two   rf   r   rn   r   ro   zx + yr   zx - yr   )r   r    r!   r"   _source)rd   ri   ru   r   s       r   test_sourcer      st     1J3J'AEE3*cEE5%.#aii1o%%%aiiS))))r   c                  R   ^  [        S5      m [        [        U 4S j5      (       d   eg )Nr   c                  &   > T R                  S5      $ r   )sourcer&   s   r   rZ   8test_source_raises_on_missing_function.<locals>.<lambda>   s    QXXa[r   r\   r&   s   @r   &test_source_raises_on_missing_functionr      s     3A)01111r   c                  P  ^ S/mU4S jn [        S5      n[        5         S nUR                  [        [        4U5        UR                  [        [        4U5        TS/:X  d   e[        U S9  TS/:X  d   e[        UR                  5      [        [        4[        [        41:X  d   eg )Nr   c                     > TS==   S-  ss'   g )Nr   r   r   )rJ   rK   gs     r   rT   1test_halt_method_resolution.<locals>.on_ambiguity   s    	!	r   r   c                      g r   r   )argss    r   func)test_halt_method_resolution.<locals>.func   s    r   rV   r   )r   r   r    r!   rF   r   setordering)rT   r   r   r   s      @r   test_halt_method_resolutionr      s    	
A 	3AO EE3-EE63-8O8,/8O8qzz?V}vsm<<<<r   c                  R   ^  [        S5      m [        [        U 4S j5      (       d   eg )Nr   c                     > T " S5      $ Nhellor   r&   s   r   rZ   )test_no_implementations.<locals>.<lambda>   	    qzr   )r   r	   NotImplementedErrorr&   s   @r   test_no_implementationsr      s!    3A%'9::::r   c                    ^ [        S5      mTR                  [        5      TR                  [        5      S 5       5       n T" S5      S:X  d   eT" / SQ5      / SQ:X  d   e[	        [
        U4S j5      (       d   eU " S5      S:X  d   eg )Nr   c                     U S S S2   $ Nr   r   s    r   rev#test_register_stacking.<locals>.rev   s     2wr   )r   r   rI   )rI   r   r   c                     > T " S5      $ r   r   r&   s   r   rZ   (test_register_stacking.<locals>.<lambda>   r   r   r   olleh)r   r*   rE   tupler	   r   )r   r   s    @r   test_register_stackingr      s    3AZZZZ   Y<9$$$Y<9$$$%'9::::w<7"""r   c                  L   [        S5      n U R                  [        5      S 5       nU R                  [        [        5      S 5       n " S S[        5      nU R	                  [        5      UL d   eU R	                  U5      UL d   eU R	                  [        [        5      UL d   eg )Nr   c                     U S S S2   $ r   r   r   s    r   r   !test_dispatch_method.<locals>.rev   s    2wr   c                 
    X-   $ r   r   rb   s     r   r    !test_dispatch_method.<locals>.add   rf   r   c                       \ rS rSrSrg)$test_dispatch_method.<locals>.MyList   r   Nr@   rA   rB   rC   rG   r   r   r   MyListr          r   r   )r   r*   rE   r!   r%   )r   r   r    r   s       r   test_dispatch_methodr      s    3AZZ  ZZS   ::ds"""::f$$$::c33&&&r   c                    ^ [        S5      mTR                  [        5      S 5       n TR                  [        5      S 5       n T" S5      S:X  d   eT" S5      S:X  d   eT" S5      S:X  d   e[	        [
        U4S	 j5      (       d   eg )
Nr   c                     g)Ndefaultr   r   s    r   _test_not_implemented.<locals>._   s    r   c                 *    U S-  S:X  a  g[        5       e)Nr   r   evenr   r   s    r   r   r      s    q5A:'))r   r   r   r   r   rI   c                     > T " SS5      $ )Nr   r   r   r&   s   r   rZ   &test_not_implemented.<locals>.<lambda>   s    qAwr   )r   r*   rF   r!   r	   r   r   r   s    @r   test_not_implementedr      s    3AZZ  ZZ_* * W:"""Q46>>Q49%7777r   c                     ^ [        S5      mTR                  [        5      S 5       n [        [        U4S j5      (       d   eg )Nr   c                     [        5       er   r   )rJ   s    r   r   %test_not_implemented_error.<locals>._  s    #%%r   c                     > T " S5      $ )Nr   r   r&   s   r   rZ   ,test_not_implemented_error.<locals>.<lambda>	  s	    qvr   )r   r*   r"   r	   r   r   s    @r   test_not_implemented_errorr     s=    3AZZ& & %~6666r   c                  j  ^^^ [        S5      m " S S5      n  " S SU 5      m " S SU 5      mTR                  U T4S [        5        TR                  TU 4S	 [        5        TR                  U T4S
 [        5        TR                  TU 4S [        5        [        [        UUU4S j5      (       d   eg )Nr   c                       \ rS rSrSrg)3test_ambiguity_register_error_ignore_dup.<locals>.Ai  r   Nr   r   r   r   Ar     r   r   r   c                       \ rS rSrSrg)3test_ambiguity_register_error_ignore_dup.<locals>.Bi  r   Nr   r   r   r   Br     r   r   r   c                       \ rS rSrSrg)3test_ambiguity_register_error_ignore_dup.<locals>.Ci  r   Nr   r   r   r   Cr     r   r   r   c                     g r   r   rb   s     r   rZ   :test_ambiguity_register_error_ignore_dup.<locals>.<lambda>      dr   c                     g r   r   rb   s     r   rZ   r     r   r   c                     g r   r   rb   s     r   rZ   r     r   r   c                     g r   r   rb   s     r   rZ   r     r   r   c                  *   > T" T " 5       T" 5       5      $ r   r   )r   r   r   s   r   rZ   r     s    qac{r   )r   r    r   r	   r   )r   r   r   r   s    @@@r   (test_ambiguity_register_error_ignore_dupr     s    3A A A  EE1a&"$GHEE1a&"$GHEE1a&"$GHEE1a&"$GH %':;;;;r   N)!sympy.multipledispatch.dispatcherr   r   r   r   r   r   sympy.testing.pytestr	   r
   r   r   r   r'   r+   r1   rL   rW   r^   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      sz   N N /
$$7
#8.0*&2=2;
#'&8(7<r   