+
    hT                         ^ RI HtHtHtHtHtHt ^ RIHtH	t	 R t
R tR tR tR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR# )    )
DispatcherMDNotImplementedErrorMethodDispatcherhalt_orderingrestart_ordering#ambiguity_register_error_ignore_dup)raiseswarnsc                     V # N xs   &N/usr/lib/python3/dist-packages/sympy/multipledispatch/tests/test_dispatcher.pyidentityr      s    H    c                     V ^,           #    r   r   s   &r   incr          q5Lr   c                     V ^,
          # r   r   r   s   &r   decr      r   r   c                     \        R 4      p V P                  \        3\        4       V P                  \        3\
        4       \        \        RR7      ;_uu_ 4        V P                  \        34      \        8X  g   Q h RRR4       V P                  \        4      \        J g   Q hV ! ^4      ^8X  g   Q hV ! R4      R8X  g   Q hR#   + '       g   i     LO; i)fF)test_stacklevelN      ?        )
r   addintr   floatr   r
   DeprecationWarningresolvedispatchr   s    r   test_dispatcherr&      s    3AEE3&#EE5(C	!5	9	9yy# C''' 
:::c?c!!!Q4199S6S== 
:	9s   "CC	c                      \        R 4      p V P                  \        \        34      ! \        4       V ! ^4      ^8X  g   Q hV ! R4      R8X  g   Q hR# )r   r          @N)r   registerr    r!   r   r%   s    r   test_union_typesr*   !   s@    3AJJU|S!Q4199S6S==r   c                      \        R 4      p V P                  \        4      R 4       pV P                  \        4      R 4       pV ! ^4      ^8X  g   Q hV ! R4      R8X  g   Q hR# )r   c                     V ^,           # r   r   r   s   &r   r   )test_dispatcher_as_decorator.<locals>.inc,       1ur   c                     V ^,
          # r   r   r   s   &r   r   r-   0   r.   r   r   r   N)r   r)   r    r!   )r   r   s     r   test_dispatcher_as_decoratorr0   )   sd    3AZZ_  ZZ  Q4199S6S==r   c                  v     ! R  R4      p V ! ^4      pV ! ^.4      pVP                   VP                   8X  g   Q hR# )c                      a  ] tR t^:t o ]! R4      t]P                  ]4      R 4       t]P                  ]	4      R 4       t
RtV tR# )+test_register_instance_method.<locals>.Testr   c                    Wn         R # r   data)selfr6   s   &&r   
_init_list6test_register_instance_method.<locals>.Test._init_list=   s    Ir   c                    V.V n         R # r   r5   )r7   datums   &&r   	_init_obj5test_register_instance_method.<locals>.Test._init_objA   s    DIr   r5   N)__name__
__module____qualname____firstlineno__r   __init__r)   listr8   objectr<   __static_attributes____classdictcell__)__classdict__s   @r   Testr3   :   sK     #C(			4	 	 
!	 
		6	"	  
#	 r   rH   Nr5   )rH   abs      r   test_register_instance_methodrK   8   s8    	  	  	QAaS	A66QVVr   c                  J  a \        R 4      p R pR.oV3R lpV P                  \        \        3WR7       S^ ,          '       d   Q hV P                  \        \        3WR7       S^ ,          '       d   Q hV P                  \        \        3WR7       S^ ,          '       g   Q hR# )r   c                     V # r   r   r   s   &r   r   #test_on_ambiguity.<locals>.identityM   s    AXr   Fc                    < R S^ &   R# )TNr   )
dispatcherambambiguitiess   &&r   on_ambiguity'test_on_ambiguity.<locals>.on_ambiguityQ   s    Ar   rS   N)r   r   rD   r!   )r   r   rS   rR   s      @r   test_on_ambiguityrV   J   s    3A'K EE66
HE@1~~EE65/8E?1~~EE5&/8E?q>>>r   c                  V   a  \        R 4      o \        \        V 3R l4      '       g   Q hR# )r   c                  0   < S P                  R\        4      # )r   r   )r   r   r%   s   r   <lambda>/test_raise_error_on_non_class.<locals>.<lambda>^   s    QUU4%5r   Nr   r	   	TypeErrorr%   s   @r   test_raise_error_on_non_classr]   \   s     3A)56666r   c                     R  p R pR pRp\        RVR7      pVP                  \        \        3V 4       VP                  \        \        3V4       VP                  \        \        3V4       V P
                  P                  4       VP
                  9   g   Q hVP
                  P                  4       VP
                  9   g   Q hVP
                  P                  V P
                  P                  4       4      VP
                  P                  VP
                  P                  4       4      8  g   Q hRVP
                  9   g   Q hW4P
                  9   g   Q hR# )c                    W,           # zDocstring number one r   r   ys   &&r   onetest_docstring.<locals>.onec   	    ur   c                    W,           # zDocstring number two r   ra   s   &&r   twotest_docstring.<locals>.twog   re   r   c                     W,           # r   r   ra   s   &&r   threetest_docstring.<locals>.threek   s	    ur   Doc of the multimethod itselfr   doczobject, objectN)r   r   rD   r    r!   __doc__stripfindrc   rh   rk   
master_docr   s        r   test_docstringru   a   s    1J3J'AEE66
C EE3*cEE5%.% ;;!))+++;;!))+++99>>#++++-.			s{{((*+, , ,qyy((("""r   c                  j   R  p R pR pRp\        RVR7      pVP                  \        \        3V 4       VP                  \        \        3V4       VP                  \        \        3V4       VP                  ^^4      VP                  8X  g   Q hVP                  RR4      VP                  8X  g   Q hR# )	c                    W,           # r`   r   ra   s   &&r   rc   test_help.<locals>.one~   re   r   c                    W,           # rg   r   ra   s   &&r   rh   test_help.<locals>.two   re   r   c                    W,           # )zDocstring number three r   ra   s   &&r   rk   test_help.<locals>.three   re   r   rm   r   rn   r   r(   N)r   r   rD   r    r!   _helprp   rs   s        r   	test_helpr~   }   s     1J3J'AEE66
C EE3*cEE5%.% 771a=CKK'''773---r   c                     R  p R pRp\        RVR7      pVP                  \        \        3V 4       VP                  \        \        3V4       RVP	                  ^^4      9   g   Q hRVP	                  RR4      9   g   Q hR# )	c                    W,           # r`   r   ra   s   &&r   rc   test_source.<locals>.one   re   r   c                    W,
          # rg   r   ra   s   &&r   rh   test_source.<locals>.two   re   r   rm   r   rn   zx + yzx - yr   N)r   r   r    r!   _source)rc   rh   rt   r   s       r   test_sourcer      st     1J3J'AEE3*cEE5%.#aii1o%%%aiiS))))r   c                  V   a  \        R 4      o \        \        V 3R l4      '       g   Q hR# )r   c                  &   < S P                  ^4      # r   )sourcer%   s   r   rY   8test_source_raises_on_missing_function.<locals>.<lambda>   s    QXXa[r   Nr[   r%   s   @r   &test_source_raises_on_missing_functionr      s     3A)01111r   c                  ^  a ^ .oV3R lp \        R4      p\        4        R pVP                  \        \        3V4       VP                  \        \        3V4       S^ .8X  g   Q h\        V R7       S^.8X  g   Q h\        VP                  4      \        \        3\        \        308X  g   Q hR# )r   c                 2   < S^ ;;,          ^,          uu&   R# )r   Nr   )rI   rJ   gs   &&r   rS   1test_halt_method_resolution.<locals>.on_ambiguity   s    	!	r   r   c                      R # r   r   )argss   *r   func)test_halt_method_resolution.<locals>.func   s    r   rU   N)r   r   r   r    rD   r   setordering)rS   r   r   r   s      @r   test_halt_method_resolutionr      s    	
A 	3AO EE3-EE63-8O8,/8O8qzz?V}vsm<<<<r   c                  V   a  \        R 4      o \        \        V 3R l4      '       g   Q hR# )r   c                     < S ! R 4      # hellor   r%   s   r   rY   )test_no_implementations.<locals>.<lambda>   	    qzr   N)r   r	   NotImplementedErrorr%   s   @r   test_no_implementationsr      s!    3A%'9::::r   c                    a \        R 4      oSP                  \        4      SP                  \        4      R 4       4       p S! R4      R8X  g   Q hS! . RO4      . RO8X  g   Q h\	        \
        V3R l4      '       g   Q hV ! R4      R8X  g   Q hR# )r   c                     V R R R1,          # Nr   r   s   &r   rev#test_register_stacking.<locals>.rev   s     2wr   c                     < S ! R 4      # r   r   r%   s   r   rY   (test_register_stacking.<locals>.<lambda>   r   r   r   ollehN)r         )r   r   r   )r   r)   rC   tupler	   r   )r   r   s    @r   test_register_stackingr      s    3AZZZZ   Y<9$$$Y<9$$$%'9::::w<7"""r   c                  T   \        R 4      p V P                  \        4      R 4       pV P                  \        \        4      R 4       p ! R R\        4      pV P	                  \        4      VJ g   Q hV P	                  V4      VJ g   Q hV P	                  \        \        4      VJ g   Q hR# )r   c                     V R R R1,          # r   r   r   s   &r   r   !test_dispatch_method.<locals>.rev   s    2wr   c                     W,           # r   r   ra   s   &&r   r   !test_dispatch_method.<locals>.add   re   r   c                       ] tR t^tRtR# )$test_dispatch_method.<locals>.MyListr   Nr>   r?   r@   rA   rE   r   r   r   MyListr          r   r   N)r   r)   rC   r    r$   )r   r   r   r   s       r   test_dispatch_methodr      s    3AZZ  ZZS   ::ds"""::f$$$::c33&&&r   c                    a \        R 4      oSP                  \        4      R 4       p SP                  \        4      R 4       p S! R4      R8X  g   Q hS! ^4      R8X  g   Q hS! ^4      R8X  g   Q h\	        \
        V3R l4      '       g   Q hR# )r   c                     R # )defaultr   r   s   &r   _test_not_implemented.<locals>._   s    r   c                 6    V ^,          ^ 8X  d   R# \        4       h)r   evenr   r   s   &r   r   r      s    q5A:'))r   r   r   r   c                     < S ! ^^4      # r   r   r%   s   r   rY   &test_not_implemented.<locals>.<lambda>   s    qAwr   N)r   r)   rD   r    r	   r   r   r   s    @r   test_not_implementedr      s    3AZZ  ZZ_* * W:"""Q46>>Q49%7777r   c                     a \        R 4      oSP                  \        4      R 4       p \        \        V3R l4      '       g   Q hR# )r   c                     \        4       hr   r   )rI   s   &r   r   %test_not_implemented_error.<locals>._  s    #%%r   c                     < S ! R 4      # )r   r   r%   s   r   rY   ,test_not_implemented_error.<locals>.<lambda>	  s	    qvr   N)r   r)   r!   r	   r   r   s    @r   test_not_implemented_errorr     s=    3AZZ& & %~6666r   c                  n  aaa \        R 4      o ! R R4      p  ! R RV 4      o ! R RV 4      oSP                  V S3R \        4       SP                  SV 3R \        4       SP                  V S3R	 \        4       SP                  SV 3R
 \        4       \        \        VVV3R l4      '       g   Q hR# )r   c                       ] tR tRtRtR# )3test_ambiguity_register_error_ignore_dup.<locals>.Ai  r   Nr   r   r   r   Ar     r   r   r   c                       ] tR tRtRtR# )3test_ambiguity_register_error_ignore_dup.<locals>.Bi  r   Nr   r   r   r   Br     r   r   r   c                       ] tR tRtRtR# )3test_ambiguity_register_error_ignore_dup.<locals>.Ci  r   Nr   r   r   r   Cr     r   r   r   c                     R # r   r   ra   s   &&r   rY   :test_ambiguity_register_error_ignore_dup.<locals>.<lambda>      dr   c                     R # r   r   ra   s   &&r   rY   r     r   r   c                     R # r   r   ra   s   &&r   rY   r     r   r   c                     R # r   r   ra   s   &&r   rY   r     r   r   c                  *   < S! S ! 4       S! 4       4      # r   r   )r   r   r   s   r   rY   r     s    qac{r   N)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*   r0   rK   rV   r]   ru   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   