
    \h/                       S SK JrJrJrJrJrJrJrJrJ	r	J
r
  S SKJrJrJrJrJr  S SKJrJrJr  S SKJrJr  S SKJrJrJrJr  S SKJr  S SKJ r J!r!  S SK"J#r#  S S	K$J%r%J&r&J'r'J(r(J)r)J*r*  S S
K+J,r,  S SK-J.r.  S SK/J0r0J1r1J2r2  S SK3J4r4  S SK5J6r6J7r7J8r8J9r9  S SK:J;r;J<r<  S SK=J>r>  S SK?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrG  S SKHJIrIJJrJJKrKJLrLJMrM  S SKNJOrOJPrP  S SKQJRrRJSrSJTrTJUrUJVrV  S SKWrWS rXS rYS rZS r[S r\S r]S r^S r_S r`S raS  rbS! rcS" rdS# reS$ rfS% rgS& rhS' riS( rjS) rkS* rl\RS+ 5       rm\RS, 5       rnS- ro\VS. 5       rpS/ rq\RS0 5       rrS1 rsS2 rt\VS3 5       ruS4 rv\VS5 5       rwS6 rxS7 ryS8 rzS9 r{S: r|\RS; 5       r}S< r~S= r\VS> 5       rS? rS@ rSA rSB r\VSC 5       rSD r\VSE 5       rSF rSG rSH rSI rSJ rSK rSL rSM rSN rSO rSP r\SSQ 5       rSR rSS rST rSU rSV rSW rSX r\RSY 5       rSZ rS[ rS\ rS] rS^ rS_ rS` rSa rSb rg)c    )
twxyznkmpi)askAssumptionsContextQregister_handlerremove_handler)assumingglobal_assumptions	Predicate)CNFLiteral)single_fact_lookupget_known_factsgenerate_known_facts_dictget_known_facts_keys)
AskHandler)get_all_known_factsget_known_facts_dict)Add)IIntegerRationaloozoopi)S)Pow)StrsymbolsSymbol)	factorial)Absimresign)explog)sqrt)acosacotasinatancoscotsintan)
EquivalentImpliesXorAndto_cnf)MatrixSparseMatrix)XFAILslowraiseswarns_deprecated_sympy_both_exp_powNc                     Sn [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   eg )N   TFr   r   commutativeintegerrationalrealcomplex
irrational	imaginarypositivenegativeevenoddfiniteprime	composite	hermitianantihermitianr   s    Z/var/www/auris/envauris/lib/python3.13/site-packages/sympy/assumptions/tests/test_query.py
test_int_1r[      s   	Aq}}Q D(((qyy|$$$qzz!}%%%qvvay>T!!!qyy|$$$q||A5(((q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=D   qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++    c                     Sn [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   eg )N   TFrH   rY   s    rZ   test_int_11r_   1   s   
Aq}}Q D(((qyy|$$$qzz!}%%%qvvay>T!!!qyy|$$$q||A5(((q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=D   qxx{t###qwwqz?d"""q{{1~%'''q{{1~$&&&qq!"e+++r\   c                     Sn [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   eg )N   TFrH   rY   s    rZ   test_int_12rb   E   s   
Aq}}Q D(((qyy|$$$qzz!}%%%qvvay>T!!!qyy|$$$q||A5(((q{{1~%'''qzz!}%%%qzz!}&&&qvvay>T!!!quuQx=E!!!qxx{t###qwwqz?e###q{{1~$&&&q{{1~$&&&qq!"e+++r\   c                  H	   Sn [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   eSn [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      b   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R                  " [$        R&                  5      5      b   eg )N      ?TFga+e@)r   r   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   mathr$   rY   s    rZ   test_float_1rf   Y   sv   Aq}}Q D(((qyy|$$$qzz!}%%%qvvay>T!!!qyy|$$$q||A'''q{{1~%'''qzz!}%%%qzz!}&&&qvvay>!!!quuQx=   qxx{t###qwwqz?"""q{{1~&&&q{{1~$&&&qq!"e+++Aq}}Q D(((qyy|%%%qzz!}%%%qvvay>T!!!qyy|$$$q||A'''q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++ qzz$''"#+++r\   c                     [        S5      n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   eg )Nr   FT)r    r   r   nonzerozerorI   rJ   rK   rL   rM   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   s    rZ   test_zero_0rj      s   
Aqyy|%%%qvvay>T!!!q}}Q D(((qyy|$$$qzz!}%%%qvvay>T!!!qyy|$$$q{{1~%'''qzz!}&&&qzz!}&&&qvvay>T!!!quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"d***r\   c                  *   [        S5      n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   e[        [        R(                  " U 5      5      SL d   eg )NTF)r    r   r   rh   ri   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   s    rZ   test_negativeonerm      s   Aqyy|$$$qvvay>U"""q}}Q D(((qyy|$$$qzz!}%%%qvvay>T!!!qyy|$$$q||A5(((q{{1~%'''qzz!}&&&qzz!}%%%qvvay>U"""quuQx=D   qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++r\   c                     [        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R
                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                   " [        5      5      SL d   e[        [        R"                  " [        5      5      SL d   e[        [        R$                  " [        5      5      SL d   e[        [        R&                  " [        5      5      SL d   e[        [        R(                  " [        5      5      SL d   e[        [        R*                  " [        5      5      SL d   e[        [        R,                  " [        5      5      SL d   e[        [        R.                  " [        5      5      SL d   e[        [        R0                  " [        5      5      SL d   eg NTF)r   r   rI   r"   rJ   rK   	algebraicrL   extended_realrM   rN   rO   rP   extended_positiverQ   rR   rS   rT   infiniterU   rV   rW   rX   positive_infinitenegative_infinite r\   rZ   test_infinityrw      s^   q}}R !T)))qyy}&&&qzz"~%'''q{{25(((qvvbz?e###qr"#t+++qyy}&&&q||B E)))q{{25(((qzz"~%'''q""2&'4///qzz"~%'''qvvbz?e###quuRy>U"""qxx|%%%qzz"~$&&&qwwr{u$$$q{{25(((q{{25(((qr"#u,,,q""2&'4///q""2&'5000r\   c                  p   [         R                  n [        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " [(        5      5      SL d   e[        [        R*                  " U 5      5      SL d   e[        [        R,                  " U 5      5      SL d   e[        [        R.                  " U 5      5      SL d   e[        [        R0                  " U 5      5      SL d   e[        [        R2                  " [(        * 5      5      SL d   e[        [        R4                  " [(        * 5      5      SL d   eg ro   )r%   NegativeInfinityr   r   rI   rJ   rK   rp   rL   rq   rM   rN   rO   rP   rQ   extended_negativerR   rS   rT   rs   r"   rU   rV   rW   rX   rt   ru   )mms    rZ   test_neg_infinityr|      sm   	
		Bq}}R !T)))qyy}&&&qzz"~%'''q{{25(((qvvbz?e###qr"#t+++qyy}&&&q||B E)))q{{25(((qzz"~%'''qzz"~%'''q""2&'4///qvvbz?e###quuRy>U"""qxx|%%%qzz"~$&&&qwwr{u$$$q{{25(((q{{25(((qr"#u,,,q""B3'(E111q""B3'(D000r\   c                  4   [        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R
                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      5      SL d   e[        [        R                   " [        5      5      SL d   e[        [        R"                  " [        5      5      SL d   e[        [        R$                  " [        5      5      SL d   e[        [        R&                  " [        5      5      SL d   e[        [        R(                  " [        5      5      SL d   e[        [        R*                  " [        5      5      SL d   e[        [        R,                  " [        5      5      SL d   e[        [        R.                  " [        5      5      SL d   e[        [        R0                  " [        5      5      SL d   e[        [        R2                  " [        5      5      SL d   eg ro   )r   r   rI   r#   rJ   rK   rp   rL   rq   rM   rN   rO   rP   rQ   ri   rh   rR   rS   rT   rs   rU   rV   rW   rX   rt   ru   rv   r\   rZ   test_complex_infinityr~      s|   q}}S!"d***qyy~%'''qzz#5(((q{{3 E)))qvvc{u$$$qs#$---qyy~%'''q||C !U***q{{3 E)))qzz#5(((qzz#5(((qvvc{u$$$qyy~%'''qvvc{u$$$quuSz?e###qxx}&&&qzz#4'''qwws|%%%q{{3 E)))q{{3 E)))qs#$---q""3'(E111q""3'(E111r\   c                  x   [         R                  n [        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                   " U 5      5      b   e[        [        R"                  " U 5      5      b   e[        [        R$                  " U 5      5      b   e[        [        R&                  " U 5      5      b   e[        [        R(                  " U 5      5      b   e[        [        R*                  " U 5      5      b   e[        [        R,                  " U 5      5      b   e[        [        R.                  " U 5      5      b   eg NT)r%   NaNr   r   rI   rJ   rK   rp   rL   rq   rM   rN   rO   rP   rh   ri   rR   rS   rT   rs   rU   rV   rW   rX   nans    rZ   test_nanr      s   
%%Cq}}S!"d***qyy~&&&qzz#'''q{{3 (((qvvc{###qs#$,,,qyy~&&&q||C !)))q{{3 (((qzz#'''qyy~&&&qvvc{###qvvc{###quuSz?"""qxx}%%%qzz#'''qwws|$$$q{{3 (((q{{3 (((qs#$,,,r\   c                  4	   [        SS5      n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        SS5      n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        SS5      n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        SS5      n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        SS5      n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        SS5      n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        S	S5      n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        S	S5      n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   eg )
N      TFrG      rl   )r!   r   r   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   )rs    rZ   test_Rational_numberr     s   AAq}}Q D(((qyy|%%%qzz!}%%%qvvay>T!!!qyy|$$$q||A5(((q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++AAqzz!}%%%qzz!}&&&AAqzz!}&&&qzz!}%%%AAqzz!}%%%qzz!}&&&QAqzz!}&&&qzz!}%%%QAqzz!}&&&qzz!}%%%QAqzz!}%%%qzz!}&&&QAqzz!}&&&qzz!}%%%r\   c                     [        S5      n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   eg )N   TF)r1   r   r   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   s    rZ   test_sqrt_2r   B  s   QAq}}Q D(((qyy|%%%qzz!}&&&qvvay>T!!!qyy|$$$q||A4'''q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++r\   c                     [         R                  n [        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   e[        [        R(                  " U 5      5      SL d   e[         R                  S-   n [        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   e[        [        R(                  " U 5      5      SL d   eS[         R                  -  n [        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   e[        [        R(                  " U 5      5      SL d   e[         R                  S-  n [        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   e[        [        R(                  " U 5      5      SL d   eS[         R                  -   S-  n [        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   e[        [        R(                  " U 5      5      SL d   eg NTFrG   r   )r%   Pir   r   rI   rJ   rK   rp   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   s    rZ   test_pir   V  s.	   	Aq}}Q D(((qyy|%%%qzz!}&&&q{{1~%'''qvvay>T!!!qyy|$$$q||A4'''q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++	qAq}}Q D(((qyy|%%%qzz!}&&&q{{1~%'''qvvay>T!!!qyy|$$$q||A4'''q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++	!$$Aq}}Q D(((qyy|%%%qzz!}&&&q{{1~%'''qvvay>T!!!qyy|$$$q||A4'''q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++		Aq}}Q D(((qyy|%%%qzz!}&&&q{{1~%'''qvvay>T!!!qyy|$$$q||A4'''q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++	
QTTaAq}}Q D(((qyy|%%%qzz!}&&&q{{1~&&&qvvay>T!!!qyy|$$$q||A4'''q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++r\   c                     [         R                  n [        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   e[        [        R(                  " U 5      5      SL d   eg ro   )r%   Exp1r   r   rI   rJ   rK   rp   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   s    rZ   test_Er     s   	Aq}}Q D(((qyy|%%%qzz!}&&&q{{1~%'''qvvay>T!!!qyy|$$$q||A4'''q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++r\   c                     [         R                  n [        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   e[        [        R(                  " U 5      5      SL d   eg ro   )r%   GoldenRatior   r   rI   rJ   rK   rp   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   s    rZ   test_GoldenRatior     s   	Aq}}Q D(((qyy|%%%qzz!}&&&q{{1~$&&&qvvay>T!!!qyy|$$$q||A4'''q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++r\   c                     [         R                  n [        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   e[        [        R(                  " U 5      5      SL d   eg ro   )r%   TribonacciConstantr   r   rI   rJ   rK   rp   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   s    rZ   test_TribonacciConstantr     s   	Aq}}Q D(((qyy|%%%qzz!}&&&q{{1~$&&&qvvay>T!!!qyy|$$$q||A4'''q{{1~%'''qzz!}%%%qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~$&&&qq!"e+++r\   c                  |   [         n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   eS[         -   n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   e[         S[         -   -  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                   " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        [        R&                  " U 5      5      SL d   e[         [         -  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[         * [         -  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   eS[         -  [         -  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   eS[         -  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   eS[         -  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   eS[         -   [         -  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[         [         S-   -  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[         [         S-   -  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[         S-  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[         S-  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   eS[         -  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[         S-  n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   eg )NTFrG   r   rl   r   r   )r   r   r   rI   rJ   rK   rp   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   s    rZ   test_Ir     sr   	Aq}}Q D(((qyy|%%%qzz!}&&&q{{1~$&&&qvvay>U"""qyy|$$$q||A5(((q{{1~$&&&qzz!}&&&qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~%'''qq!"d***	AAq}}Q D(((qyy|%%%qzz!}&&&q{{1~$&&&qvvay>U"""qyy|$$$q||A5(((q{{1~%'''qzz!}&&&qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~%'''qq!"e+++	1q5	Aq}}Q D(((qyy|%%%qzz!}&&&q{{1~$&&&qvvay>U"""qyy|$$$q||A5(((q{{1~%'''qzz!}&&&qzz!}&&&qvvay>U"""quuQx=E!!!qxx{t###qwwqz?e###q{{1~%'''q{{1~%'''qq!"e+++	AAq{{1~%'''qvvay>T!!!
q	Aq{{1~%'''qvvay>T!!!	
1
Aq{{1~%'''qvvay>U"""	
aAq{{1~%'''qvvay>T!!!	q	Aq{{1~%'''qvvay>T!!!	
1
Aq{{1~%'''qvvay>U"""	
ac
Aq{{1~$&&&qvvay>U"""	
ac
Aq{{1~%'''qvvay>T!!!	
aAq{{1~%'''qvvay>T!!!	
aAq{{1~$&&&qvvay>U"""	
aAq{{1~%'''qvvay>U"""	
aAq{{1~%'''qvvay>T!!!r\   c                     [        S5      u  pnX-   nUR                  u  p[        [        R                  " U5      [        R
                  " U5      5      b   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      [        R                  " U 5      5      SL d   e[        [        R                  " U 5      [        R                  " U5      5      b   e[        [        R                  " U 5      [        R                  " U 5      5      SL d   e[        [        R                  " U 5      [        R                  " U 5      5      b   e[        [        R                  " U S-   5      5      b   e[        [        R                  " U S-   5      [        R                  " U 5      5      SL d   eX-   nUR                  u  p[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U 5      ) -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U 5      ) -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U 5      ) -  [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U 5      ) -  [        R                  " U5      ) -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      5      b   e[        [        R                  " U5      [        R                  " U 5      5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U 5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U 5      ) -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R
                  " U 5      [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R
                  " U 5      [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R
                  " U 5      [        R                  " U5      ) -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U 5      ) -  [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  [        R                  " U 5      ) -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U5      ) 5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R
                  " U5      5      b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      5      b   e[        [        R                  " U5      [        R                  " U 5      5      b   e[        [        R                  " U5      [        R                  " U5      5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  5       b   e[        S5      u  pnX-   U-   nUR                  u  pn[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R
                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R
                  " U5      -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R
                  " U5      -  [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R
                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R
                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) 5      b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R
                  " U 5      [        R
                  " U5      -  [        R
                  " U5      -  5      SL d   e[        [        R                  " U5      [        R
                  " U 5      [        R
                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R
                  " U 5      [        R
                  " U5      -  5       b   e[        [        R                  " U5      [        R
                  " U 5      [        R
                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R
                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R
                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R
                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R
                  " U 5      5      b   e[        [        R                  " U5      [        R
                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R
                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      5      b   e[        [        R                  " U5      [        R                  " U5      5      b   e[        [        R                  " U5      [        R                  " U5      [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " SU -  5      5      b   e[        [        R                  " SU -  5      [        R                  " U 5      5      SL d   e[        S5      u  pnX-  nUR                  u  p[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U 5      ) -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      5      b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      ) 5      b   e[        [        R                  " U5      [        R                  " U5      5      b   e[        [        R                  " U5      [        R                  " U5      ) 5      b   e[        [        R                  " U5      5      b   eX-  U-  nUR                  u  pn[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U 5      ) -  [        R                  " U5      -  [        R                  " U5      ) -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U 5      ) -  [        R                  " U5      ) -  [        R                  " U5      -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U 5      ) -  [        R                  " U5      ) -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  5      b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U 5      5      b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  [        R                  " U5      ) -  [        R                  " U5      -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U 5      ) -  [        R                  " U5      -  [        R                  " U5      ) -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  5      b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  [        R                  " U5      -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  [        R                  " U5      ) -  5      SL d   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  5      b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U 5      ) 5      b   e[        [        R                  " U5      [        R                  " U5      [        R                  " U5      -  5      b   e[        [        R                  " U5      [        R                  " U5      [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U5      5      b   e[        [        R                  " U5      [        R                  " U5      ) [        R                  " U5      -  5      b   e[        [        R                  " U5      [        R                  " U5      ) [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U5      ) 5      b   e[        [        R                  " U5      [        R                  " U5      5      b   e[        [        R                  " U5      [        R                  " U5      ) 5      b   e[        [        R                  " U5      [        R                  " U5      ) [        R                  " U 5      -  [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      -  [        R                  " U5      ) -  [        R                  " U5      -  5      SL d   e[        S5      u  pn[        [        R                  " U S-  5      5      b   e[        [        R                  " SU -  5      5      b   e[        [        R                  " SU -  5      [        R                  " U 5      5      SL d   e[        [        R                  " X -  5      5      b   e[        [        R                  " [        R                   U -  5      5      b   e[        [        R                  " [        R                   U -  5      [        R                  " U 5      5      SL d   e[        [        R                  " [        R                   U -  5      [        R                  " U 5      5      b   e[        [        R                  " SU -  5      [        R                  " U 5      5      SL d   e[        [        R                  " [#        U 5      5      5      b   e[        [        R                  " SU -  5      [        R                  " U 5      ) 5      SL d   e[        [        R                  " U S-  5      [        R                  " U 5      ) 5      SL d   e[        [        R                  " X-  5      [        R$                  " U 5      [        R$                  " U5      -  5      b   e[        [        R                  " X-  5      [        R$                  " U 5      [        R                  " U5      -  5      b   e[        [        R                  " X-  5      [        R                  " U 5      [        R                  " U5      -  5      SL d   e[        [        R                  " X-  5      [        R$                  " U 5      [        R                  " U5      -  5      SL d   e[        [        R                  " X-  5      [        R&                  " U 5      [        R$                  " U5      -  5      SL d   e[        [        R                  " X-  5      [        R&                  " U 5      [        R                  " U5      -  5      SL d   e[        [        R                  " X-  5      [        R                  " U 5      [        R                  " U5      -  5      SL d   e[        [        R                  " [)        U 5      5      5      SL d   e[        [        R                  " [)        U 5      5      [        R                  " U 5      ) 5      SL d   e[        [        R                  " [+        U 5      5      5      b   e[        [        R                  " [+        U 5      5      [        R                  " U 5      5      b   e[        [        R                  " [+        U 5      5      [        R                  " U 5      ) 5      SL d   e[        [        R                  " [+        U 5      5      [        R,                  " U 5      5      SL d   e[        [        R                  " [+        U 5      5      [        R                  " U 5      5      SL d   e[        [        R                  " [/        U 5      5      5      b   e[        [        R                  " [/        U 5      5      [        R                  " U 5      5      SL d   e[        [        R                  " [/        S5      5      5      SL d   e[        [        R                  " [1        U 5      5      5      SL d   e[        [        R                  " [1        U 5      5      [        R                  " U 5      ) 5      SL d   e[        [        R                  " [3        U 5      5      5      SL d   e[        [        R                  " [3        U 5      5      [        R                  " U 5      ) 5      SL d   e[        [        R                  " S[1        U 5      -  5      5      SL d   e[        [        R                  " [1        U 5      S-  5      5      SL d   e[        [        R                  " [3        U 5      S-  5      5      SL d   e[        [        R                  " [3        U 5      [1        U 5      -   5      5      SL d   eg )Nzx,y,zTrG   Fr   )r(   argsr   r   rT   rt   rM   rq   rP   rr   rQ   ru   rz   ri   extended_nonzeror%   Halfr1   rL   rh   r.   r0   rs   r/   r8   r6   r   r   r   as       rZ   test_boundedr   `  sMK   gGA!	A66DAqxx{A//23;;;qxx{###qxx{AHHQK(D000qxx{AHHQK(000qxx{AIIaL)T111qxx{AOOA./777qxxA'''qxxA,444	A66DAqxx{AHHQK!((1+56$>>>qxx{AJJqMAHHQK78D@@@qxx{AHHQK!**Q-78D@@@qxx{AJJqMAJJqM9:dBBBqxx{AJJqMAHHQK7::a=. !" " "qxx{AHHQK1::a=.8
**Q-  ! ! !qxx{AHHQK!((1+5AF::a=. !" " " qxx{AHHQK188A;,675@@@qxx{AJJqMQXXa[L89UBBBqxx{AHHQK


a
 ! "%*+ + +qxx{AJJqM


a
 ! "%*+ + +qxx{AJJqMQXXa[L8::a=. "# # #qxx{AHHQK1::a=.8


a
 ! "%*+ + +qxx{AHHQK1::a=.8AHHQK<G::a=. "# # # qxx{AHHQK(000qxx{AJJqM*222qxx{AHHQK


a
 ! "%)* * *qxx{AJJqM


a
 ! "%)* * *qxx{AJJqMQZZ]N:;CCCqxx{AHHQK1::a=.8


a
 ! "%)* * *qxx{AHHQK1::a=.8::a=. !" " " qxx{QXXa[LAHHQK<78@@@qxx{A//288A;,      qxx{QXXa[L


a
 ! "%)* * *qxx{A//2


a
 ! "%*+ + +qxx{A//2ahhqk\Aq!
!" #&*+ + +qxx{QXXa[LA,?,?,B+BB


a
 ! "%)* * *qxx{QXXa[LAHHQK<7q!
!"%&%8%8%;$;< =@EF F F qxx{QXXa[L)111qxx{A//288A;,      qxx{A//23;;;qxx{A//2


a
 ! "%*+ + +qxx{A//288A;,--a001 259: : :qxx{Q0033


a
 ! "%)* * *qxx{Q0033qxx{lBq!
!" #&+, , , qxx{###qxx{A//23;;;qxx{A//23;;;qxx{A//2


a
 ! "%)* * *qxx{A//2q!
!" #&*+ + +qxx{Q0033


a
 ! "%)* * *qxx{Q0033q!
!" #&*+ + + gGA!		AffGA!qxx{AJJqMAJJqM9
**Q-  ! ! !qxx{AJJqMAJJqM9
((1+   qxx{AJJqMAJJqM9
**Q-  ! ! !qxx{AJJqMAJJqM9


a
 ! "%*+ + +qxx{AJJqMAJJqM988A;,  ! ! !qxx{AJJqMAJJqM9


a
 ! "%*+ + +qxx{AJJqMAJJqM9


a
 ! "%)* * *qxx{AJJqMAJJqM9:BBBqxx{AJJqMAJJqM9


a
 ! "%)* * *qxx{AJJqMAHHQK7
((1+   qxx{AJJqMAHHQK7
**Q-  ! ! !qxx{AJJqMAHHQK7


a
 ! "%*+ + +qxx{AJJqMAHHQK788A;,  ! ! !qxx{AJJqMAHHQK7


a
 ! "%*+ + +qxx{AJJqMAHHQK7


a
 ! "%)* * *qxx{AJJqMAHHQK78@@@qxx{AJJqMAHHQK7


a
 ! "%)* * *qxx{AJJqMAJJqM9
**Q-  ! ! !qxx{AJJqMAJJqM9


a
 ! "%*+ + +qxx{AJJqMAJJqM988A;,  ! ! !qxx{AJJqMAJJqM9


a
 ! "%*+ + +qxx{AJJqMAJJqM9


a
 ! "%)* * *qxx{AJJqMA,?,?,BB
((1+   qxx{AJJqMAJJqM9


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%*+ + +qxx{AJJqMA,?,?,BB88A;,      qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%*+ + +qxx{AJJqM


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{AJJqMQXXa[L888A;,      qxx{AJJqMQXXa[L8


a
 ! "%)* * *qxx{AJJqMQXXa[L8


a
 ! "%)* * *qxx{AJJqMQXXa[L89AAAqxx{AJJqMQXXa[L8


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%*+ + +qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{AJJqM	
		Q	  !$() ) )qxx{AJJqMA,?,?,BB


a
 ! "%*+ + +qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{AJJqM


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{AJJqM*222qxx{AJJqM


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{AHHQK!((1+5
((1+   qxx{AHHQK!((1+5
**Q-  ! ! !qxx{AHHQK!((1+5


a
 ! "%*+ + +qxx{AHHQK!((1+588A;,  ! ! !qxx{AHHQK!((1+5


a
 ! "%*+ + +qxx{AHHQK!((1+5


a
 ! "%)* * *qxx{AHHQK!((1+56>>>qxx{AHHQK!((1+5


a
 ! "%)* * *qxx{AHHQK!**Q-7
**Q-  ! ! !qxx{AHHQK!**Q-7


a
 ! "%*+ + +qxx{AHHQK!**Q-788A;,  ! ! !qxx{AHHQK!**Q-7


a
 ! "%*+ + +qxx{AHHQK!**Q-7


a
 ! "%)* * *qxx{AHHQK!**Q-78@@@qxx{AHHQK!**Q-7


a
 ! "%)* * *qxx{AHHQK!*=*=a*@@


a
 ! "%*+ + +qxx{AHHQK!*=*=a*@@88A;,      qxx{AHHQK!*=*=a*@@


a
 ! "%)* * *qxx{AHHQK!*=*=a*@@


a
 ! "%*+ + +qxx{AHHQK


a
 ! "%)* * *qxx{AHHQK!*=*=a*@@


a
 ! "%)* * *qxx{AHHQK188A;,688A;,      qxx{AHHQK188A;,6


a
 ! "%)* * *qxx{AHHQK188A;,6


a
 ! "%)* * *qxx{AHHQK188A;,67???qxx{AHHQK188A;,6


a
 ! "%)* * *qxx{AHHQK!*=*=a*@@


a
 ! "%*+ + +qxx{AHHQK!*=*=a*@@


a
 ! "%)* * *qxx{AHHQK


a
 ! "%)* * *qxx{AHHQK!*=*=a*@@


a
 ! "%*+ + +qxx{AHHQK!*=*=a*@@


a
 ! "%)* * *qxx{AHHQK


a
 ! "%)* * *qxx{AHHQK!*=*=a*@@


a
 ! "%)* * *qxx{AHHQK(000qxx{AHHQK


a
 ! "%)* * *qxx{AHHQK!*=*=a*@@


a
 ! "%)* * *qxx{AJJqMAJJqM9
**Q-  ! ! !qxx{AJJqMAJJqM9


a
 ! "%*+ + +qxx{AJJqMAJJqM988A;,  ! ! !qxx{AJJqMAJJqM9


a
 ! "%*+ + +qxx{AJJqMAJJqM9


a
 ! "%)* * *qxx{AJJqMAJJqM9:BBBqxx{AJJqMAJJqM9


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%*+ + +qxx{AJJqMA,?,?,BB88A;,      qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%*+ + +qxx{AJJqM


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{AJJqMQXXa[L888A;,      qxx{AJJqMQXXa[L8


a
 ! "%)* * *qxx{AJJqMQXXa[L8


a
 ! "%)* * *qxx{AJJqMQXXa[L89AAAqxx{AJJqMQXXa[L8


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%*+ + +qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{AJJqM


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%*+ + +qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{AJJqM


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{AJJqM*222qxx{AJJqM


a
 ! "%)* * *qxx{AJJqMA,?,?,BB


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>CD D Dqxx{A//2


a
 !$%HHQK<0 1489 9 9qxx{A//2


a
 !"#"5"5a"89 :=AB B Bqxx{A//2


a
 !#$#6#6q#9: ;>CD D Dqxx{A//2


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{A//288A;,((1+& '*./ / /qxx{A//288A;,,,Q/0 1489 9 9qxx{A//288A;,,,Q/0 1489 9 9qxx{A//288A;,      qxx{A//288A;,,,Q/0 1489 9 9qxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{A//2


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{A//2


a
 !#$#6#6q#9: ;>CD D Dqxx{A//2


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{A//23;;;qxx{A//2


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{QXXa[LAHHQK<788A;,      qxx{QXXa[L1+>+>q+AA88A;,      qxx{QXXa[LAHHQK<7


a
 ! "%)* * *qxx{QXXa[LAHHQK<78@@@qxx{QXXa[LAHHQK<7


a
 ! "%)* * *qxx{QXXa[L1+>+>q+AA


a
 ! "%)* * *qxx{QXXa[L1+>+>q+AA


a
 ! "%)* * *qxx{QXXa[L


a
 ! "%)* * *qxx{QXXa[L1+>+>q+AA


a
 ! "%)* * *qxx{QXXa[L1+>+>q+AA


a
 ! "%)* * *qxx{QXXa[L


a
 ! "%)* * *qxx{QXXa[L1+>+>q+AA


a
 ! "%)* * *qxx{QXXa[L)111qxx{QXXa[L


a
 ! "%)* * *qxx{QXXa[L1+>+>q+AA


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>CD D Dqxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{A//2


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>CD D Dqxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{A//2


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{A//23;;;qxx{A//2


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>CD D Dqxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{A//2


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{A//23;;;qxx{A//2


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>BC C Cqxx{###qxx{A//23;;;qxx{A//2


a
 ! "%)* * *qxx{A//2


a
 !#$#6#6q#9: ;>BC C C qxx!}%%%qxx!}ahhqk*d222gGA!	A66DAqxx{AHHQK!((1+56$>>>qxx{AHHQK166!9*4|CDMMMqxx{AHHQK(000qxx{QXXa[L188A;6
BCuLLLqxx{QXXa[LAHHQK<78EAAAqxx{QXXa[L)111qxx{AHHQK(000qxx{QXXa[L)111qxx{###	AAffGA!qxx{AHHQK!((1+5
((1+   qxx{AHHQK166!9*4qxx{B66!9*|$ %(-. . .qxx{AHHQK!((1+56>>>qxx{AHHQK166!9*4|C
((1+
# $',- - -qxx{AHHQK166!9*4|C88A;,  ! ! !qxx{AHHQK188A;,67???qxx{AHHQK!((1+56>>>qxx{AHHQK188A;,67???qxx{AHHQK(000qxx{QXXa[L188A;6!&&)C
((1+
# $',- - -qxx{QXXa[LAFF1I:5C66!9*|$ %(-. . .qxx{QXXa[L188A;67???qxx{QXXa[LAHHQK<7
((1+
# $',- - -qxx{QXXa[LAHHQK<788A;,  ! ! !qxx{QXXa[LAHHQK<78@@@qxx{QXXa[L188A;67???qxx{QXXa[LAHHQK<78@@@qxx{QXXa[L)111qxx{AHHQK!((1+56>>>qxx{AHHQK188A;,67???qxx{AHHQK(000qxx{QXXa[L188A;67???qxx{QXXa[LAHHQK<78@@@qxx{QXXa[L)111qxx{AHHQK(000qxx{QXXa[L)111qxx{QXXa[L1+=+=a+@@


Q
 "#"4"4Q"78 9<@A A Aqxx{A..q1QXXa[L@


Q
 #$88A;,/


Q
  !$)* * * gGA!qxx1~&&&qxx1~&&&qxx1~qxx{+t333qxx~&&&qxx!$%---qxx!$a&9&9!&<=EEEqxx!$a&9&9!&<=EEEqxx1~q22156$>>>qxxQ !)))qxx1~|,555qxx1~|,555 qxx~qvvay166!945===qxx~qvvay1::a=89AAAqxx~qvvay1::a=89UBBBqxx~qvvay1::a=89TAAAqxx~qyy|affQi78D@@@qxx~qyy|ajjm;<DDDqxx~qvvay1::a=89TAAA qxxQ !T)))qxxQ 188A;,/4777 qxxA (((qxxA!-555qxxA!&&),444qxxAA/5888qxxA+u444qxxA (((qxxA!-555qxxA D((( qxxA D(((qxxA!((1+.$666qxxA D(((qxxA!((1+.$666qxx#a&!"d***qxxA	"#t+++qxxA	"#t+++qxxAQ()T111r\   c                  >   [        [        R                  " [        [        -  5      5      SL d   e[        [        R                  " S[        [        -  -   5      5      SL d   e[        [        R                  " S[        [        -  -  5      5      SL d   e[        [        R                  " [        * [        -  5      5      SL d   e[        [        R                  " S[
        -   5      5      SL d   e[        [        R                  " [        [
        -  5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      ) -  5      SL d   e[        [        R                  " [        [        -  [        [        -  -
  5      5      b   e[        [        R                  " [        [        -  [        -  5      5      b   e[        [        R                  " S[        -  5      [        R                  " [        5      [        R                  " [        5      ) -  5      SL d   e[        [        R                  " S[        [        -  -  5      5      SL d   eg )NTrG   r   F)
r   r   rs   r   r"   r#   r   r   rT   ri   rv   r\   rZ   test_unboundedr   _  s   qzz!b&!"d***qzz!ad(#$,,,qzz!q2v,'(D000qzz1"r'"#t+++qzz!c'"#t+++qzz!c'"#t+++qzz!a% !**Q-!((1+"=
"JKtSSSqzz!b&1r6/*+333qzz!a%"*%&...qzz!a% !((1+
":;uDDDqzz!q2v,'(E111r\   c                      [        [        R                  " [        5      [        R                  " [        5      [        R
                  " [        5      -  [        R                  " [        5      ) -  5      b   eg N)r   r   rV   r   rJ   rP   rU   rv   r\   rZ   test_issue_27441r   m  sA    q{{1~qyy|ajjm;qwwqzkIJRRRr\   c                  L   [        S5      u  pnX-  n[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  5      b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  5      b   eX-  U-  n[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      [        R                  " U5      ) -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  [        R                  " U5      -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      -  [        R                  " U5      ) -  5       b   e[        [        R                  " U5      [        R                  " U 5      ) [        R                  " U5      ) -  [        R                  " U5      -  5       b   eg )Nzx y z)r(   r   r   rT   r   s       rZ   test_issue_27447r   r  sZ   GEA	Aqxx{AHHQKAHHQK<78@@@qxx{QXXa[LAHHQK78@@@	AAqxx{AHHQK!((1+588A;,      qxx{AHHQK188A;,6
((1+      qxx{AHHQK188A;,688A;,      qxx{QXXa[L188A;6
((1+   qxx{QXXa[L188A;688A;,      qxx{QXXa[LAHHQK<7
((1+   r\   c                      [        [        R                  " [        [        -  5      [        R                  " [        5      ) [        R
                  " [        5      -  5       b   eg r   )r   r   rT   r   r   ri   rv   r\   rZ   test_issue_27662_xfailr     sF    qxx!}qxx{l
&&)   r\   c                      [        [        R                  " [        [        5      [        -  5      5      SL d   e[        [        R                  " [        [        5      [        -  5      5      SL d   eg)z4We need to support relations in ask for this to workTN)r   r   rT   r8   r   r6   rv   r\   rZ   test_bounded_xfailr     sL     qxxA	"#t+++qxxA	"#t+++r\   c                  f   [        [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " S[        -  5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " [        S-   5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " [        S-  5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " [        [        5      5      5      SL d   eg)z`By default objects are Q.commutative that is why it returns True
for both key=True and key=FalseTFr   rG   N)
r   r   rI   r   rM   rO   rL   rP   r   r0   rv   r\   rZ   test_commutativer     s    q}}Q D(((q}}Q!--"2!23u<<<q}}Q1.$666q}}QQ0D888q}}Q+t333q}}QA/4777q}}Q!--"2!23t;;;q}}QqS!"d***q}}QqS!AMM!$4#45>>>q}}QU#$,,,q}}QU#ammA&6%675@@@q}}QT"#t+++q}}QT"Q]]1%5$56%???q}}SV$%---r\   c                  
   [        [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " [        5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        5      [        R
                  " [        5      ) 5      b   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R
                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  S-   5      [        R
                  " [        5      5      SL d   e[        [        R                  " S[        -  S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R
                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        5      5      5      SL d   e[        [        R                  " [        S[        -  S-   5      5      5      SL d   e[        [        R                  " [        [        5      5      5      SL d   e[        [        R                  " [        S[        -  S-   5      5      5      SL d   e[        [        R                  " [!        [        5      5      5      SL d   e[        [        R                  " [!        [        5      5      5      SL d   e[        [        R                  " [#        [        5      5      5      SL d   e[        [        R                  " [%        [        5      5      5      SL d   e[        [        R                  " ['        [        5      5      5      SL d   eg r   )r   r   rM   r   r   rL   rK   rN   rP   rO   rp   rJ   rR   rS   r8   r6   r/   r+   r-   r,   rv   r\   rZ   test_complexr     s?	   qyy|$$$qyy|QYYq\*d222qyy|QYYq\*222qyy|aiil]+u444qyy|QVVAY'4///qyy|affQiZ(000qyy|QZZ]+t333qyy|Q\\!_-555qyy|QZZ]+t333qyy|Q[[^,444qyy|Q[[^,444 qyyQ1.$666qyyQ+t333qyyQA/4777qyyQa1T999qyyQQ0D888qyyQ1.$666qyyQ+t333qyyQq*d222qyyQ1		!!<=EEEqyyQQ[[^!;<DDD qyy1q!199Q<0D888qyy1q!166!9-555qyy1q!1::a=1T999qyy1q!1::a=1T999qyy1q!1<<?3t;;;qyy1q!1;;q>2d:::qyy1q!199Q<0D888qyy1q!166!9-555qyy1q!1558,444 qyyA		!-555qyyAq	*d222qyyA

1.$666qyyA

1.$666qyyAQ0D888qyyAA/4777qyyA		!-555qyyAq	*d222qyyAa)T111 qyyA		!-555qyyAq	*d222qyyA

1.$666qyyA

1.$666qyyAQ0D888qyyAA/4777qyyA		!-555qyyAq	*d222qyyAa)T111qyyA		!qyy| ;<DDD qyyQ !T)))qyyQqS1W&'4///qyyQ !T)))qyyQqS1W&'4/// qyyQ !T)))qyyQ !T))) qyyQ !T)))qyyA D(((qyyA D(((r\   c                  "   [        [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " [        5      [        R
                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " S[        -  5      5      b   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      ) 5      b   e[        [        R                  " S[        -  5      [        R                  " [        5      5      b   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -
  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  [        -  5      [        R
                  " [        5      [        R
                  " [        5      -  5      b   e[        [        R                  " S[        -  [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   [        -   5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   [        -   [        -   5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  [        R                  " [        5      -  5       b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        5      ) 5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        5      ) 5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " S[         -  5      [        R                  " [         5      5      SL d   e[        [        R                  " ["        S-  5      [        R                  " ["        5      5      SL d   e[        [        R                  " [         S-  5      [        R                  " [         5      5      SL d   e[        [        R                  " S["        -  5      [        R                  " ["        5      5      b   e[        [        R                  " [        S-  5      5      b   e[        [        R                  " ["        [$        -  5      [        R                  " ["        5      [        R                  " [$        5      -  [        R&                  " [$        5      ) -  5      b   e[        [        R                  " [         [$        -  5      [        R                  " [         5      [        R                  " [$        5      -  [        R&                  " [$        5      ) -  5      SL d   e[        [        R                  " ["        [(        -  5      [        R                  " ["        5      [        R                  " [(        5      -  [        R                  " [(        5      -  5      SL d   e[        [        R                  " [         [(        -  5      [        R                  " [         5      [        R                  " [(        5      -  [        R                  " [(        5      -  5      SL d   e[        [        R                  " [$        ["        -  5      [        R                  " ["        5      [        R                  " [$        5      -  [        R&                  " [$        5      ) -  5      b   e[        [        R                  " [(        ["        -  5      [        R                  " ["        5      [        R                  " [(        5      -  [        R                  " [(        5      -  5      b   e[        [        R                  " [$        [         -  5      [        R                  " [         5      [        R                  " [$        5      -  [        R&                  " [$        5      ) -  5      b   e[        [        R                  " [(        [         -  5      [        R                  " [         5      [        R                  " [(        5      -  [        R                  " [(        5      -  5      b   e[        [        R                  " ["        [        -  5      [        R                  " ["        5      5      b   e[        [        R                  " [         [        -  5      [        R                  " [         5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        [        -   -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        [        -   -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   eg )NFr   Tr   rG      rl   )r   r   rR   r   rJ   rK   rP   rN   rS   r   r   r   r+   r-   r,   rL   r   r	   r
   rQ   r   rv   r\   rZ   test_even_queryr     s	   qvvay>!!!qvvay!))A,'///qvvay199Q<-(E111qvvay!**Q-(000qvvay!**Q-(000qvvac{###qvvac{AIIaL)T111qvvac{AFF1I&$...qvvac{ALLO,555qvvac{AEE!H%---qvvac{QYYq\M*222qvvac{AIIaL)111qvvac{AFF1I&$...qvvac{AEE!H%...qvva!e}aeeAh'4///qvva!e}affQi(E111qvva!e}aeeAh'5000qvva!e}affQi(D000qvva!e}aeeAh'4///qvva!e}aeeAh'4///qvva!e}aeeAhq12d:::qvva!e}aeeAh23u<<<qvva!e}affQi!&&)34<<<qvvacAg		!-666qvvac!e}ajjmajjm;<DDDqvvac!e}all1oQ?@HHHqvva!eai !%%(QUU1X"5q	"ABdJJJqvva!eai!m$	a1558affQi'!))A,68;?@ @ @ qvvc!f~qvvay)T111qvvc!f~q	z*222qvvbe}affQi(D000qvvbe}qvvayj)111qvvbe}affQi(D000qvvbe}affQi(D000qvvrAg		!-666qvvad|QVVAY'4///qvvad|QUU1X&%///qvvad|QVVAY'///qvvad|$$$qvvad|QVVAY15AFGOOOqvvad|QUU1X		!4

1~EF%OOOqvvad|QVVAY15

1EF$NNNqvvad|QUU1X		!4qzz!}DENNNqvvad|QVVAY15AFGOOOqvvad|QVVAY15

1EFNNNqvvad|QUU1X		!4

1~EFNNNqvvad|QUU1X		!4qzz!}DEMMMqvvad|QVVAY'///qvvad|QUU1X&...qvvac{AIIaL199Q<78@@@qvvac{AIIaL)111qvvaQi !))A,q"9:dBBBqvvaQi !))A,":;CCCr\   c                  4   [        [        R                  " [        [        -  [        [
        -   -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [
        5      -  5      SL d   e[        [        R                  " [        [        -  [        [
        -   -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [
        5      -  5      SL d   eg r   )r   r   rR   r   r   r   rJ   rS   rv   r\   rZ   1test_evenness_in_ternary_integer_product_with_oddr   =  s    
 qvvac1q5k"AIIaL199Q<$?!%%($JKtSSSqvvac1q5k"AIIaL199Q<$?!%%($JKtSSSr\   c                     [        [        R                  " [        [        -  [        [
        -   -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [
        5      -  5      b   eg r   )r   r   rR   r   r   r   rJ   rv   r\   rZ   2test_evenness_in_ternary_integer_product_with_evenr   F  sL    qvvac1q5k"AIIaL199Q<$?!&&)$KLTTTr\   c                     [        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        * 5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        * 5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        R                  -   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      b   eg r   )r   r   rq   r   rt   rP   ri   rQ   ru   r%   InfinityrL   rs   rv   r\   rZ   test_extended_realr   J  sh   qq!1#6#6q#9:dBBBqq!1::a=1T999qq!166!9-555qq!1::a=1T999qq!1#6#6q#9:dBBBqr"AJJqM2d:::qr"AJJqM2d:::qq1::~.q	:dBBBqq!1::a=1999r\   c            
      &   [        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R
                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R
                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " [        [        -  5      [        R
                  " [        5      [        R
                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R
                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  5      SL d   e[        [        [         ["        [$        [&        4 GH'  n [        [        R                  " U " S5      5      5      SL d   e[        [        R                  " U " SSS95      5      SL d   e[        [        R                  " U " SSS95      5      SL d   e[        [        R                  " U " [        5      5      [        R                  " [        5      5      b   e[        [        R                  " U " [        5      5      [        R                  " [        5      [        R                  " [        5      -  5      SL a  GM(   e   [(        [*        4 GH*  n[        [        R                  " U" S5      5      5      SL d   e[        [        R                  " U" SSS95      5      SL d   e[        [        R                  " U" SSS95      5      SL d   e[        [        R                  " U" [        5      5      [        R                  " [        5      5      b   e[        [        R                  " U" [        5      5      [        R                  " [        5      [        R                  " [        S-
  5      -  5      SL a  GM+   e   [,        [.        4 H  n[        [        R                  " U" S5      5      5      SL d   e[        [        R                  " U" SSS95      5      SL d   e[        [        R                  " U" [        5      5      [        R                  " [        5      5      SL a  M   e   [        [        R                  " [        [        -  5      [        R
                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R0                  " [        5      -  [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R2                  " [        S5      -  [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R2                  " [        S5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R2                  " [        S5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R0                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      ) [        R                  " [        5      -  5      b   e[        [        R                  " [5        S[        SS9[        R                  " [        5      5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      ) -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      ) -  [        R6                  " [        5      ) -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      ) -  [        R8                  " [        5      -  [        R                  " [        5      ) -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      ) -  [        R8                  " [        5      -  5      b   eg )	NTFr   rG   r   evaluater   rl   )r   r   rK   r   rJ   rN   rL   rP   rQ   rh   rp   rR   rS   r   r/   r8   r9   r4   r5   r6   r0   r2   r7   r3   rU   eqr&   ri   rM   fghs      rZ   test_rationalr   Y  sk   qzz!}aiil+t333qzz!}all1o.%777qzz!}affQi(000qzz!}ajjm,444qzz!}ajjm,444qzz!}aiil+333qzz!}q{{1~o.%777qzz!A#

1.$666qzz!A#		!-555qzz!A#q	*d222qzz!A#a)T111qzz!A#Q0E999qzz!A#

1.$666qzz!A#		!-555qzz!A#q	*d222qzz!A#a)T111qzz!A#Q0E999qzz!A#

1		! <=EEEqzz!A#		!qyy| ;<DDDqzz!A#q	AIIaL 89TAAAqzz!A#a)T111qzz!A#Q0E999qzz!A#

1		! <=EEEqzz!A#		!qyy| ;<DDDqzz!A#q	AIIaL 89TAAAqzz!A#a)T111qzz!A#Q0E999qzz!}q{{1~o.%777 qzz!A#Q!,,q/ ABJJJqzz!A#

1

1 =		! LMQUUUUqzz!A#		!qzz!} <qyy| KLPTTTTqzz!A#q	AJJqM 9AIIaL HITQQQqzz!A#a1::a= 89TAAAqzz!A#Q!**Q- ?!))A, NOSXXXX3T4-1::ad#$---1::aE234===1::aE234<<<1::ad#QZZ]3;;;1::ad#QZZ]QYYq\%ABeKKK . 4[1::ad#$---1::aE234===1::aE234<<<1::ad#QZZ]3;;;1::ad#QZZ]QYYq1u5E%EF%OOO  4[1::ad#$---1::aE234===1::ad#QZZ]3u<<<  qzz!Q$Q!**Q- ?@HHHqzz!Q$		!qwwqz 9AJJqM IJRRRqzz!Q$		!qyy| ;<DDDqzz!Q$		!qttAay 8199Q< GHPPPqzz!Q$Qq	AJJqM 9:BBBqzz!Q$Qr
QZZ] :;CCCqzz!Q$ajjm!;<DDDqzz!Q$!**Q-!))A,!>@HHHqzz#b!e4ajjmDEMMMqzz!Q$1a0@!@AIIIqzz!Q$1a0@!@AFF1I:!MNVVVqzz!Q$1Q!?!))A,!NRSRXRXYZR[Q[![\dddqzz!Q$1Q!?!))A,!NOWWWr\   c                  (3   [        [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      b   e[        [        R                  " [        S-   5      [        R                  " [        5      5      b   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R
                  " [        5      5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5       b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5       b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R
                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R
                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R
                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R
                  " [        5      [        R
                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R
                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   [        -   5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   [        -   5      [        R                  " [        5      [        R                  " [        5      -  [        R
                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   [        -   5      [        R                  " [        5      [        R
                  " [        5      -  [        R
                  " [        5      -  5       b   e[        [        R                  " [        [        -   [        -   5      [        R
                  " [        5      [        R
                  " [        5      -  [        R
                  " [        5      -  5       b   e[        [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      b   e[        [        R                  " [        S-   5      [        R                  " [        5      5      b   e[        [        R                  " [        S-   5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -   5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5       b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5       b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R
                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5       b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R
                  " [        5      -  5       b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R
                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R
                  " [        5      [        R
                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R
                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   [        -   5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  5       b   e[        [        R                  " [        [        -   [        -   5      [        R                  " [        5      [        R                  " [        5      -  [        R
                  " [        5      -  5       b   e[        [        R                  " [        [        -   [        -   5      [        R                  " [        5      [        R
                  " [        5      -  [        R
                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   [        -   5      [        R
                  " [        5      [        R
                  " [        5      -  [        R
                  " [        5      -  5      SL d   eg )NFTrG   )r   r   rW   r   rX   rO   rU   rL   ri   rM   r   r   r   rv   r\   rZ   test_hermitianr     sZ   q{{1~&&&q{{1~qq12:::q{{1~q{{1~.%777q{{1~qwwqz*d222q{{1~qvvay)T111q{{1~qvvay)T111q{{1q5!1??1#56>>>q{{1q5!199Q<0888q{{1q5!1;;q>2d:::q{{1q5!1;;q>2e;;;q{{1q5!166!9-555q{{1q5!1??1#56>>>q{{1q5!199Q<0888q{{1q5!1;;q>2e;;;q{{1q5!1;;q>2:::q{{1q5!166!9-666	AEAOOA.1CCEHLM M Mq{{1q5!1??1#5		!#DEMMM	AEAOOA.Q?ADHI I Iq{{1q5!1??1#5A#FGOOOq{{1q5!1??1#5q	#ABJJJq{{1q5!1;;q>AIIaL#@AIIIq{{1q5!1;;q>AKKN#BCtKKKq{{1q5!1;;q>AKKN#BCuLLLq{{1q5!1;;q>AFF1I#=>$FFFq{{1q5!1;;q>AIIaL#@AIIIq{{1q5!1;;q>AKKN#BCKKKq{{1q5!1;;q>AFF1I#=>%GGGq{{1q5!166!9qyy|#;<DDDq{{1q5!166!9qvvay#89TAAAq{{1Q3!34<<<q{{1Q31.666q{{1Q3Q0E999q{{1Q3Q0D888q{{1Q3+u444q{{1Q3Q!&&)!;<DDD	AEAIq	AFF1I 5q	 ACFJK K Kq{{1q519%	q	AFF1IA.0389 9 9q{{1q519%	q	AKKN"Q[[^358<= = =q{{1q519%	AQ'!++a.8:=AB B B qq!"***qq!166!9-666qq!1771:.%777qq1u%qq'9:eCCCqq1u%qyy|4<<<qq1u%q{{1~6>>>qq1u%q{{1~6%???qq1u%qvvay1999qq1u%qq'9:dBBBqq1u%qyy|4<<<qq1u%q{{1~6>>>qq1u%q{{1~6$>>>qq1u%qvvay1U:::qq!166!9-555	A 2Q__Q5G G	   	A 2QYYq\ ACFJK K K	A 2Q[[^ CEHLM M M	A 2Q[[^ CEHLM M Mqq1u%qq'9AFF1I'E 
  qq1u%q{{1~		!'DEMMMqq1u%q{{1~A'F 
  	AAQ ?ADHI I Iqq1u%q{{1~q	'ABJJJqq1u%q{{1~		!'DEMMMqq1u%q{{1~A'FG4OOOqq1u%q{{1~q	'ABeKKKqq1u%qvvay199Q<'?@HHHqq1u%qvvay166!9'<=EEEqqs#QVVAY/4777qqs#Q__Q%78EAAAqqs#QYYq\2:::qqs#Q__Q%7!&&)%CDLLLqq1uqy)	q	AFF1Iq	)+.23 3 3qq1uqy)	q	AFF1IA.0378 8 8qq1uqy)	q	AKKN"Q[[^358=> > >qq1uqy)	AQ'!++a.8:=AB B Br\   c                  )   [        [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   [        -   5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   [        -   5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  5       b   e[        [        R                  " [        [        -   [        -   5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      ) -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " S[        -  5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " S[        -  5      ) -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " S[        -  5      ) -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " S[        -  5      -  5      b   e[        [        R                  " [!        [        5      5      5      SL d   e[        [        R                  " [!        S[        -  5      5      5      SL d   e[        [        R                  " [!        [        S-   5      5      5      SL d   e[        [        R                  " [!        [        5      5      [        R                  " [        5      5      b   e[        [        R                  " [!        [        5      5      [        R                  " [        5      5      b   e[        [        R                  " [!        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [!        [#        [        5      5      5      [        R                  " [        5      5      b   e[        [        R                  " [!        [#        [        5      5      5      [        R                  " [        5      5      b   e[        [        R                  " [!        [#        [        5      5      5      5      SL d   e[        [        R                  " [#        [        5      [        -  5      [        R                  " [        5      5      SL d   e[%        [#        [&        [        -  [        -  SS9[        SS9n [        [        R                  " U 5      [        R                  " [        5      5      SL d   e[%        [#        [&        [        -  [        -  S-  SS9[        SS9n [        [        R                  " U 5      [        R                  " [        5      5      SL d   e[        [        R                  " [#        S[        -  [&        -  [        -  5      [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [#        S[&        -  [        -  SS95      5      SL d   e[        [        R                  " [#        [&        [        -  S-  SS95      5      SL d   e[        [        R                  " [%        [        [)        SS5      5      5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   eg )	NFrG   Tr   r   r   r   r   )r   r   rO   r   rL   rU   r   r   rM   r   rQ   rP   rR   rS   rJ   rK   r0   r/   r&   r$   r!   r   s    rZ   test_imaginaryr     s9   q{{1~&&&q{{1~qvvay)U222q{{1~qwwqz*e333q{{1q5!166!9-666q{{1q5!1;;q>2e;;;q{{1q5!166!9-666q{{1q5!1;;q>2d:::q{{1q5!1;;q>AKKN#BCtKKKq{{1q5!166!9qvvay#89UBBBq{{1q5!1;;q>AFF1I#=>%GGGq{{1q5!199Q<!&&)#;<DDD	AEAIq	AFF1I 5q	 ACFKL L Lq{{1q519%	q	AFF1IA.0378 8 8q{{1q519%	q	AKKN"Q[[^358=> > > q{{1Q3+t333q{{1Q3Q0E999q{{1Q31.666q{{1Q3Q!&&)!;<DDDq{{1Q3QVVAY!675@@@q{{1a4 !**Q-0888q{{1a4 !**Q-0888q{{1a4 !&&),555q{{1a4 !%%(+t333q{{1a4 !++a.1U:::q{{AaC!8$akk!n5>>>q{{1a4 !++a.1U:::q{{1a4 !++a.1;;q>"ABJJJq{{1a4 !++a.166!9"<=EEEq{{1a4 !&&)akk!n"<=EEEq{{1a4 !&&)affQi"78@@@q{{1a4 !++a.199Q<"?@HHHq{{1a4 !++a.199Q<"?@HHHq{{1a4 !++a.1558";<DDDq{{1a4 !++a.1::a="@AIIIq{{1a4 !++a.166!9"<=FFFq{{1a4 !&&)aiil":;uDDDq{{1a4 !**Q-!&&)";<EEEq{{1a4 !**Q-!&&)";<DDDq{{1a4 !**Q-!&&)";qzz!}n"LMQVVVVq{{1a4 !))A,Q"?@HHHq{{1a4 !**Q-!**Q-"?!))AaC."PQUYYYYq{{1a4 !**Q-!**Q-"?199QqS>/"QRV[[[[q{{1a4 !**Q-!**Q-"?@HHHq{{1a4 !&&)ajjm";qyy1~o"MNRWWWWq{{1a4 !&&)ajjm";aii!n"LMUUU q{{3q6"#t+++q{{3qs8$%...q{{3q1u:&'5000q{{3q6"AIIaL1999q{{3q6"AKKN3;;;q{{3q6"AJJqM2e;;;q{{3s1v;'16>>>q{{3s1v;'Q8@@@q{{3s1v;'(D000 q{{3q619%q{{1~6%???	SAa%(!e	<Bq{{2q	*e333	SAaE*A	>Bq{{2a)T111q{{3qs2vax=!+,aiil;uDDDq{{3qtAv678EAAAq{{3r!tAv678D@@@ q{{3q(1a.12AFF1I

14MNRWWWWr\   c            	      $   [        [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " [        5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " [        5      [        R
                  " [        5      ) 5      b   e[        [        R                  " [        5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      b   e[        [        R                  " S[        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        S5      [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S5      [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      b   e[        [        R                  " [        S-  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        * 5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        5      ) 5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      b   e[        [        R                  " [        [        [        [        -  -   5      5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " S[        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        S5      5      5      SL d   e[        [        R                  " [        [        -  5      [        R                   " [        5      [        R"                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R
                  " [        5      -  5      SL d   e[        [        R                  " S[        -  * 5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R
                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R"                  " [        5      [        R                  " [        5      -  [        R
                  " [        5      -  5      SL d   e[        [        R                  " [$        [        -  5      [        R"                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R&                  " [        5      [        R"                  " [        5      -  5      SL d   eg )NTFr   r   rG   r   )r   r   rJ   r   rL   rP   rR   rS   rU   rK   r1   rN   r+   rM   r   r   rh   ri   r$   rO   rv   r\   rZ   test_integerr   a  s   qyy|$$$qyy|QYYq\*d222qyy|aiil]+u444qyy|affQiZ(E111qyy|ajjm^,444qyy|QVVAYq12d:::qyy1~qyy|,444qyy1~qvvay)T111qyy1~qwwqz*d222qyy1~qzz!}-555qyy1~qvvay)111qyya#QYYq\2e;;;qyya#Q\\!_5===qyy1~quuQx(E111qyy1~qvvay)T111qyy1~quuQx(000qyy1~qvvay)111 qyyQ 1.$666qyyaR!!))A,/4777qyyQ 199Q<-0888qyyQ 1.666qyyQqsU$QVVAY%:;CCC qyy1~qyy|aiil:;CCCqyy1~qyy|,444qyyA		!qyy| ;<DDDqyya!"e+++qyyA		!qvvay 89TAAAqyyA		!qyy| ;ajjm KLPTTTTqyy!Q$1.$666qyyA		!qyy| ;ajjm KLPTTTTqyyAq	AIIaL 81::a= HITQQQqyyQ+t333qyyAA :;tCCCr\   c            
         [        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R
                  " [        5      ) 5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      ) 5      b   e[        [        R                  " [        * 5      [        R                  " [        5      5      SL d   e[        [        R                  " [        * 5      [        R                  " [        5      ) 5      b   e[        [        R                  " [        * 5      [        R                  " [        5      5      SL d   e[        [        R                  " [        * 5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-
  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -   5      5      SL d   e[        [        R                  " [        [        5      S-  [        [        5      S-  -   S-
  5      5      b   e[        [        R                  " [        * [        [        S5      S-  [        S5      S-  -   -  -   5      5      b   e[        [        R                  " [        S-  5      5      b   e[        [        R                  " [        S-  5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R
                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [!        [        5      5      5      SL d   eg )NTFrG   r   gffffff?)r   r   rQ   r   rP   rL   rU   r   nonpositiver   r6   r8   rM   rR   rS   rJ   r+   rv   r\   rZ   test_negativer     s   qzz!}ajjm,444qzz!}ajjm,555qzz!}qvvayj)U222qzz!}aggaj)U222qzz!}qwwqzk*222qzz1"~qzz!}-555qzz1"~

1~.666qzz1"~qzz!}-666qzz1"~qzz!}-555qzz!a% !**Q-0D888qzz!a% !)))qzz!a% !**Q-0888qzz!a% !**Q-!**Q-"?@DHHHqzz!a% !**Q-!--2B"BCtKKKqzz!a% !U*** qzz#a&!)c!fai/!345===qzz1"q#a&!)c!fai"7889:BBBqzz!Q$ (((qzz!Q$+u444qzz!S&!166!9-555qzz!Q$A/777qzz!A#'''qzz!A#

1

1 =>%GGGqzz!A#

1

1 =>$FFFqzz!A#		!qyy| ;<DDDqzz!Q$ (((qzz!Q$A!:;uDDDqzz!Q$Aq!9:dBBBqzz!Q$A1!=>%GGGqzz#a&!"e+++r\   c            
      b
   [        [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      [        R
                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      5      b   e[        [        R                  " [        [        -   5      [        R
                  " [        5      [        R
                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R
                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  5      5      b   e[        [        R                  " S[        -  5      [        R
                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        S[        -  5      5      5      5      SL d   e[        [        R                  " [        S5      S-  [        S5      S-  -   S-
  5      5      b   eg )NTr   FrG   )r   r   rh   r   rL   rP   rQ   r   r+   r0   r/   r   r6   r8   rv   r\   rZ   test_nonzeror     s   qyy|$$$qyy|QVVAY'///qyy|QZZ]+t333qyy|QZZ]+t333qyy|QZZ]QZZ]:;tCCCqyyQ (((qyyQAA!>?4GGGqyyQAA!>?GGGqyyQAA!>?4GGGqyy1~&&&qyy1~qzz!}-555qyy1~qzz!}-555qyy1~qyy|,444qyy1~qyy|aiil:;tCCCqyyA		!-555qyyQ !)))qyyQ !))A,/4777qyyS1X'(E111 qyyQSVQY.234<<<r\   c                     [        [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      [        R
                  " [        5      -  5      SL d   e[        [        R                  " [        5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      5      b   e[        [        R                  " [        [        -   5      [        R
                  " [        5      [        R
                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R
                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  5      5      b   e[        [        R                  " S[        -  5      [        R
                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        5      5      5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        [        -  5      5      SL d   eg )NFTr   )r   r   ri   r   rL   rP   rQ   nonnegativer   r   rh   r+   rJ   rR   rS   rv   r\   rZ   	test_zeror     ss   qvvay>!!!qvvay!&&)$,,,qvvay!**Q-(E111qvvay!**Q-(E111qvvay!**Q-!**Q-78EAAAqvvay!--*Q]]1-==>$FFFqvva!e}%%%qvva!e}ajjmajjm;<EEEqvva!e}ajjmajjm;<DDDqvva!e}ajjmajjm;<EEEqvvac{###qvvac{AJJqM*e333qvvac{AJJqM*e333qvvac{AIIaL)111qvvc!f~&&&qvvc!f~qvvay)T111qyy|QVVAY'4///qvvay!&&)$,,,quuQx#u,,,qvvay!&&)$,,,qvvay!%%(#u,,,qvvay166!9$affQqSk2d:::r\   c                  %   [        [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " [        5      [        R
                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        * 5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      5      b   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      ) 5      b   e[        [        R                  " S[        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        S-  5      [        R                  " [        5      5      b   e[        [        R                  " [        S-  5      [        R                  " [        5      5      b   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -
  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -
  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -
  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -
  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   [        -   5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   [        -   [        -   5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  [        R                  " [        5      -  5       b   e[        [        R                  " S[        -  S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  [        -  5      [        R
                  " [        5      [        R
                  " [        5      -  5      b   e[        [        R                  " S[        -  [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                   " [        5      ) -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                   " [        5      ) -  5      SL d   e[        [        R                  " [        ["        -  5      [        R                  " [        5      [        R                  " ["        5      -  [        R                  " ["        5      -  5      SL d   e[        [        R                  " [        ["        -  5      [        R                  " [        5      [        R                  " ["        5      -  [        R                  " ["        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                   " [        5      ) -  5      b   e[        [        R                  " ["        [        -  5      [        R                  " [        5      [        R                  " ["        5      -  [        R                  " ["        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                   " [        5      ) -  5      b   e[        [        R                  " ["        [        -  5      [        R                  " [        5      [        R                  " ["        5      -  [        R                  " ["        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        [        -   -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        [        -   -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   eg )NTFr   r   rG   rl   )r   r   rS   r   rJ   rK   rP   rN   rR   r   r   r   r+   r   r	   r
   rQ   r   rv   r\   rZ   test_odd_queryr     s
   quuQx=   quuQxq"d***quuQx1&...quuQx!))A,'5000quuQxA'///quuQxA'///quuaRy!%%(#t+++quuQqSz?"""quuQqSz199Q<(E111quuQqSz1558$---quuQqSz1<<?+u444quuQqSzAIIaL=)111quuQqSz199Q<(000quuQqSz1558$,,,quuQqSz166!9%---quuQU|QVVAY'4///quuQU|QVVAY'5000quuQU|QUU1X&$...quuQU|QUU1X&%///quuQU|QVVAY'4///quuQU|QUU1X&%///quuQU|QVVAY'4///quuQU|QUU1Xa01U:::quuQU|QUU1Xq	12d:::quuQU|QVVAYq12d:::quuQU|QUU1Xa01U:::quuQUQYqAEE!H!4qvvay!@AUJJJquuQUQY]#	a1558affQi'!))A,68;?@ @ @ quuQqS1W~qyy|,444quuQqS1W~qyy|aeeAh674???quuQqS1W~qyy|affQi78EAAAquuQqS1W~qyy|aiil:;CCCquuQqSz1558affQi/0E999quuQqSz1558aeeAh./4777quuQqSU|QZZ]QZZ]:;CCCquuQqSU|Q\\!_q||A>?GGGquuSV}aeeAh'4///quub1W~qyy|,444quuQT{AFF1I&%///quuQT{AEE!H%---quuQT{AFF1I&...quuQT{AFF1I		!4

1~EFNNNquuQT{AEE!Hqyy|3qzz!}nDEMMMquuQT{AFF1I		!4qzz!}DENNNquuQT{AEE!Hqyy|3ajjmCDLLLquuQT{AFF1I		!4

1~EFNNNquuQT{AFF1I		!4qzz!}DEMMMquuQT{AEE!Hqyy|3qzz!}nDEMMMquuQT{AEE!Hqyy|3ajjmCDLLLquuQT{AFF1I&...quuQT{AEE!H%---quuQqSz199Q<!))A,67???quuQqSz199Q<(000quuQAY1a!89UBBBquuQAY1q	!9:BBBr\   c                  4   [        [        R                  " [        [        -  [        [
        -   -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [
        5      -  5      SL d   e[        [        R                  " [        [        -  [        [
        -   -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [
        5      -  5      SL d   eg NF)r   r   rS   r   r   r   rJ   rv   r\   rZ   0test_oddness_in_ternary_integer_product_with_oddr   :  s    
 quuQqS!a%[!199Q<!))A,#>q#IJeSSSquuQqS!a%[!199Q<!))A,#>q#IJeSSSr\   c                     [        [        R                  " [        [        -  [        [
        -   -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [
        5      -  5      b   eg r   )r   r   rS   r   r   r   rJ   rR   rv   r\   rZ   1test_oddness_in_ternary_integer_product_with_evenr   C  sL    quuQqS!a%[!199Q<!))A,#>#JKSSSr\   c            
          [        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      ) 5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [
        -  5      5      b   e[        [        R                  " [        [
        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [
        -  5      [        R                  " [        5      [        R                  " [
        5      -  5      b   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      5      b   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        S5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [
        -  5      [        R                  " [        5      [        R                  " [
        5      -  5      b   e[        [        R                  " S[        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [
        -  5      [        R                  " [        5      [        R                  " [
        S5      -  5      b   e[        [        R                  " [        [
        -  5      [        R                  " [        5      [        R                  " [
        5      -  [        R                  " [
        S5      -  [        R                  " [
        S5      -  5      b   e[        [        R                  " [        [        SSS95      [        R                  " [        5      5      SL d   eg )NTFr   r   rG   r   r   )r   r   rU   r   rJ   r   r   ner   rV   r   gtltr&   rv   r\   rZ   
test_primer   G  s   qwwqz1771:&$...qwwqzAGGAJ;'5000qwwqz199Q<(000qwwqzAIIaL=)U222qwwqs|QYYq\*222qwwqs|$$$qwwqs|QWWQZ(000qwwqs|QYYq\AIIaL89AAAqwwqs|QYYq\*e333qwwqs|$$$qwwq!t}aiil+u444qwwq!t}aggaj)U222 qwwq!t}aiil+u444qwwq!t}aggaj199Q<7!$$q!*DENNNqwwq!t}aiilQ[[^;<EEEqwwq!t}aiilQYYq\9:BBBqwwq!t}aiil+333qwwq!t}aggaj199Q<78@@@ qwwq!t}aggaj144!945===qwwq!t}aggaj199Q<7!$$q)Cadd1QiOPXXXqwws1Q/0!''!*=EEEr\   c            
         [        [        R                  " [        [        5      S-  [        [        5      S-  -   S-
  5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      b   e[        [        R                  " [        * 5      [        R                  " [        5      5      SL d   e[        [        R                  " [        * 5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -   5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      -  [        R                  " [        5      -  n [        [        R                  " [        [        -  [        -  5      5      b   e[        [        R                  " [        [        -  [        -  5      U 5      SL d   e[        [        R                  " [        * [        -  [        -  5      U 5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " SS[        S-  -   -  5      [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      5      SL d   e[        [        R                  " S[        -   5      5      SL d   e[        [        R                  " [        [        5      S-  [        [        5      S-  -   S-
  5      5      b   e[        [        R                  " [        * [        [        S5      S-  [        S5      S-  -   -  -   5      5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      ) [        R                  " [        5      5      SL d   e[        [        R                  " [        [        [        5      -   5      [        R                  " [        5      5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      b   e[        [        R                  " [        S[         -  [        -  SS95      [        R                  " [        5      5      SL d   e[        [        R                  " [        [         [        -  SS95      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        [         -  [        -  5      5      [        R"                  " [        5      5      SL d   e[        [        R                  " [        [        [         -  [        -  5      5      [        R$                  " [        5      5      SL d   e[        [        R                  " [        [        [         -  [        -  5      5      [        R                  " [        5      5      b   e[        [        R                  " ['        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " ['        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " ['        [        5      5      [        R                  " [        5      5      b   e[        [        R                  " ['        [        S-   5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [)        [        5      5      [        R*                  " [        5      [        R                  " [        5      -  5      (       d   e[        [        R                  " [)        [        5      5      [        R*                  " [        5      5      b   e[        [        R                  " [-        [        5      5      5      b   e[        [        R                  " [-        [        5      5      [        R                  " [        5      5      SL d   eg )Nr   rG   TFr   r   )r   r   rP   r6   r   r8   r   rQ   rh   r   r   rO   r   r   rL   r/   r$   rR   rS   r0   r*   rJ   r+   assumptionss    rZ   test_positiver   g  s   qzz#a&A+A!3a789AAAqzz!}ajjm,444qzz!}ajjm,555qzz!}aiil+333qzz1"~qzz!}-666qzz1"~qzz!}-555qzz!a% !**Q-!**Q-"?@DHHHqzz!a% !**Q-!--2B"BCtKKKqzz!a% !**Q-!**Q-"?@HHHqzz!a% !**Q-!++a."@AUJJJqzz!A#

1.$666**Q-!**Q-/!**Q-?!**Q-OKqzz!A#a% !)))qzz!A#a% +.$666qzz1"Q$q&!;/5888qzz!Q$A/777qzz!Q$A/4777qzz!Q$A/4777qzz!Q$A/5888qzz!QAX,'3t;;;qzz!Q$ E)))qzz!a% !U*** qzz#a&!)c!fai/!345===qzz1"q#a&!)c!fai"7889:BBB qzz#a&!166!9-555

3q6""AFF1I.$666qzz!c!f*%qvvay1999qzz#a&!1;;q>2:::qzz#ad1fu56AG4OOOqzz#bdU34akk!nEMMMqzz#ad1f+&q	2d:::qzz#ad1f+&a1U:::qzz#ad1f+&q	2::: qzz#a&!1;;q>2e;;;qzz#a&!1::a=1U:::qzz#a&!1::a=1999qzz#a!e*%qzz!}5=== qzz)A,'1

1)EFFFFqzz)A,'16>>> qzz#a&!"***qzz#a&!1::a=1T999r\   c                     [        [        R                  " S5      5      (       d   e[        [        R                  " S5      5      (       d   e[        [        R                  " S5      5      SL d   e[        [        R                  " [        5      ) [        R                  " [        5      5      (       d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S5      5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   eg )Nrl   r   rG   F)r   r   r   rP   r   r1   rO   rv   r\   rZ   test_nonpositiver     s    q}}R !!!!q}}Q    q}}Q E)))

1~q}}Q/0000q}}QA/5888q}}T"X&'5000q}}QQ0E999r\   c                     [        [        R                  " S5      5      SL d   e[        [        R                  " S5      5      (       d   e[        [        R                  " S5      5      (       d   e[        [        R                  " [        5      ) [        R                  " [        5      5      (       d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S5      5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   eg )Nrl   Fr   rG   )r   r   r   rQ   r   r1   rO   rv   r\   rZ   test_nonnegativer     s    q}}R !U***q}}Q    q}}Q    

1~q}}Q/0000q}}QA/5888q}}T"X&'5000q}}QQ0E999r\   c                     [        [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        S5      -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        S5      -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -   5      [        R                  " [        5      5      b   e[        [        R                  " S[        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   eg )NTr   FrG   )r   r   rL   r   rh   rP   rQ   rJ   rR   rU   r1   r   rM   rO   rv   r\   rZ   test_real_basicr     s   qvvay>!!!qvvay!&&)$,,,qvvay!))A,'4///qvvay!**Q-(D000qvvay!**Q-(D000qvvay!))A,'4///qvvay!&&)$,,,qvvay!''!*%---qvvaQi !&&),444qvvaRj!166!9-666qvva!e}affQi(D000qvva!e}affQi(E111qvva!e}aiil+333qvvac{AFF1I&$...qvvac{AFF1I&%///qvvac{AKKN+t333qvvac{AIIaL)111r\   c            	         [        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [	        [        5      5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        S-  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        [        -  -  5      [        R                  " [        5      [        R                  " [        [        -  5      -  [        R                  " [        [        -  5      -  [        R                  " [        5      -  [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        [        -  -  5      [        R                  " [        5      [        R                  " [        [        -  5      -  [        R                  " [        5      -  [        R
                  " [        5      -  5      b   e[        [        R                  " [        [        [        -  -  5      [        R                  " [        5      [        R                  " [        [        -  5      -  5      b   e[        [        R                  " [        [        [        -  -  5      [        R                  " [        5      [        R                  " [        [        -  5      -  [        R                  " [        5      -  5      SL d   e[        [        R                  " [        [        [        -  -  5      [        R                  " [        5      [        R                  " [        [        -  5      -  [        R
                  " [        5      -  5      b   e[        [        R                  " [        * [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        [         -  [#        [        5      -  -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [$        [&        -  5      [        R
                  " [$        5      [        R                  " [&        5      -  5      b   e[        [        R                  " S[)        [        5      -  5      5      b   e[        [        R                  " [        [        -  5      [        R*                  " [        5      [        R                  " [        5      -  5      b   e[        [        R                  " [        [        -  5      [        R*                  " [        5      [        R                  " [        5      -  5      SL d   eg )Nr   TFr   rG   )r   r   rL   r   r1   rQ   r   rJ   rP   rO   rK   rS   rR   r   r   r   r$   r0   r   r   r+   ri   rv   r\   rZ   test_real_powr     s   qvvad|QVVAY'4///qvvd1g

1.%777qvvad|QVVAY156>>>qvvad|QVVAY23;;;qvvad|QZZ]QVVAY674???qvvad|Q[[^akk!n<=EEEqvvad|Q[[^affQi78@@@qvvad|QVVAYQ78@@@qvvad|Q[[^,444qvvad|QZZ]QVVAY674???qvvad|QVVAYA67???qvvad|Q[[^aiil:;CCCqvvad|Q[[^aeeAh675@@@qvvad|Q[[^affQi78D@@@qvva!A#hQVVAaC[!81::ac?!JQVVTUY!VYZYcYcdeYf!fgkooooqvva!A#hQZZ!_!<qvvay!H1::VW=!XYaaaqvva!A#hQYYqs^!;<DDDqvva!A#hQVVAaC[!81::a=!HITQQQqvva!A#hQVVAaC[!81::a=!HIQQQqvvrAgA/4777qvvad|Q[[^,444qvvad|Q[[^,444qvvad|Q[[^,444qvva!B$s1v+&'3t;;; qvvad|QZZ]QZZ]:;CCC qvvaAh (((qvvad|QVVAY23;;;qvvad|QVVAYA674???r\   c            	      B   [        [        R                  " [        [        5      5      5      b   e[        [        R                  " [        [        5      5      5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        [        5      -   5      [        R                  " [        5      5      SL d   e[        [        R                  " [        S[        -  [        -  SS95      5      SL d   e[        [        R                  " [        [        [        -  SS95      5      SL d   e[        [        R                  " [        [        [        -  S-  SS95      5      SL d   e[        [        R                  " [        [        5      5      5      SL d   e[        [        R                  " [        S[        -  5      5      5      SL d   e[        [        R                  " [        [        S-   5      5      5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        [        5      5      5      [        R                  " [        5      5      b   e[        [        R                  " [        [        [        5      5      5      [        R                  " [        5      5      b   e[        [        S[        -  [        -  [        -  SS9[        SS9n [        [        R                  " U 5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      [        -  5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      [        -  5      [        R                  " [        5      5      b   e[        [        R                  " [        [        5      5      5      SL d   e[        [        R                  " [        [        5      5      5      SL d   eg )NTr   Fr   rG   )r   r   rL   r8   r   r6   r/   r$   r   r0   rM   rO   r&   rJ   r-   r,   r   s    rZ   test_real_functionsr     st    qvvc!f~&&&qvvc!f~&&&qvvc!f~qvvay)T111qvvc!f~qvvay)T111 qvvc!f~&&&qvvc!f~qvvay)T111qvva#a&j!166!9-555qvvc!B$q&5123t;;;qvvc"Q$/01T999qvvc"Q$q&5123u<<< qvvc!f~%'''qvvc!A#h E)))qvvc!a%j!"e+++qvvc!f~qyy|,444qvvc!f~q{{1~.%777qvvc#a&k"AKKN3;;;qvvc#a&k"AIIaL1999	S2aE*A	>Bqvvbz199Q<(D000qvvc!fai !++a.1T999qvvc!fai !))A,/777 qvvbe}%%%qvvbe}%%%r\   c                     [        [        R                  " [        SS[        -   S/S[        -
  S[        /S[        * S//5      5      5      S:X  d   e[        [        R                  " [        SS[        -   S/S[        -   S[        /S[        * S//5      5      5      S:X  d   e[        SSS9n [        [        R                  " [        SS[        -   U /S[        -
  S[        /S[        * S//5      5      5      S :X  d   e[        [        R                  " [        S	5      5      5      S:X  d   e[        [        R                  " [        S
S[        S4S45      5      5      S:X  d   e[        [        R                  " [        S
SU S4S45      5      5      S :X  d   e[        SS[        -
  S/S[        -
  S[        * /S[        * S//5      n[        [        * S[        -   S/S[        -   SS[        -   /SS[        -   [        * //5      n[        [        R                  " U5      5      SL d   e[        [        R                  " U5      5      SL d   e[        [        R                  " US-  5      5      SL d   eUS-  nUR                  5         [        [        R                  " U5      5      SL d   e[        SS[        -
  S/U S[        * /S[        * S//5      n[        [        R                  " U5      5      b   eg )Nr   r   r   rG   TFr   rM   )      r   )r      r   r   r   r^   r   r   r   r   r   )	r   r   rW   r?   r   r(   r@   rX   simplify)r   ABC_As        rZ   test_matrixr     s    q{{6Aq1ua=1q5!Q-!aR"LMNOSWWWWq{{6Aq1ua=1q5!Q-!aR"LMNOSXXXXT"Aq{{6Aq1ua=1q5!Q-!aR"LMNOSWWWWq{{<(PQRSW[[[[q{{<Aqz;(OPQRV[[[[q{{<Aqz;(OPQRVZZZZ 	BFAQA2QB
;<A!QUAaAE 2QQODEAqq!"d***qq!"d***qq!t$%...	
AAJJLqq!"d***	!R!VQ!Qa!QZ8	9Bqr"#+++r\   c                  >   [        [        R                  " [        5      5      b   e[        [        R                  " [        5      5      SL d   e[        [        R                  " S[        -  5      5      SL d   e[        [        R                  " [        S-  5      5      SL d   e[        [        R                  " [        S5      5      5      SL d   e[        [        R                  " S[        S5      -  5      5      SL d   e[        [        R                  " [        S5      S-  5      5      SL d   e[        [        R                  " [        [        S5      -  5      5      SL d   e[        [        R                  " [        S[        [        S5      -  -   5      5      5      SL d   e[        [        R                  " S[        [        S5      [        SS5      -  -  -   5      5      SL d   e[        [        R                  " S[        [        S5      S[        -  -  -  -   5      5      b   e[        [        [        [        [        [        4 GH'  n [        [        R                  " U " S5      5      5      SL d   e[        [        R                  " U " SSS	95      5      SL d   e[        [        R                  " U " S
SS	95      5      SL d   e[        [        R                  " U " [        5      5      [        R                  " [        5      5      b   e[        [        R                  " U " [        5      5      [        R                  " [        5      [        R                  " [        5      -  5      SL a  GM(   e   [        [         4 GH*  n[        [        R                  " U" S5      5      5      SL d   e[        [        R                  " U" SSS	95      5      SL d   e[        [        R                  " U" SSS	95      5      SL d   e[        [        R                  " U" [        5      5      [        R                  " [        5      5      b   e[        [        R                  " U" [        5      5      [        R                  " [        5      [        R                  " [        S-
  5      -  5      SL a  GM+   e   ["        [$        4 H  n[        [        R                  " U" S5      5      5      SL d   e[        [        R                  " U" SSS	95      5      SL d   e[        [        R                  " U" [        5      5      [        R                  " [        5      5      SL a  M   e   [        [        R                  " [        [        S5      5      5      5      b   e[        [        R                  " [        [&        [        [        S5      -  -   5      5      5      b   e[        [        R                  " S5      5      SL d   e[        [        R                  " [        5      [        R(                  " [        5      5      SL d   e[        [        R(                  " [        5      [        R                  " [        5      5      SL d   e[        [        R                  " [+        S[        SS	95      [        R                  " [        5      5      b   e[        [        R                  " [+        [        [&        5      5      5      b   e[        [        R                  " [+        S[        SS	95      5      b   e[        [        R                  " [        [        [        -  -  5      5      b   e[        [        R                  " [        [,        -  5      [        R.                  " [,        5      [        R0                  " [,        5      -  5      SL d   e[        [        R                  " [        [&        -  5      [        R                  " [        5      [        R2                  " [&        5      -  5      SL d   eg )NTr   r   r   rG         Fr   r   g(\@)r   r   rp   r   r   r1   r!   r$   r/   r8   r9   r4   r5   r6   rh   r0   r2   r7   r3   r   transcendentalr&   r   rJ   rP   rK   r   s      rZ   test_algebraicr  *  s   q{{1~&&&q{{1~$&&&q{{1Q3 D(((q{{1Q3 D(((q{{47#$,,,q{{1T!W9%&$...q{{4719%&$...q{{1T!W9%&$...q{{4Ad1gI./0D888q{{1qa(2r*:!:::;<DDDq{{1qa2b5!11123;;;3T4-1;;qt$%...1;;qU345>>>1;;qU345===1;;qt$akk!n5===1;;qt$akk!nqyy|&CDMMM . 4[1;;qt$%...1;;qU345>>>1;;qU345===1;;qt$akk!n5===1;;qt$akk!nqyyQ7G&GHEQQQ  4[1;;qt$%...1;;qU345>>>1;;qt$akk!n5>>> 
 q{{4A<()111q{{4Ad1gI./0888q{{4 !T)))q{{1~q//23u<<<q"AKKN3u<<< q{{3q!e45q{{1~FNNNq{{3q!9%&...q{{3q!e456>>>q{{1r!t9%&...q{{2q5!!))A,A">?5HHHq{{1a4 Q!**Q-!?@DHHHr\   c                  r   [        [        R                  " [        5      5      b   e[        R
                  " [        R                  " [        5      5        [        [        R                  " [        5      5      SL d   e[        R                  " 5         [        [        R                  " [        5      5      b   eg)z Test ask with global assumptionsNT)r   r   rJ   r   r   addclearrv   r\   rZ   test_globalr  `  sq    qyy|$$$199Q<(qyy|$$$qyy|$$$r\   c                  P   [        [        R                  " [        5      5      b   e[	        5       n U R                  [        R                  " [        5      5        [        [        R                  " [        5      U S9SL d   e[        [        R                  " [        5      5      b   eg)z(Test ask with custom assumptions contextN)contextT)r   r   rJ   r   r   r  )local_contexts    rZ   test_custom_contextr  i  so    qyy|$$$&(Maiil#qyy|]3t;;;qyy|$$$r\   c            	      H   [        [        R                  " [        5      [        R                  " [        5      [        R
                  " [        5      -	  5      SL d   e[        [        R                  " [        5      [        [        R                  " [        5      [        R
                  " [        5      5      5      SL d   e[        [        R                  " [        5      [        [        R                  " [        5      [        R                  " [        5      5      5      SL d   eg r   )r   r   rQ   r   rL   rP   r:   r<   rv   r\   rZ   test_functions_in_assumptionsr  r  s    qzz!}affQi1::a=89UBBBqzz!}jAJJqMBCuLLLqzz!}c!&&)QZZ];<EEEr\   c                      [        [        R                  " [        5      [        R                  " [        5      -  [        R
                  " [        5      [        R                  " [        5      -	  S9SL d   eg )Nr   F)r   r   rQ   r   rJ   rL   rP   rv   r\   rZ   test_composite_askr  x  sK    qzz!}qyy|+FF1IA.0389 9 9r\   c                     [        S5      SL d   e[        S5      SL d   e[        [        R                  " [        5      ) [        R                  " [        5      5      SL d   e[        [        R
                  " [        5      ) [        R                  " [        5      5      b   e[        [        R                  " [        5      [        R                  " [        5      -  [        R                  " [        5      5      SL d   e[        [        R                  " [        5      [        R                  " [        5      -  5      b   e[        [        R
                  " [        5      [        R                  " [        5      -  [        R                  " [        5      5      SL d   e[        [        R
                  " [        5      [        R                  " [        5      -  5      b   e[        [        R
                  " [        5      [        R                  " [        5      -	  [        R                  " [        5      5      SL d   e[        [        [        R
                  " [        5      [        R                  " [        5      SS9[        R                  " [        5      5      SL d   e[        [        [        R
                  " [        5      [        R                  " [        5      SS95      b   e[        [        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      5      SL d   e[        [        [        R                  " [        5      [        R                  " [        5      5      5      b   e[        [        [        R                  " [        5      [        R                  " [        5      5      [        R                  " [        5      5      b   e[        [        R
                  " [        5      [        R                  " [        5      -  [        R
                  " [        5      [        R                  " [        5      -  5      SL d   eg )NTFr   )r   r   rQ   r   rP   rL   rI   rJ   r;   r:   rR   rv   r\   rZ   test_composite_propositionr  }  s   t9u:

1~qzz!}-555q	z1==+,444qzz!}qyy|+QZZ];uDDDqzz!}qyy|+,444qvvay199Q<'A74???qvvay199Q<'(000qvvayAJJqM)1::a=9UBBBw	q	1::a=5234::a=BEJK K Kwqvvay!**Q-%@AIIIz!))A,q	2AFF1I>$FFFz!))A,q	23;;;z!**Q-16		!EMMMqvvay199Q<'QYYq\)ABdJJJr\   c                     [        [        R                  " [        5      [        R                  " [        5      ) -  5      SL d   e[        [        R                  " [        5      [        R                  " [        5      ) -  5      SL d   eg ro   )r   r   rL   r   rv   r\   rZ   test_tautologyr    sV    qvvayAFF1I:%&$...qvvayAFF1I:%&%///r\   c                     [        [        R                  " [        5      [        R                  " [        5      [        R                  " [        5      -  5      SL d   e[        [        R
                  " [        5      [        R
                  " [        5      [        R
                  " [        5      -  5      b   e[        [        R
                  " [        5      [        R                  " [        5      [        R
                  " [        5      -	  5      b   e[        [        R                  " [        5      [        R                  " [        5      [        R                  " [        5      -	  ) 5      SL d   eg r   )r   r   rL   r   r   rP   rv   r\   rZ   test_composite_assumptionsr    s    qvvay!&&)affQi/0D888qzz!}ajjmajjm;<DDDqzz!}affQi1::a=89AAAqvvayAFF1I234<<<r\   c                  n   [        [        S 5         " S S[        5      n  [        5          [	        SU 5        SSS5        [        5          [        [        R                  " [        5      5      SL d   e SSS5        [        5          [        [        R                  " [        S-   5      5      b   e SSS5        [        5          [        SU 5        SSS5        [        ?[        [        S 5         " S	 S
[        5      n U" 5       [        l        [        R                  R                  [        5      S 5       n[        [        R                  " [        5      5      SL d   e[        [        R                  " [        S-   5      5      b   e [        ?[        [        S 5        g! , (       d  f       GNq= f! , (       d  f       GNG= f! , (       d  f       GN= f! , (       d  f       GN= f! [        5          [        SU 5        SSS5        [        ?f ! , (       d  f       [        ?f = f= f! [        ?f = f)z7test that you can add keys to the ask system at runtimec                  H    [        [        R                  " [        5      5      $ r   r   r   my_keyr   rv   r\   rZ   <lambda>(test_key_extensibility.<locals>.<lambda>      3qxx{#3r\   c                   $    \ rS rSr\S 5       rSrg),test_key_extensibility.<locals>.MyAskHandleri  c                     gr   rv   exprr   s     rZ   r)   3test_key_extensibility.<locals>.MyAskHandler.Symbol      r\   rv   N)__name__
__module____qualname____firstlineno__staticmethodr)   __static_attributes__rv   r\   rZ   MyAskHandlerr    s    		 
	r\   r*  r  NTrG   c                  H    [        [        R                  " [        5      5      $ r   r  rv   r\   rZ   r  r    r  r\   c                       \ rS rSrSrg)+test_key_extensibility.<locals>.MyPredicatei  rv   Nr$  r%  r&  r'  r)  rv   r\   rZ   MyPredicater-        r\   r/  c                     gr   rv   r   s     rZ   _!test_key_extensibility.<locals>._  r#  r\   c                  H    [        [        R                  " [        5      5      $ r   r  rv   r\   rZ   r  r    r  r\   )rC   AttributeErrorr   rD   r   r   r   r  r   r   r   registerr)   )r*  r/  r2  s      rZ   test_key_extensibilityr7    s}    >34z #%X|4 &#%qxx{#t+++ &#%qxxA'/// &
 $%8\2 &H
>34i =	
		6	"	 
#	188A;4'''188AaC=!)))H
>345 &%%%%%
 &%#%8\2 &H &%H Hs   
G+ F#G+ )F55G+ *G2G+ G B
H, #
F2-G+ 5
G?G+ 
GG+ 
G(+H)6HH)
H&H),H4c                      SSK Jn    " S SU 5      n[        R                  R	                  U5      S 5       n[        [        R                  " U" 5       5      5      SL d   eg)zBtest that new types can be added to the ask system at runtime
    r   )Basicc                       \ rS rSrSrg)'test_type_extensibility.<locals>.MyTypei  rv   Nr.  rv   r\   rZ   MyTyper;    r0  r\   r<  c                     gr   rv   r   s     rZ   r2  "test_type_extensibility.<locals>._  s    r\   TN)
sympy.corer9  r   rU   r6  r   )r9  r<  r2  s      rZ   test_type_extensibilityr@    sV     !  WWf  qwwvx !T)))r\   c                  6   [        [        [        R                  [        R                  5      [        [        R                  [        R
                  5      [        [        R
                  [        R                  5      5      n [        R                  [        R                  [        R
                  [        R                  1n[        U 5      n[        X5      nU[        R                     [        R
                  [        R                  [        R                  1:X  d   eg r   )	r=   r;   r   rJ   rK   rL   rM   r>   r   )known_factsknown_facts_keysknown_facts_cnfmappings       rZ   test_single_fact_lookuprF    s    gaii4ajj!&&1affaii02K 		1::qvvqyyA[)O !1CG1::1661::qyy"AAAAr\   c                  d   [        [        [        R                  " [        5      [        R
                  " [        5      5      [        [        R
                  " [        5      [        R                  " [        5      5      [        [        R                  " [        5      [        R                  " [        5      5      5      n [        R                  " [        5      [        R
                  " [        5      [        R                  " [        5      [        R                  " [        5      1n[        X5      [        R                  [        R                  1[        5       4[        R                  [        R                  [        R                  [        R
                  [        R                  1[        5       4[        R
                  [        R                  [        R
                  [        R                  1[        5       4[        R                  [        R                  [        R                  1[        5       40:X  d   eg r   )
r=   r;   r   rJ   r   rK   rL   rM   r   set)rB  rC  s     rZ   test_generate_known_facts_dictrI    s&   gaiilAJJqM:ajjmQVVAY7affQi168K 		!ajjmQVVAY		!M$%5C	
aii[#%(	
aiiAJJ?G	
qyy!**aff5su=	
199aff%su-	// / /r\   c                  R   [        S5      n [        U 5      n[        R                  " U5      n[	        5       nUR                  S UR                   5       5        [        5       U:X  d   e[        5        Vs/ s H
  oD" U 5      PM     nn[        XQ5      n[        5       U:X  d   egs  snf )z)"Test that ask_generated.py is up-to-dater   c           	   3   ^   #    U  H#  n[        S  [        U[        S9 5       5      v   M%     g7f)c              3   v   #    U  H/  n[        UR                  R                  UR                  5      v   M1     g 7fr   )r   argfunctionis_Not).0lits     rZ   	<genexpr>8test_known_facts_consistent.<locals>.<genexpr>.<genexpr>  s*     bNasWSWW%5%5szzBBNas   79)keyN)	frozensetsortedstr)rP  cls     rZ   rR  .test_known_facts_consistent.<locals>.<genexpr>  s*     ymxgi9bfUW]`Nabbbmxs   +-N)r)   r   r   to_CNFrH  updateclausesr   r   r   r   )r   factcnfr\  predkeysrE  s          rZ   test_known_facts_consistentra    s     	sA1D
**T
CeGNNympmxmxyy G+++ 4 67 6DG 6D7'3G!W,,, 8s   5B$c            
         [        [        R                  " S[        S5      S-  [	        S5      S-  -   -   5      5      SL d   e[        [        R
                  " [        [        S5      [        S5      SS95      5      SL d   e[        [        R                  " [        [        S5      [        S5      SS95      5      SL d   e[        [        R                  " [        [        S5      [        S5      SS95      5      SL d   eg )Nl   
>V3&Z
 rG   r   TFr   )	r   r   rU   r6   r8   rR   r   r%   rJ   rv   r\   rZ   test_Add_queriesrc    s    qww+s1vqy3q619/DEFG4OOOqvvc!A$!u5674???qwws1Q41678EAAAqyyQqT1Q4%89:dBBBr\   c                      [        [        R                  " [        S-   5      5         [	        [        R                  " [        5      5      (       a   e S S S 5        g ! , (       d  f       g = f)NrG   )r   r   rP   r   r   rv   r\   rZ   test_positive_assumingre   	  s?    	!**QU#	$qzz!}%%%%% 
%	$	$s   +A
A*c                  &    [        [        S 5        g )Nc                  ^    [        [        [        [        5      -  [        R
                  5      $ r   )r   r$   r0   r   r   rL   rv   r\   rZ   r  !test_issue_5421.<locals>.<lambda>	  s    c"SV)QVV4r\   rC   	TypeErrorrv   r\   rZ   test_issue_5421rk  	  s    
945r\   c                  &    [        [        S 5        g )Nc                  4    [        [        R                  5      $ r   )r   r   rP   rv   r\   rZ   r  !test_issue_3906.<locals>.<lambda>
	  s    c!**or\   ri  rv   r\   rZ   test_issue_3906ro  		  s    
9-.r\   c                  6   [        [        R                  " [        [        5      S-  5      [        R                  " [        5      5      b   e[        [        R
                  " [        [        5      S-  5      ) [        R                  " [        5      5      SL d   eg )Nr   T)r   r   rP   r0   r   rQ   rv   r\   rZ   test_issue_5833rq  	  s_    qzz#a&!)$ajjm4<<<

3q619%%qzz!}5===r\   c                  H    [        [        S 5        [        [        S 5        g )Nc                      [        [        R                  " [        5      [        R                  " [        5      [        R                  " [        5      -  5      $ r   )r   r   rP   r   rQ   rv   r\   rZ   r  !test_issue_6732.<locals>.<lambda>	  (    s1::a=!**Q-!**Q-2OPr\   c                      [        [        R                  " [        5      [        R                  " [        5      [        R                  " [        5      -  5      $ r   )r   r   rQ   r   rP   rv   r\   rZ   r  rt  	  ru  r\   )rC   
ValueErrorrv   r\   rZ   test_issue_6732rx  	  s    
:PQ
:PQr\   c            
      	   [        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      [        R
                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      b   e[        [        R                  " [        [        SS5      5      5      5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        5      [        R                  " [        S-
  5      -  5      SL d   e[        [        R                  " [        [        5      5      [        R
                  " [        5      [        R                  " [        S-   5      -  5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      b   e[        [        R                  " [        [        SS5      5      5      5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        S-   5      [        R                  " [        S-
  5      -  5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        S-
  5      5      b   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      [        R                  " [        5      5      SL d   e[        [        R                  " [        [        5      5      5      b   eg )NTFrG   r   )r   r   rP   r5   r   rQ   ri   r   r4   r!   r   r   r2   r3   rL   rO   rv   r\   rZ   test_issue_7246rz  	  s   qzz$q'"AJJqM2d:::qzz$q'"AJJqM2e;;;qzz$q'"AFF1I.%777qzz$q'"#+++qzz$q'"AJJqM2:::qzz$q'"AFF1I.666qzz$x1~./0D888qzz$q'"AJJqMAMM!a%4H$HITQQQqzz$q'"AJJqMAMM!a%4H$HIURRRqzz$q'"AJJqM2:::qzz$x1~./0D888qzz$q'"AMM!a%$81==Q;O$OPTXXXXqzz$q'"AMM!a%$89AAAqzz$q'"AJJqM2d:::qzz$q'"AFF1I.$666qzz$q'"AKKN3u<<<qzz$q'"#+++r\   c                      [        [        R                  " [        [        5      5      [        R
                  " [        5      5      SL d   eg r   )r   r   rP   r2   r   ri   rv   r\   rZ   test_issue_7246_failingr|  .	  s.     qzz$q'"AFF1I.$666r\   c                  
   [        SSS9n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        SSS9n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R
                  " U 5      5      SL d   e[        SSS9n [        [        R                  " U 5      5      b   e[        [        R
                  " U 5      5      SL d   e[        SSS9n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        SSS9n [        [        R                  " U 5      5      SL d   e[        SSS	9n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        SSS
9n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      b   e[        [        R                  " U 5      5      b   e[        SSS9n [        [        R                  " U 5      5      SL d   e[        SSS9n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        SSS9n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        SSS9n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        SSS9n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        SSS9n [        [        R                  " U 5      5      SL d   e[        [        R                  " U 5      5      SL d   e[        SSS9n [        [        R                  " U 5      5      SL d   e[        SSS9n [        [        R                   " U 5      5      SL d   e[        SSS9n [        [        R"                  " U 5      5      SL d   e[        [        R$                  " U 5      5      SL d   e[        SSS9n [        [        R$                  " U 5      5      SL d   e[        [        R"                  " U 5      5      SL d   eg )Nr   T)rL   F)rO   r   )rP   )rI   )rQ   )r   )rT   )rU   )rV   )rR   )rS   )rh   )ri   rJ   )rK   )rN   )r(   r   r   rL   rO   rM   rP   rQ   rI   ri   rT   rU   rV   rR   rS   rh   rJ   rK   rN   )r   s    rZ   test_check_old_assumptionr  5	  sR   $Aqvvay>T!!!q{{1~%'''qyy|$$$t$Aqvvay>U"""q{{1~$&&&qyy|$$$T"Aqvvay>!!!qyy|$$$d#Aqzz!}%%%qzz!}&&&qvvay>T!!!'Aq}}Q E)))d#Aqzz!}&&&qzz!}%%%&Aqzz!}&&&qzz!}%%%qvvay>!!!D!Aqxx{t###4 Aqwwqz?d"""q{{1~%'''t$Aqwwqz?e###q{{1~$&&&$Aqvvay>T!!!quuQx=E!!!Aqvvay>U"""quuQx=D   T"Aqyy|$$$qvvay>U"""$Aqvvay>T!!!T"Aqyy|$$$d#Aqzz!}%%%q||A5(((%Aq||A4'''qzz!}&&&r\   c                  X   [        [        R                  " S5      5      b   e[        [        R                  " S5      5      b   e[        [        R                  " S5      5      b   e[        [        R
                  " S5      5      b   e[        [        R                  " S5      5      b   eg )Nrd   g      @g      @g       @)r   r   rJ   rU   rV   rR   rS   rv   r\   rZ   test_issue_9636r  {	  s    qyy~&&&qwws|$$$q{{3 (((qvvc{###quuSz?"""r\   c                  P   [        [        R                  " S[        -  5      5      b   e[        [        R                  " S[        * -  5      5      b   e[        [        R                  " S[        -  5      5      b   e[        [        R                  " S[        * -  5      5      b   eg Nr   )r   r   rO   r   rL   rv   r\   rZ   test_autosimp_used_to_failr  	  s|    q{{1a4 !)))q{{1r7#$,,,qvvad|$$$qvva1"g'''r\   c                    ^ SSK Jm   " U4S jS[        5      n  [        5          [	        SU 5        S S S 5        [        SSS9n[        5          [        [        R                  " S	5      5      (       d   e S S S 5        [        5          [        [        R                  " U5      [        R                  " U5      5      (       d   e S S S 5        [        ? " S
 S[        5      n U" 5       [        l        [        R                  R                  [        5      S 5       n[        R                  R                  [
        5      U4S j5       n[        [        R                  " S	5      5      (       d   e[        [        R                  " U5      [        R                  " U5      5      (       d   e [        ?g ! , (       d  f       GN= f! , (       d  f       GNT= f! , (       d  f       GN= f! [        ?f = f! [        ?f = f)Nr   	conjunctsc                   <   > \ rS rSr\S 5       r\U 4S j5       rSrg)/test_custom_AskHandler.<locals>.MersenneHandleri	  c                 h    [        [        R                  " [        U S-   S5      5      5      (       a  gg NrG   r   Tr   r   rJ   r0   r   s     rZ   r    7test_custom_AskHandler.<locals>.MersenneHandler.Integer	  )    199S1-.// 0r\   c                     > U T" U5      ;   a  gg r   rv   r!  r   r  s     rZ   r)   6test_custom_AskHandler.<locals>.MersenneHandler.Symbol	      y-- .r\   rv   N)r$  r%  r&  r'  r(  r    r)   r)  r  s   rZ   MersenneHandlerr  	  s)    		 
	 
	 
	r\   r  mersenner   Tr~  r   c                       \ rS rSrSrg)1test_custom_AskHandler.<locals>.MersennePredicatei	  rv   Nr.  rv   r\   rZ   MersennePredicater  	  r0  r\   r  c                 h    [        [        R                  " [        U S-   S5      5      5      (       a  gg r  r  r   s     rZ   r2  !test_custom_AskHandler.<locals>._	  r  r\   c                     > U T" U5      ;   a  gg r   rv   r  s     rZ   r2  r  	  r  r\   )sympy.logic.boolalgr  r   rD   r   r)   r   r   r  r   r6  r    )r  r   r  r2  r  s       @rZ   test_custom_AskHandlerr  	  s\   -* 	#%Z9 &3%#%qzz!}%%%% &#%qzz!}ajjm4444 & JI &(
	
		W	%	 
&	 
		V	$	 
%	 1::a=!!!!1::a=!**Q-0000J5 &% &%%% J$ Js^   
G' F1G' 'G6G' <GG' #CG2 1
G ;G' 
GG' 
G$G' 'G/2G:c                      " S S[         5      n  U " 5       [        l        [        R                  R                  [        [        5      S 5       n[        R                  R                  [        [        [        5      S 5       n[        [        R                  " SS5      5      (       d   e[        [        R                  " SSS	5      5      (       d   e [        ?g ! [        ?f = f)
Nc                       \ rS rSrSrg).test_polyadic_predicate.<locals>.SexyPredicatei	  rv   Nr.  rv   r\   rZ   SexyPredicater  	  r0  r\   r  c                 n   ^ [        X/5      n[        U4S jU 5       5      (       d  gUS   US   -
  S:H  $ )Nc              3   d   >#    U  H%  n[        [        R                  " U5      T5      v   M'     g 7fr   r   r   rU   rP  r   r   s     rZ   rR  5test_polyadic_predicate.<locals>._.<locals>.<genexpr>	  #     BTs1771:{33T   -0FrG   r      rV  all)int1int2r   r   s     ` rZ   r2  "test_polyadic_predicate.<locals>._	  s;    4,'DBTBBB7T!W$))r\   c                    ^ [        XU/5      n[        U4S jU 5       5      (       d  gUS   US   -
  S:H  =(       a    US   US   -
  S:H  $ )Nc              3   d   >#    U  H%  n[        [        R                  " U5      T5      v   M'     g 7fr   r  r  s     rZ   rR  r  	  r  r  Fr   rG   r  r   r  )r  r  int3r   r   s      ` rZ   r2  r  	  sU    4t,-DBTBBB7T!W$)Dd1gQ.?1.DDr\   r   r^   r         )r   r   	sexyprimer6  r    r   )r  r2  s     rZ   test_polyadic_predicater  	  s    	 #o	
		gw	/	* 
0	* 
		gw	8	E 
9	E 1;;q"%&&&&1;;q"b)****KAKs   C C C!c                      [        S5      R                  b   e " S S[         5      n U " [        S5      5      nU " [        S5      5      nUR                  UR                  L d   eg )Nmypredicatec                       \ rS rSrSrg)5test_Predicate_handler_is_unique.<locals>.MyPredicatei	  rv   Nr.  rv   r\   rZ   r/  r  	  r0  r\   r/  mp1mp2)r   handlerr'   )r/  r  r  s      rZ    test_Predicate_handler_is_uniquer  	  sY     ]#++333i 
c%j
!C
c%j
!C;;#++%%%r\   c                  $   [        [        R                  " [        S5      [        R                  " [        5      5      (       d   e[        [        R                  " [        S5      [        R
                  " [        5      5      (       a   e[        [        R                  " [        S5      [        R                  " [        5      5      (       a   e[        [        R                  " [        S5      [        R
                  " [        5      5      (       d   eg r  )r   r   r   r   ri   rh   r   rv   r\   rZ   test_relationalr  	  s    qttAqz166!9%%%%1441:qyy|,,,,1441:qvvay))))qttAqz199Q<((((r\   c                  
   [        [        R                  " [        5      [        R                  " [        5      [        R
                  " [        [        5      -  5      b   e[        [        R                  " [        5      [        R                  " [        5      S[        :  -  5      b   e[        [        R                  " [        5      [        R                  " [        5      [        R                  " S[        5      -  5      b   eg r  )r   r   r  r   rp   rP   r   r   rv   r\   rZ   test_issue_25221r  	  s    q"AKKNQZZ!_$DEMMMq"AKKNa!e$<=EEEq"AKKNQTT!AY$>?GGGr\   c                  h    [         R                  n [        [        R                  " U 5      5      b   eg r   )r%   r   r   r   rQ   r   s    rZ   test_issue_27440r  	  s$    
%%Cqzz#'''r\   )	sympy.abcr   r   r   r   r   r   r	   r
   r   r   sympy.assumptionsr   r   r   r   r   sympy.assumptions.assumer   r   r   sympy.assumptions.cnfr   r   sympy.assumptions.factsr   r   r   r   sympy.assumptions.handlersr   sympy.assumptions.ask_generatedr   r   sympy.core.addr   sympy.core.numbersr   r    r!   r"   r#   r$   sympy.core.singletonr%   sympy.core.powerr&   sympy.core.symbolr'   r(   r)   (sympy.functions.combinatorial.factorialsr*   $sympy.functions.elementary.complexesr+   r,   r-   r.   &sympy.functions.elementary.exponentialr/   r0   (sympy.functions.elementary.miscellaneousr1   (sympy.functions.elementary.trigonometricr2   r3   r4   r5   r6   r7   r8   r9   r  r:   r;   r<   r=   r>   sympy.matricesr?   r@   sympy.testing.pytestrA   rB   rC   rD   rE   re   r[   r_   rb   rf   rj   rm   rw   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r7  r@  rF  rI  ra  rc  re  rk  ro  rq  rx  rz  r|  r  r  r  r  r  r  r  r  r  rv   r\   rZ   <module>r     s   2 2 2  L L .F F 1  B B "   2 2 > D D = 90 0 0 E E /  ,(,(,(&,R+*,,121424-0-&`,(^,B,*,*,*h"T|2~2S
*  
 , ,.. H) H)VCDL T TU: KX KX\fBR LX LX^'DT',T=:;<GCT T TTF@ 8: 8:v::2. @F & &B,0 2I 2Ij%%F9
K$0=%5P*	B
/ - -C&
6/>
R
,. 7 7C'L#((V6
&)H(r\   