
    i	                         S SK Jr  S SKrS SKrS SKr\R
                  SS S:  a  S SKrOS SKrS SKJ	r	   " S S\
5      r " S S	\R                  5      rg)
    )unicode_literalsN   )r      )	SpyAgencyc                   R    \ rS rSrS	S jrS rS
S jr\SS j5       r\S 5       r	Sr
g)	MathClass   c                 8    [        U [        5      (       d   eX-   $ N
isinstancer   selfabargskwargss        M/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/kgb/tests/base.pydo_mathMathClass.do_math       $	****u    c                 8    [        U [        5      (       d   eX-   $ r   r   )r   r   r   s      r   do_math_posMathClass.do_math_pos   r   r   c                 8    [        U [        5      (       d   eX-   $ r   r   r   s        r   do_math_mixedMathClass.do_math_mixed   r   r   c                 8    [        U [        5      (       d   eX-  $ r   
issubclassr   )clsr   r   r   r   s        r   class_do_mathMathClass.class_do_math       #y))))ur   c                 8    [        U [        5      (       d   eX-  $ r   r    )r"   r   r   s      r   class_do_math_posMathClass.class_do_math_pos%   r%   r    N)   r   )r   )r      )__name__
__module____qualname____firstlineno__r   r   r   classmethodr#   r'   __static_attributes__r)   r   r   r   r      s9    


  
  r   r   c                   X    \ rS rSrSr\R                  " S5      rS rS r	S r
S
S jrSrg	)TestCase,   z"Base class for test cases for kgb.z\s+c                 L    [        5       U l        [        R                  U l        g r   )r   agencyr   r#   orig_class_do_mathr   s    r   setUpTestCase.setUp1   s    k"+"9"9r   c                 b    U R                   [        l        U R                  R	                  5         g r   )r7   r   r#   r6   	unspy_allr8   s    r   tearDownTestCase.tearDown5   s     "&"9"9	r   c                     U R                   nUb?  UR                  SS5      S   nU R                  R                  SU5      R	                  5       nU$ )zReturn the description of the current test.

This changes the default behavior to replace all newlines with spaces,
allowing a test description to span lines. It should still be kept
short, though.

Returns:
    bytes:
    The description of the test.
z

r*   r    )_testMethodDocsplitws_resubstrip)r   docs     r   shortDescriptionTestCase.shortDescription9   sK     !!?))FA&q)C**..c*002C
r   c                 N    0 n[        [        R                  " U5      U5        X2   $ )a  Return a new function, created by the supplied Python code.

This is used to create functions with signatures that depend on a
specific version of Python, and would generate syntax errors on
earlier versions.

Args:
    code_str (unicode):
        The Python code used to create the function.

    func_name (unicode, optional):
        The expected name of the function.

Returns:
    callable:
    The resulting function.

Raises:
    Exception:
        There was an error with the supplied code.
)exectextwrapdedent)r   code_str	func_namescopes       r   	make_funcTestCase.make_funcL   s%    , X__X&.r   )r6   r7   N)func)r,   r-   r.   r/   __doc__recompilerC   r9   r=   rG   rP   r1   r)   r   r   r3   r3   ,   s'    ,JJvE: & r   r3   )
__future__r   rT   sysrK   version_infounittest	unittest2
kgb.agencyr   objectr   r3   r)   r   r   <module>r]      sM    ' 	 
 BQ&     :9 x   9 r   