a
    t@8bÏ~ ã                   @   s  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
 d dlmZmZmZmZmZ d dlmZmZmZ d dlmZmZ d dlmZmZmZmZ d dlmZ d dlm Z m!Z! d dl"m#Z# d d	l$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d d
l+m,Z, d dl-m.Z. d dl/m0Z0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z< d dl=m>Z> d dl?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZG d dlHmIZImJZJmKZKmLZLmMZM d dlNmOZOmPZP d dlQmRZRmSZSmTZTmUZUmVZV d dlWZWdd„ ZXdd„ ZYdd„ ZZdd„ Z[dd„ Z\d d!„ Z]d"d#„ Z^d$d%„ Z_d&d'„ Z`d(d)„ Zad*d+„ Zbd,d-„ Zcd.d/„ Zdd0d1„ Zed2d3„ Zfd4d5„ Zgd6d7„ Zhd8d9„ ZieRd:d;„ ƒZjd<d=„ ZkeVd>d?„ ƒZld@dA„ ZmeRdBdC„ ƒZndDdE„ ZodFdG„ ZpeVdHdI„ ƒZqdJdK„ ZreVdLdM„ ƒZsdNdO„ ZtdPdQ„ ZudRdS„ ZvdTdU„ ZwdVdW„ ZxeRdXdY„ ƒZydZd[„ Zzd\d]„ Z{eVd^d_„ ƒZ|d`da„ Z}dbdc„ Z~ddde„ Zdfdg„ Z€eVdhdi„ ƒZdjdk„ Z‚eVdldm„ ƒZƒdndo„ Z„dpdq„ Z…drds„ Z†dtdu„ Z‡dvdw„ Zˆdxdy„ Z‰dzd{„ ZŠd|d}„ Z‹d~d„ ZŒd€d„ Zd‚dƒ„ ZŽeSd„d…„ ƒZd†d‡„ Zdˆd‰„ Z‘dŠd‹„ Z’dŒd„ Z“dŽd„ Z”dd‘„ Z•d’d“„ Z–eRd”d•„ ƒZ—d–d—„ Z˜d˜d™„ Z™dšd›„ Zšdœd„ Z›dždŸ„ Zœd d¡„ Zd¢d£„ ZždS )¤é    )
Ú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                  C   sr  d} t t | ¡ƒdu sJ ‚t t | ¡ƒdu s0J ‚t t | ¡ƒdu sFJ ‚t t | ¡ƒdu s\J ‚t t | ¡ƒdu srJ ‚t t | ¡ƒdu sˆJ ‚t t | ¡ƒdu sžJ ‚t t 	| ¡ƒdu s´J ‚t t 
| ¡ƒdu sÊJ ‚t t | ¡ƒdu sàJ ‚t t | ¡ƒdu söJ ‚t t | ¡ƒdu sJ ‚t t | ¡ƒdu s&J ‚t t | ¡ƒdu s>J ‚t t | ¡ƒdu sVJ ‚t t | ¡ƒdu snJ ‚d S )Né   TF©r   r   ÚcommutativeÚintegerÚrationalÚrealÚcomplexÚ
irrationalÚ	imaginaryÚpositiveÚnegativeÚevenÚoddÚfiniteÚprimeÚ	compositeÚ	hermitianÚantihermitian©r   © rX   úAlib/python3.9/site-packages/sympy/assumptions/tests/test_query.pyÚ
test_int_1   s"    rZ   c                  C   sr  d} t t | ¡ƒdu sJ ‚t t | ¡ƒdu s0J ‚t t | ¡ƒdu sFJ ‚t t | ¡ƒdu s\J ‚t t | ¡ƒdu srJ ‚t t | ¡ƒdu sˆJ ‚t t | ¡ƒdu sžJ ‚t t 	| ¡ƒdu s´J ‚t t 
| ¡ƒdu sÊJ ‚t t | ¡ƒdu sàJ ‚t t | ¡ƒdu söJ ‚t t | ¡ƒdu sJ ‚t t | ¡ƒdu s&J ‚t t | ¡ƒdu s>J ‚t t | ¡ƒdu sVJ ‚t t | ¡ƒdu snJ ‚d S )Né   TFrF   rW   rX   rX   rY   Útest_int_111   s"    r\   c                  C   sr  d} t t | ¡ƒdu sJ ‚t t | ¡ƒdu s0J ‚t t | ¡ƒdu sFJ ‚t t | ¡ƒdu s\J ‚t t | ¡ƒdu srJ ‚t t | ¡ƒdu sˆJ ‚t t | ¡ƒdu sžJ ‚t t 	| ¡ƒdu s´J ‚t t 
| ¡ƒdu sÊJ ‚t t | ¡ƒdu sàJ ‚t t | ¡ƒdu söJ ‚t t | ¡ƒdu sJ ‚t t | ¡ƒdu s&J ‚t t | ¡ƒdu s>J ‚t t | ¡ƒdu sVJ ‚t t | ¡ƒdu snJ ‚d S )Né   TFrF   rW   rX   rX   rY   Útest_int_12E   s"    r^   c                  C   s  d} t t | ¡ƒdu sJ ‚t t | ¡ƒdu s0J ‚t t | ¡ƒd u sFJ ‚t t | ¡ƒdu s\J ‚t t | ¡ƒdu srJ ‚t t | ¡ƒd u sˆJ ‚t t | ¡ƒdu sžJ ‚t t 	| ¡ƒdu s´J ‚t t 
| ¡ƒdu sÊJ ‚t t | ¡ƒdu sàJ ‚t t | ¡ƒdu söJ ‚t t | ¡ƒdu sJ ‚t t | ¡ƒdu s&J ‚t t | ¡ƒdu s>J ‚t t | ¡ƒdu sVJ ‚t t | ¡ƒdu snJ ‚d} t t | ¡ƒdu sŠJ ‚t t | ¡ƒdu s¢J ‚t t | ¡ƒd u sºJ ‚t t | ¡ƒdu sÒJ ‚t t | ¡ƒdu sêJ ‚t t | ¡ƒd u sJ ‚t t | ¡ƒdu sJ ‚t t 	| ¡ƒdu s2J ‚t t 
| ¡ƒdu sJJ ‚t t | ¡ƒdu sbJ ‚t t | ¡ƒdu szJ ‚t t | ¡ƒdu s’J ‚t t | ¡ƒdu sªJ ‚t t | ¡ƒdu sÂJ ‚t t | ¡ƒdu sÚJ ‚t t | ¡ƒdu sòJ ‚t t tj¡ƒd u sJ ‚d S )Nç      ð?TFgaÃÓ+eÙ@)r   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   Úmathr#   rW   rX   rX   rY   Útest_float_1Y   sF    ra   c                  C   sŽ  t dƒ} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s4J ‚tt | ¡ƒdu sJJ ‚tt | ¡ƒdu s`J ‚tt | ¡ƒdu svJ ‚tt | ¡ƒdu sŒJ ‚tt 	| ¡ƒdu s¢J ‚tt 
| ¡ƒdu s¸J ‚tt | ¡ƒdu sÎJ ‚tt | ¡ƒdu säJ ‚tt | ¡ƒdu súJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s*J ‚tt | ¡ƒdu sBJ ‚tt | ¡ƒdu sZJ ‚tt | ¡ƒdu srJ ‚tt | ¡ƒdu sŠJ ‚d S )Nr   FT)r   r   r   ÚnonzeroÚzerorG   rH   rI   rJ   rK   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_zero_0‚   s$    rd   c                  C   s¦  t dƒ} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s4J ‚tt | ¡ƒdu sJJ ‚tt | ¡ƒdu s`J ‚tt | ¡ƒdu svJ ‚tt | ¡ƒdu sŒJ ‚tt 	| ¡ƒdu s¢J ‚tt 
| ¡ƒdu s¸J ‚tt | ¡ƒdu sÎJ ‚tt | ¡ƒdu säJ ‚tt | ¡ƒdu súJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s*J ‚tt | ¡ƒdu sBJ ‚tt | ¡ƒdu sZJ ‚tt | ¡ƒdu srJ ‚tt | ¡ƒdu sŠJ ‚tt | ¡ƒdu s¢J ‚d S )NéÿÿÿÿTF)r   r   r   rb   rc   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_negativeone—   s&    rf   c                   C   sþ  t t t¡ƒdu sJ ‚t t t¡ƒdu s,J ‚t t t¡ƒdu sBJ ‚t t t¡ƒdu sXJ ‚t t t¡ƒdu snJ ‚t t t¡ƒdu s„J ‚t t 	t¡ƒdu sšJ ‚t t 
t¡ƒdu s°J ‚t t t¡ƒdu sÆJ ‚t t t¡ƒdu sÜJ ‚t t t¡ƒdu sòJ ‚t t t¡ƒdu s
J ‚t t t¡ƒdu s"J ‚t t t¡ƒdu s:J ‚t t t¡ƒdu sRJ ‚t t t¡ƒdu sjJ ‚t t t¡ƒdu s‚J ‚t t t¡ƒdu sšJ ‚t t t¡ƒdu s²J ‚t t t¡ƒdu sÊJ ‚t t t¡ƒdu sâJ ‚t t t¡ƒdu súJ ‚d S ©NTF)r   r   rG   r!   rH   rI   Ú	algebraicrJ   Úextended_realrK   rL   rM   rN   Úextended_positiverO   rP   rQ   rR   ÚinfiniterS   rT   rU   rV   Úpositive_infiniteÚnegative_infiniterX   rX   rX   rY   Útest_infinity­   s,    rn   c                  C   s  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s2J ‚tt | ¡ƒdu sHJ ‚tt | ¡ƒdu s^J ‚tt | ¡ƒdu stJ ‚tt 	| ¡ƒdu sŠJ ‚tt 
| ¡ƒdu s J ‚tt | ¡ƒdu s¶J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu søJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s(J ‚tt | ¡ƒdu s@J ‚tt | ¡ƒdu sXJ ‚tt t¡ƒdu spJ ‚tt | ¡ƒdu sˆJ ‚tt | ¡ƒdu s J ‚tt | ¡ƒdu s¸J ‚tt | ¡ƒdu sÐJ ‚tt t ¡ƒdu sêJ ‚tt t ¡ƒdu sJ ‚d S rg   )r$   ZNegativeInfinityr   r   rG   rH   rI   rh   rJ   ri   rK   rL   rM   rN   rO   Úextended_negativerP   rQ   rR   rk   r!   rS   rT   rU   rV   rl   rm   )ZmmrX   rX   rY   Útest_neg_infinityÆ   s.    rp   c                   C   s  t t t¡ƒdu sJ ‚t t t¡ƒdu s,J ‚t t t¡ƒdu sBJ ‚t t t¡ƒdu sXJ ‚t t t¡ƒdu snJ ‚t t t¡ƒdu s„J ‚t t 	t¡ƒdu sšJ ‚t t 
t¡ƒdu s°J ‚t t t¡ƒdu sÆJ ‚t t t¡ƒdu sÜJ ‚t t t¡ƒdu sòJ ‚t t t¡ƒdu s
J ‚t t t¡ƒdu s"J ‚t t t¡ƒdu s:J ‚t t t¡ƒdu sRJ ‚t t t¡ƒdu sjJ ‚t t t¡ƒdu s‚J ‚t t t¡ƒdu sšJ ‚t t t¡ƒdu s²J ‚t t t¡ƒdu sÊJ ‚t t t¡ƒdu sâJ ‚t t t¡ƒdu súJ ‚t t t¡ƒdu sJ ‚d S rg   )r   r   rG   r"   rH   rI   rh   rJ   ri   rK   rL   rM   rN   rO   rc   rb   rP   rQ   rR   rk   rS   rT   rU   rV   rl   rm   rX   rX   rX   rY   Útest_complex_infinityà   s.    rq   c                  C   sÔ  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒd u s2J ‚tt | ¡ƒd u sHJ ‚tt | ¡ƒd u s^J ‚tt | ¡ƒd u stJ ‚tt 	| ¡ƒd u sŠJ ‚tt 
| ¡ƒd u s J ‚tt | ¡ƒd u s¶J ‚tt | ¡ƒd u sÌJ ‚tt | ¡ƒd u sâJ ‚tt | ¡ƒd u søJ ‚tt | ¡ƒd u sJ ‚tt | ¡ƒd u s(J ‚tt | ¡ƒd u s@J ‚tt | ¡ƒd u sXJ ‚tt | ¡ƒd u spJ ‚tt | ¡ƒd u sˆJ ‚tt | ¡ƒd u s J ‚tt | ¡ƒd u s¸J ‚tt | ¡ƒd u sÐJ ‚d S ©NT)r$   ZNaNr   r   rG   rH   rI   rh   rJ   ri   rK   rL   rM   rN   rb   rc   rP   rQ   rR   rk   rS   rT   rU   rV   )ÚnanrX   rX   rY   Útest_nanú   s*    rt   c                  C   s  t ddƒ} tt | ¡ƒdu s J ‚tt | ¡ƒdu s6J ‚tt | ¡ƒdu sLJ ‚tt | ¡ƒdu sbJ ‚tt | ¡ƒdu sxJ ‚tt | ¡ƒdu sŽJ ‚tt 	| ¡ƒdu s¤J ‚tt 
| ¡ƒdu sºJ ‚tt | ¡ƒdu sÐJ ‚tt | ¡ƒdu sæJ ‚tt | ¡ƒdu süJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s,J ‚tt | ¡ƒdu sDJ ‚tt | ¡ƒdu s\J ‚tt | ¡ƒdu stJ ‚t ddƒ} tt 
| ¡ƒdu s–J ‚tt | ¡ƒdu s®J ‚t ddƒ} tt | ¡ƒdu sÐJ ‚tt 
| ¡ƒdu sèJ ‚t ddƒ} tt 
| ¡ƒdu s
J ‚tt | ¡ƒdu s"J ‚t ddƒ} tt 
| ¡ƒdu sDJ ‚tt | ¡ƒdu s\J ‚t ddƒ} tt 
| ¡ƒdu s~J ‚tt | ¡ƒdu s–J ‚t d	dƒ} tt | ¡ƒdu s¸J ‚tt 
| ¡ƒdu sÐJ ‚t d	dƒ} tt 
| ¡ƒdu sòJ ‚tt | ¡ƒdu s
J ‚d S )
Né   é   TFrE   é   éýÿÿÿre   éûÿÿÿ)r    r   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   )ÚrrX   rX   rY   Útest_Rational_number  sL    







r{   c                  C   sv  t dƒ} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s4J ‚tt | ¡ƒdu sJJ ‚tt | ¡ƒdu s`J ‚tt | ¡ƒdu svJ ‚tt | ¡ƒdu sŒJ ‚tt 	| ¡ƒdu s¢J ‚tt 
| ¡ƒdu s¸J ‚tt | ¡ƒdu sÎJ ‚tt | ¡ƒdu säJ ‚tt | ¡ƒdu súJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s*J ‚tt | ¡ƒdu sBJ ‚tt | ¡ƒdu sZJ ‚tt | ¡ƒdu srJ ‚d S )Né   TF)r0   r   r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_sqrt_2B  s"    r}   c                  C   s  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s2J ‚tt | ¡ƒdu sHJ ‚tt | ¡ƒdu s^J ‚tt | ¡ƒdu stJ ‚tt 	| ¡ƒdu sŠJ ‚tt 
| ¡ƒdu s J ‚tt | ¡ƒdu s¶J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu søJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s(J ‚tt | ¡ƒdu s@J ‚tt | ¡ƒdu sXJ ‚tt | ¡ƒdu spJ ‚tt | ¡ƒdu sˆJ ‚t jd } tt | ¡ƒdu sªJ ‚tt | ¡ƒdu sÂJ ‚tt | ¡ƒdu sÚJ ‚tt | ¡ƒdu sòJ ‚tt | ¡ƒdu s
J ‚tt 	| ¡ƒdu s"J ‚tt 
| ¡ƒdu s:J ‚tt | ¡ƒdu sRJ ‚tt | ¡ƒdu sjJ ‚tt | ¡ƒdu s‚J ‚tt | ¡ƒdu sšJ ‚tt | ¡ƒdu s²J ‚tt | ¡ƒdu sÊJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu súJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s*J ‚dt j } tt | ¡ƒdu sLJ ‚tt | ¡ƒdu sdJ ‚tt | ¡ƒdu s|J ‚tt | ¡ƒdu s”J ‚tt | ¡ƒdu s¬J ‚tt 	| ¡ƒdu sÄJ ‚tt 
| ¡ƒdu sÜJ ‚tt | ¡ƒdu sôJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s$J ‚tt | ¡ƒdu s<J ‚tt | ¡ƒdu sTJ ‚tt | ¡ƒdu slJ ‚tt | ¡ƒdu s„J ‚tt | ¡ƒdu sœJ ‚tt | ¡ƒdu s´J ‚tt | ¡ƒdu sÌJ ‚t jd } tt | ¡ƒdu sîJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s6J ‚tt | ¡ƒdu sNJ ‚tt 	| ¡ƒdu sfJ ‚tt 
| ¡ƒdu s~J ‚tt | ¡ƒdu s–J ‚tt | ¡ƒdu s®J ‚tt | ¡ƒdu sÆJ ‚tt | ¡ƒdu sÞJ ‚tt | ¡ƒdu söJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s&J ‚tt | ¡ƒdu s>J ‚tt | ¡ƒdu sVJ ‚tt | ¡ƒdu snJ ‚dt j d } tt | ¡ƒdu s”J ‚tt | ¡ƒdu s¬J ‚tt | ¡ƒdu sÄJ ‚tt | ¡ƒdu sÜJ ‚tt | ¡ƒdu sôJ ‚tt 	| ¡ƒdu sJ ‚tt 
| ¡ƒdu s$J ‚tt | ¡ƒdu s<J ‚tt | ¡ƒdu sTJ ‚tt | ¡ƒdu slJ ‚tt | ¡ƒdu s„J ‚tt | ¡ƒdu sœJ ‚tt | ¡ƒdu s´J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu säJ ‚tt | ¡ƒdu süJ ‚tt | ¡ƒdu sJ ‚d S ©NTFrE   r|   )r$   ZPir   r   rG   rH   rI   rh   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_piV  s´    


r   c                  C   sŒ  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s2J ‚tt | ¡ƒdu sHJ ‚tt | ¡ƒdu s^J ‚tt | ¡ƒdu stJ ‚tt 	| ¡ƒdu sŠJ ‚tt 
| ¡ƒdu s J ‚tt | ¡ƒdu s¶J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu søJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s(J ‚tt | ¡ƒdu s@J ‚tt | ¡ƒdu sXJ ‚tt | ¡ƒdu spJ ‚tt | ¡ƒdu sˆJ ‚d S rg   )r$   ZExp1r   r   rG   rH   rI   rh   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_E·  s$    r€   c                  C   sŒ  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s2J ‚tt | ¡ƒdu sHJ ‚tt | ¡ƒdu s^J ‚tt | ¡ƒdu stJ ‚tt 	| ¡ƒdu sŠJ ‚tt 
| ¡ƒdu s J ‚tt | ¡ƒdu s¶J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu søJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s(J ‚tt | ¡ƒdu s@J ‚tt | ¡ƒdu sXJ ‚tt | ¡ƒdu spJ ‚tt | ¡ƒdu sˆJ ‚d S rg   )r$   ZGoldenRatior   r   rG   rH   rI   rh   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_GoldenRatioÌ  s$    r   c                  C   sŒ  t j} tt | ¡ƒdu sJ ‚tt | ¡ƒdu s2J ‚tt | ¡ƒdu sHJ ‚tt | ¡ƒdu s^J ‚tt | ¡ƒdu stJ ‚tt 	| ¡ƒdu sŠJ ‚tt 
| ¡ƒdu s J ‚tt | ¡ƒdu s¶J ‚tt | ¡ƒdu sÌJ ‚tt | ¡ƒdu sâJ ‚tt | ¡ƒdu søJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s(J ‚tt | ¡ƒdu s@J ‚tt | ¡ƒdu sXJ ‚tt | ¡ƒdu spJ ‚tt | ¡ƒdu sˆJ ‚d S rg   )r$   ZTribonacciConstantr   r   rG   rH   rI   rh   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_TribonacciConstantá  s$    r‚   c                  C   s€  t } tt | ¡ƒdu sJ ‚tt | ¡ƒdu s0J ‚tt | ¡ƒdu sFJ ‚tt | ¡ƒdu s\J ‚tt | ¡ƒdu srJ ‚tt | ¡ƒdu sˆJ ‚tt 	| ¡ƒdu sžJ ‚tt 
| ¡ƒdu s´J ‚tt | ¡ƒdu sÊJ ‚tt | ¡ƒdu sàJ ‚tt | ¡ƒdu söJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s&J ‚tt | ¡ƒdu s>J ‚tt | ¡ƒdu sVJ ‚tt | ¡ƒdu snJ ‚tt | ¡ƒdu s†J ‚dt  } tt | ¡ƒdu s¦J ‚tt | ¡ƒdu s¾J ‚tt | ¡ƒdu sÖJ ‚tt | ¡ƒdu sîJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu sJ ‚tt 	| ¡ƒdu s6J ‚tt 
| ¡ƒdu sNJ ‚tt | ¡ƒdu sfJ ‚tt | ¡ƒdu s~J ‚tt | ¡ƒdu s–J ‚tt | ¡ƒdu s®J ‚tt | ¡ƒdu sÆJ ‚tt | ¡ƒdu sÞJ ‚tt | ¡ƒdu söJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s&J ‚t dt   } tt | ¡ƒdu sJJ ‚tt | ¡ƒdu sbJ ‚tt | ¡ƒdu szJ ‚tt | ¡ƒdu s’J ‚tt | ¡ƒdu sªJ ‚tt | ¡ƒdu sÂJ ‚tt 	| ¡ƒdu sÚJ ‚tt 
| ¡ƒdu sòJ ‚tt | ¡ƒdu s
J ‚tt | ¡ƒdu s"J ‚tt | ¡ƒdu s:J ‚tt | ¡ƒdu sRJ ‚tt | ¡ƒdu sjJ ‚tt | ¡ƒdu s‚J ‚tt | ¡ƒdu sšJ ‚tt | ¡ƒdu s²J ‚tt | ¡ƒdu sÊJ ‚t t  } tt 
| ¡ƒdu sêJ ‚tt | ¡ƒdu sJ ‚t  t  } tt 
| ¡ƒdu s$J ‚tt | ¡ƒdu s<J ‚dt  t  } tt 
| ¡ƒdu s`J ‚tt | ¡ƒdu sxJ ‚dt  } tt 
| ¡ƒdu s˜J ‚tt | ¡ƒdu s°J ‚dt  } tt 
| ¡ƒdu sÐJ ‚tt | ¡ƒdu sèJ ‚dt  t  } tt 
| ¡ƒdu sJ ‚tt | ¡ƒdu s$J ‚t t d  } tt 
| ¡ƒdu sHJ ‚tt | ¡ƒdu s`J ‚t t d  } tt 
| ¡ƒdu s„J ‚tt | ¡ƒdu sœJ ‚t d } tt 
| ¡ƒdu s¼J ‚tt | ¡ƒdu sÔJ ‚t d } tt 
| ¡ƒdu sôJ ‚tt | ¡ƒdu sJ ‚dt  } tt 
| ¡ƒdu s,J ‚tt | ¡ƒdu sDJ ‚t d } tt 
| ¡ƒdu sdJ ‚tt | ¡ƒdu s|J ‚d S )NTFrE   ru   re   r|   r   )r   r   r   rG   rH   rI   rh   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rX   rY   Útest_Iö  s´    
rƒ   c                  C   s 3  t dƒ\} }}tt | ¡ƒd u s$J ‚tt | ¡t | ¡ƒdu sBJ ‚tt | ¡t |¡ƒd u s`J ‚tt | ¡t | ¡ƒdu s~J ‚tt | ¡t | ¡ƒd u sœJ ‚tt | d ¡ƒd u s¶J ‚tt | d ¡t | ¡ƒdu sØJ ‚| | }|j\} }tt |¡t | ¡t |¡@ ƒdu sJ ‚tt |¡t | ¡t |¡@ ƒdu s>J ‚tt |¡t | ¡t |¡@ ƒdu shJ ‚tt |¡t | ¡t |¡@ ƒdu s’J ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu sÈJ ‚tt |¡t | ¡t | ¡ @ t |¡@ ƒdu sþJ ‚tt |¡t | ¡t |¡@ t | ¡ @ t |¡ @ ƒdu s@J ‚tt |¡t | ¡t |¡ @ ƒdu slJ ‚tt |¡t | ¡t |¡ @ ƒdu s˜J ‚tt |¡t | ¡t |¡@ ƒdu sÂJ ‚tt |¡t | ¡t |¡@ ƒdu sìJ ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒdu s$J ‚tt |¡t | ¡t | ¡ @ t |¡@ ƒdu sZJ ‚tt |¡t | ¡t | ¡ @ t |¡ @ t |¡ @ ƒdu sžJ ‚tt |¡t | ¡ƒd u s¾J ‚tt |¡t | ¡ƒd u sÞJ ‚tt |¡t | ¡t 	|¡@ ƒd u sJ ‚tt |¡t | ¡t 	|¡@ ƒd u s2J ‚tt |¡t | ¡t |¡ @ ƒd u s^J ‚tt |¡t | ¡t | ¡ @ t 	|¡@ ƒd u s”J ‚tt |¡t | ¡t | ¡ @ t |¡ @ ƒd u sÌJ ‚tt |¡t | ¡ t |¡ @ ƒd u súJ ‚tt |¡t | ¡t |¡ @ ƒd u s&J ‚tt |¡t | ¡ t |¡@ ƒd u sRJ ‚tt |¡t | ¡t |¡@ ƒdu s|J ‚tt |¡t | ¡t |¡ @ t 	|¡ @ ƒd u s´J ‚tt |¡t | ¡ t 	| ¡ @ t |¡@ ƒd u sìJ ‚tt |¡t | ¡ t |¡ @ t 	| ¡ @ t 	|¡ @ ƒdu s2J ‚tt |¡t |¡ ƒd u sTJ ‚tt |¡t 	| ¡t |¡ @ ƒd u s€J ‚tt |¡t |¡ƒd u s J ‚tt |¡t 	| ¡t |¡@ ƒdu sÊJ ‚tt |¡t 	| ¡t |¡ @ t 	|¡ @ ƒd u sJ ‚tt |¡t 	| ¡ t |¡@ ƒd u s.J ‚tt |¡t 	| ¡ t |¡ @ t 	|¡ @ ƒdu shJ ‚tt |¡ƒd u s€J ‚tt |¡t 	| ¡ƒd u s J ‚tt |¡t 	|¡ƒd u sÀJ ‚tt |¡t 	| ¡t 	|¡@ ƒd u sêJ ‚tt |¡t 	| ¡t 	|¡ @ ƒd u sJ ‚tt |¡t 	| ¡ t 	|¡@ ƒd u sBJ ‚tt |¡t 	| ¡ t 	|¡ @ ƒd u spJ ‚t dƒ\} }}| | | }|j\} }}tt |¡t 
| ¡t 
|¡@ t 
|¡@ ƒdu sÊJ ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒdu sþJ ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒdu 	s2J ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒdu 	sfJ ‚tt |¡t 
| ¡t 
|¡@ t |¡ @ ƒdu 	sœJ ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒdu 	sÐJ ‚tt |¡t 
| ¡t 
|¡@ t |¡@ ƒd u 
sJ ‚tt |¡t 
| ¡t 
|¡@ ƒd u 
s.J ‚tt |¡t 
| ¡t 
|¡@ t 	|¡@ ƒd u 
sbJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu 
s–J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu 
sÊJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu 
sþJ ‚tt |¡t 
| ¡t |¡@ t |¡ @ ƒdu s4J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu shJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u sœJ ‚tt |¡t 
| ¡t |¡@ ƒd u sÆJ ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒd u súJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu s.J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu sbJ ‚tt |¡t 
| ¡t |¡@ t |¡ @ ƒdu s˜J ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu sÌJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u s J ‚tt |¡t 
| ¡t 	|¡@ t |¡@ ƒd u s4J ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒd u shJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu sœJ ‚tt |¡t 
| ¡t |¡@ t |¡ @ ƒd u sÒJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u sJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu s:J ‚tt |¡t 
| ¡t |¡@ ƒd u sdJ ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒd u s˜J ‚tt |¡t 
| ¡t |¡ @ t |¡ @ ƒd u sÐJ ‚tt |¡t 
| ¡t |¡ @ t |¡@ ƒd u sJ ‚tt |¡t 
| ¡t |¡ @ t |¡@ ƒd u s<J ‚tt |¡t 
| ¡t |¡ @ ƒd u shJ ‚tt |¡t 
| ¡t |¡ @ t 	|¡@ ƒd u sžJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒdu sÒJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u sJ ‚tt |¡t 
| ¡t |¡@ ƒd u s0J ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒdu sdJ ‚tt |¡t 
| ¡t |¡@ t |¡@ ƒd u s˜J ‚tt |¡t 
| ¡t |¡@ ƒd u sÂJ ‚tt |¡t 
| ¡t |¡@ t 	|¡@ ƒd u söJ ‚tt |¡t 
| ¡ƒd u sJ ‚tt |¡t 
| ¡t 	|¡@ ƒd u s@J ‚tt |¡t 
| ¡t 	|¡@ t 	|¡@ ƒd u stJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s¨J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sÜJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu sFJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu szJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s®J ‚tt |¡t | ¡t |¡@ ƒd u sØJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s@J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu stJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu sªJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sÞJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ ƒd u s<J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u spJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s¤J ‚tt |¡t | ¡t |¡@ t |¡ @ ƒd u sÚJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sBJ ‚tt |¡t | ¡t |¡@ ƒd u slJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u s J ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒd u sØJ ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u sJ ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u sDJ ‚tt |¡t | ¡t |¡ @ ƒd u spJ ‚tt |¡t | ¡t |¡ @ t 	|¡@ ƒd u s¦J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sÚJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ ƒd u s8J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒdu slJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s J ‚tt |¡t | ¡t |¡@ ƒd u sÊJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u sþJ ‚tt |¡t | ¡ƒd u sJ ‚tt |¡t | ¡t 	|¡@ ƒd u sHJ ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u s|J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s°J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu säJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sNJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s‚J ‚tt |¡t | ¡t |¡@ ƒd u s¬J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u sàJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒd u sJJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s~J ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s²J ‚tt |¡t | ¡t |¡@ ƒd u sÜJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u sJ ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒd u sHJ ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u s~J ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u s´J ‚tt |¡t | ¡t |¡ @ ƒd u sàJ ‚tt |¡t | ¡t |¡ @ t 	|¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu sJJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u s~J ‚tt |¡t | ¡t |¡@ ƒd u s¨J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒdu sÜJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sJ ‚tt |¡t | ¡t |¡@ ƒd u s:J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u snJ ‚tt |¡t | ¡ƒd u sŽJ ‚tt |¡t | ¡t 	|¡@ ƒd u s¸J ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u sìJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s J ‚tt |¡t | ¡t |¡@ t |¡ @ ƒd u sVJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u sŠJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu s¾J ‚tt |¡t | ¡t |¡@ ƒd u sèJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u sJ ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒd u sTJ ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u sŠJ ‚tt |¡t | ¡t |¡ @ t |¡@ ƒd u sÀJ ‚tt |¡t | ¡t |¡ @ ƒd u sìJ ‚tt |¡t | ¡t |¡ @ t 	|¡@ ƒd u  s"J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u  sVJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u  sŠJ ‚tt |¡t | ¡t |¡@ ƒd u  s´J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u  sèJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu !sJ ‚tt |¡t | ¡t |¡@ ƒd u !sFJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u !szJ ‚tt |¡t | ¡ƒd u !sšJ ‚tt |¡t | ¡t 	|¡@ ƒd u !sÄJ ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u !søJ ‚tt |¡t | ¡ t |¡ @ t |¡ @ ƒd u "s2J ‚tt |¡t | ¡ t |¡@ t |¡ @ ƒd u "sjJ ‚tt |¡t | ¡ t |¡ @ t |¡@ ƒd u "s¢J ‚tt |¡t | ¡ t |¡ @ ƒd u "sÐJ ‚tt |¡t | ¡ t |¡ @ t 	|¡@ ƒd u #sJ ‚tt |¡t | ¡ t |¡@ t |¡@ ƒd u #s>J ‚tt |¡t | ¡ t |¡@ t |¡@ ƒd u #stJ ‚tt |¡t | ¡ t |¡@ ƒd u #s J ‚tt |¡t | ¡ t |¡@ t 	|¡@ ƒd u #sÖJ ‚tt |¡t | ¡ t |¡@ t |¡@ ƒd u $sJ ‚tt |¡t | ¡ t |¡@ ƒd u $s8J ‚tt |¡t | ¡ t |¡@ t 	|¡@ ƒd u $snJ ‚tt |¡t | ¡ ƒd u $sJ ‚tt |¡t | ¡ t 	|¡@ ƒd u $s¼J ‚tt |¡t | ¡ t 	|¡@ t 	|¡@ ƒd u $sòJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒdu %s&J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u %sZJ ‚tt |¡t | ¡t |¡@ ƒd u %s„J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒdu %s¸J ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u %sìJ ‚tt |¡t | ¡t |¡@ ƒd u &sJ ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u &sJJ ‚tt |¡t | ¡ƒd u &sjJ ‚tt |¡t | ¡t 	|¡@ ƒd u &s”J ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒdu &sÈJ ‚tt |¡t | ¡t |¡@ t |¡@ ƒd u &süJ ‚tt |¡t | ¡t |¡@ ƒd u 's&J ‚tt |¡t | ¡t |¡@ t 	|¡@ ƒd u 'sZJ ‚tt |¡t | ¡ƒd u 'szJ ‚tt |¡t | ¡t 	|¡@ ƒd u 's¤J ‚tt |¡t | ¡t 	|¡@ t 	|¡@ ƒd u 'sØJ ‚tt |¡ƒd u 'sðJ ‚tt |¡t 	|¡ƒd u (sJ ‚tt |¡t 	|¡t 	|¡@ ƒd u (s:J ‚tt |¡t 	| ¡t 	|¡@ t 	|¡@ ƒd u (snJ ‚tt d|  ¡ƒd u (sŠJ ‚tt d|  ¡t | ¡ƒdu (s®J ‚t dƒ\} }}| | }|j\} }tt |¡t | ¡t |¡@ ƒdu (søJ ‚tt |¡t | ¡t |¡ @ ƒdu )s$J ‚tt |¡t | ¡ƒd u )sDJ ‚tt |¡t | ¡ t |¡@ ƒdu )spJ ‚tt |¡t | ¡ t |¡ @ ƒdu )sžJ ‚tt |¡t | ¡ ƒd u )sÀJ ‚tt |¡t |¡ƒd u )sàJ ‚tt |¡t |¡ ƒd u *sJ ‚tt |¡ƒd u *sJ ‚| | | }|j\} }}tt |¡t | ¡t |¡@ t |¡@ ƒdu *sfJ ‚tt |¡t | ¡t |¡@ t |¡ @ ƒdu *sœJ ‚tt |¡t | ¡t |¡@ ƒd u *sÆJ ‚tt |¡t | ¡t |¡ @ t |¡@ ƒdu *süJ ‚tt |¡t | ¡t |¡ @ t |¡ @ ƒdu +s4J ‚tt |¡t | ¡t |¡ @ ƒd u +s`J ‚tt |¡t | ¡t |¡@ ƒd u +sŠJ ‚tt |¡t | ¡t |¡ @ ƒd u +s¶J ‚tt |¡t | ¡ƒd u +sÖJ ‚tt |¡t | ¡ t |¡@ t |¡@ ƒdu ,sJ ‚tt |¡t | ¡ t |¡@ t |¡ @ ƒdu ,sDJ ‚tt |¡t | ¡ t |¡@ ƒd u ,spJ ‚tt |¡t | ¡ t |¡ @ t |¡@ ƒdu ,s¨J ‚tt |¡t | ¡ t |¡ @ t |¡ @ ƒdu ,sâJ ‚tt |¡t | ¡ t |¡ @ ƒd u -sJ ‚tt |¡t | ¡ t |¡@ ƒd u -s<J ‚tt |¡t | ¡ t |¡ @ ƒd u -sjJ ‚tt |¡t | ¡ ƒd u -sŒJ ‚tt |¡t |¡t |¡@ ƒd u -s¶J ‚tt |¡t |¡t |¡ @ ƒd u -sâJ ‚tt |¡t |¡ƒd u .sJ ‚tt |¡t |¡ t |¡@ ƒd u .s.J ‚tt |¡t |¡ t |¡ @ ƒd u .s\J ‚tt |¡t |¡ ƒd u .s~J ‚tt |¡t |¡ƒd u .sžJ ‚tt |¡t |¡ ƒd u .sÀJ ‚tt |¡t |¡ t | ¡@ t |¡@ t |¡@ ƒd u /s J ‚tt |¡t | ¡t |¡ @ t |¡@ t |¡ @ t |¡@ ƒdu /sLJ ‚t dƒ\} }}tt | d ¡ƒd u /svJ ‚tt d|  ¡ƒd u /s’J ‚tt d|  ¡t | ¡ƒdu /s¶J ‚tt | |  ¡ƒd u /sÒJ ‚tt tj|  ¡ƒd u /sðJ ‚tt tj|  ¡t 	| ¡ƒdu 0sJ ‚tt tj|  ¡t | ¡ƒd u 0s<J ‚tt d|  ¡t | ¡ƒdu 0s`J ‚tt t| ƒ¡ƒd u 0s|J ‚tt d|  ¡t | ¡ ƒdu 0s¢J ‚tt | d ¡t | ¡ ƒdu 0sÈJ ‚tt t| ƒ¡ƒdu 0säJ ‚tt t| ƒ¡t | ¡ ƒdu 1s
J ‚tt t| ƒ¡ƒd u 1s&J ‚tt t| ƒ¡t | ¡ƒd u 1sJJ ‚tt t| ƒ¡t | ¡ ƒdu 1spJ ‚tt t| ƒ¡t | ¡ƒdu 1s”J ‚tt t| ƒ¡t | ¡ƒdu 1s¸J ‚tt t| ƒ¡ƒd u 1sÔJ ‚tt t| ƒ¡t | ¡ƒdu 1søJ ‚tt tdƒ¡ƒdu 2sJ ‚tt t| ƒ¡ƒdu 2s0J ‚tt t| ƒ¡t | ¡ ƒdu 2sVJ ‚tt t| ƒ¡ƒdu 2srJ ‚tt t| ƒ¡t | ¡ ƒdu 2s˜J ‚tt dt| ƒ ¡ƒdu 2s¸J ‚tt t| ƒd ¡ƒdu 2sØJ ‚tt t| ƒd ¡ƒdu 2søJ ‚tt t| ƒt| ƒ ¡ƒdu 3sJ ‚d S )Nzx,y,zTrE   Fr|   )r'   r   r   rR   rK   ri   ÚargsrN   rl   rj   rO   rm   ro   Zextended_nonzeror$   ZHalfr0   r-   r/   rc   rk   r.   r7   r5   )r   r   r   ÚarX   rX   rY   Útest_bounded`  s„   "
****
ÿÿ
ÿÿ
(
ÿÿ
,,ÿÿ
ÿÿ

ÿÿ
ÿÿ
*
ÿÿ
  ÿÿ
ÿÿ
,ÿÿ

ÿÿ
.
ÿÿ
ÿÿ
ÿÿ

ÿÿ
 ÿÿ
 
ÿ
ÿÿ
"
ÿÿ
 ÿÿ

ÿ
ÿÿ
ÿÿ
 
ÿÿ
  ÿÿ

ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
*ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
*ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
,ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
 ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
*ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
*ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
,ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
 ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
*ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿ
,ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
 ÿÿ
ÿÿ
ÿÿÿ
ÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ

ÿ
ÿÿ

ÿÿÿ

ÿÿÿ

ÿÿ

ÿÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
 ÿÿ
ÿÿÿ
 
ÿÿ

ÿÿ
 ÿÿ
. ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
ÿÿ
"ÿÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
 ÿÿ
ÿÿÿ
ÿÿÿ
ÿÿ
ÿÿÿ
 ÿÿ
ÿÿÿ
 ÿÿ
ÿÿÿ
$
*, ,." "ÿÿ

ÿÿ
*ÿÿ

ÿÿ
,*, ÿÿ

ÿÿ
, ÿÿ
 
ÿÿ
.,."*, ,." "ÿÿÿ
ÿ
ÿþþ
$&&$&&&$&$$$&&   r†   c                   C   s@   t t ttƒt ¡ƒdu sJ ‚t t ttƒt ¡ƒdu s<J ‚dS )z4We need to support relations in ask for this to workTN)r   r   rR   r7   r   r5   rX   rX   rX   rY   Útest_bounded_xfailS  s    r‡   c                   C   s²  t t t¡ƒdu sJ ‚t t t¡t t¡ ƒdu s6J ‚t t t¡t t¡ƒdu sTJ ‚t t t¡t t¡ƒdu srJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s®J ‚t t t¡t t¡ ƒdu sÎJ ‚t t dt ¡ƒdu sèJ ‚t t dt ¡t t¡ ƒdu sJ ‚t t td ¡ƒdu s*J ‚t t td ¡t t¡ ƒdu sPJ ‚t t td ¡ƒdu slJ ‚t t td ¡t t¡ ƒdu s’J ‚t t t	tƒ¡ƒdu s®J ‚dS )zdBy default objects are Q.commutative that is why it returns True
    for both key=True and key=FalseTFr|   rE   N)
r   r   rG   r   rK   rM   rJ   rN   r   r/   rX   rX   rX   rY   Útest_commutativeZ  s      &&&rˆ   c                   C   sö  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s4J ‚t t t¡t t¡ƒd u sRJ ‚t t t¡t t¡ ƒdu srJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ ƒd u s°J ‚t t t¡t t¡ƒdu sÎJ ‚t t t¡t t¡ƒdu sìJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t 	t¡ƒdu s,J ‚t t t¡t 
t¡ƒdu sLJ ‚t t td ¡t t¡ƒdu spJ ‚t t td ¡t t¡ƒdu s”J ‚t t td ¡t t¡ƒdu s¸J ‚t t td ¡t t¡ƒdu sÜJ ‚t t td ¡t 	t¡ƒdu s J ‚t t td ¡t t¡ƒdu s$J ‚t t td ¡t t¡ƒdu sHJ ‚t t td ¡t t¡ƒdu slJ ‚t t tt ¡t t¡t t¡@ ƒdu sšJ ‚t t tt ¡t t¡t 	t¡@ ƒdu sÈJ ‚t t dt d ¡t t¡ƒdu sðJ ‚t t dt d ¡t t¡ƒdu sJ ‚t t dt d ¡t t¡ƒdu s@J ‚t t dt d ¡t t¡ƒdu shJ ‚t t dt d ¡t t¡ƒdu sJ ‚t t dt d ¡t 	t¡ƒdu s¸J ‚t t dt d ¡t t¡ƒdu sàJ ‚t t dt d ¡t t¡ƒdu sJ ‚t t dt d ¡t t¡ƒdu s0J ‚t t td ¡t t¡ƒdu sTJ ‚t t td ¡t t¡ƒdu sxJ ‚t t td ¡t t¡ƒdu sœJ ‚t t td ¡t t¡ƒdu sÀJ ‚t t td ¡t t¡ƒdu säJ ‚t t td ¡t 	t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s,J ‚t t td ¡t t¡ƒdu sPJ ‚t t td ¡t t¡ƒdu stJ ‚t t dt ¡t t¡ƒdu s˜J ‚t t dt ¡t t¡ƒdu s¼J ‚t t dt ¡t t¡ƒdu sàJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s(J ‚t t dt ¡t 	t¡ƒdu sLJ ‚t t dt ¡t t¡ƒdu spJ ‚t t dt ¡t t¡ƒdu s”J ‚t t dt ¡t t¡ƒdu s¸J ‚t t tt ¡t t¡t t¡@ ƒdu sæJ ‚t t ttƒ¡ƒdu sJ ‚t t tdt d ƒ¡ƒdu s&J ‚t t ttƒ¡ƒdu sBJ ‚t t tdt d ƒ¡ƒdu sfJ ‚t t ttƒ¡ƒdu s‚J ‚t t ttƒ¡ƒdu sžJ ‚t t ttƒ¡ƒdu sºJ ‚t t ttƒ¡ƒdu sÖJ ‚t t ttƒ¡ƒdu sòJ ‚d S r~   )r   r   rK   r   r   rJ   rI   rL   rN   rM   rh   rH   rP   rQ   r7   r5   r.   r*   r,   r+   rX   rX   rX   rY   Útest_complexq  st         $$$$$$$$..((((((((($$$$$$$$$$$$$$$$$$.$$r‰   c                   C   sŽ  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u s4J ‚t t t¡t t¡ ƒdu sTJ ‚t t t¡t t¡ƒd u srJ ‚t t t¡t t¡ƒd u sJ ‚t t dt ¡ƒd u sªJ ‚t t dt ¡t t¡ƒdu sÌJ ‚t t dt ¡t t¡ƒdu sîJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s6J ‚t t dt ¡t t¡ ƒd u s\J ‚t t dt ¡t t¡ƒd u s€J ‚t t dt ¡t t¡ƒdu s¤J ‚t t dt ¡t t¡ƒdu sÈJ ‚t t td ¡t t¡ƒdu sìJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s4J ‚t t td ¡t t¡ƒdu sXJ ‚t t dt ¡t t¡ƒdu s|J ‚t t dt ¡t t¡ƒdu s J ‚t t tt	 ¡t t¡t t	¡@ ƒdu sÎJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu süJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu s*J ‚t t dt d ¡t t¡ƒdu sRJ ‚t t dt t	 ¡t t¡t t¡@ ƒd u s„J ‚t t dt t	 ¡t t¡t t¡@ ƒd u s¶J ‚t t tt	 t
 ¡t t¡t t	¡@ t t
¡@ ƒdu sòJ ‚t t tt	 t
 t ¡t t¡t t	¡@ t t
¡@ t t¡@ ƒd u s<J ‚t t ttƒ¡t t¡ƒdu s`J ‚t t ttƒ¡t t¡ ƒd u s†J ‚t t ttƒ¡t t¡ƒdu sªJ ‚t t ttƒ¡t t¡ ƒd u sÐJ ‚t t ttƒ¡t t¡ƒdu sôJ ‚t t ttƒ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s<J ‚t t td ¡t t¡ƒdu s`J ‚t t td ¡t t¡ƒdu s„J ‚t t dt ¡t t¡ƒd u s¨J ‚t t td ¡ƒd u sÄJ ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u sþJ ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒdu s8J ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu spJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu s¨J ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u sâJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒd u sJ ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u sTJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒd u sŒJ ‚t t tt ¡t t¡ƒd u s°J ‚t t tt ¡t t¡ƒd u sÔJ ‚t t tt	 ¡t t¡t t	¡@ ƒd u sJ ‚t t tt ¡t t¡ƒd u s&J ‚t t ttt	  ¡t t¡t t	¡@ ƒdu sXJ ‚t t ttt	  ¡t t¡t t	¡@ ƒd u sŠJ ‚d S )NFr|   Tru   rE   é   re   )r   r   rP   r   rH   rI   rN   rL   rQ   r   r   r   r*   r,   r+   rJ   r   r   r	   rO   r
   rX   rX   rX   rY   Útest_even_query½  sr     ""$$&$$$$$$$$$...(22<&ÿÿ
$&$&$$$$$$::88:8:8$$.$2r‹   c                   C   s€   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu s>J ‚t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu s|J ‚d S rr   )r   r   rP   r   r   r   rH   rQ   rX   rX   rX   rY   Ú1test_evenness_in_ternary_integer_product_with_odd  s    >rŒ   c                   C   sB   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒd u s>J ‚d S ©N)r   r   rP   r   r   r   rH   rX   rX   rX   rY   Ú2test_evenness_in_ternary_integer_product_with_even  s    rŽ   c                   C   s  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s<J ‚t t t¡t t¡ƒdu sZJ ‚t t t¡t t¡ƒdu sxJ ‚t t t¡t t¡ƒdu s–J ‚t t t ¡t t¡ƒdu s¶J ‚t t t ¡t t¡ƒdu sÖJ ‚t t tt	j
 ¡t t¡ƒdu súJ ‚t t t¡t t¡ƒd u sJ ‚d S rr   )r   r   ri   r   rl   rN   rc   rO   rm   r$   ZInfinityrJ   rk   rX   rX   rX   rY   Útest_extended_real  s      $r   c                  C   sÔ  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s<J ‚t t t¡t t¡ƒd u sZJ ‚t t t¡t t¡ƒd u sxJ ‚t t t¡t t¡ƒd u s–J ‚t t t¡t 	t¡ƒd u s´J ‚t t t¡t 
t¡ ƒdu sÔJ ‚t t dt ¡t t¡ƒdu söJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s>J ‚t t dt ¡t t¡ƒdu sbJ ‚t t dt ¡t t¡ƒdu s†J ‚t t td ¡t t¡ƒdu sªJ ‚t t td ¡t t¡ƒdu sÎJ ‚t t td ¡t t¡ƒdu sòJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s:J ‚t t dt ¡t t¡ƒdu s^J ‚t t dt ¡t t¡ƒdu s‚J ‚t t dt ¡t t¡ƒdu s¦J ‚t t dt ¡t t¡ƒdu sÊJ ‚t t dt ¡t t¡ƒdu sîJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s6J ‚t t dt ¡t t¡ƒdu sZJ ‚t t dt ¡t t¡ƒdu s~J ‚t t dt ¡t t¡ƒdu s¢J ‚t t t¡t 
t¡ ƒdu sÄJ ‚t t tt ¡t t¡t t¡@ ƒd u sòJ ‚t t tt ¡t t¡t t¡@ ƒdu s J ‚t t tt ¡t t¡t t¡@ ƒdu sNJ ‚t t tt ¡t t¡t t¡@ ƒdu s|J ‚t t tt ¡t t¡t t¡@ ƒdu sªJ ‚t t tt ¡t t¡t t¡@ ƒdu sØJ ‚ttttttfD ]´} t t | dƒ¡ƒdu sJ ‚t t | ddd¡ƒdu s(J ‚t t | ddd¡ƒdu sHJ ‚t t | tƒ¡t t¡ƒd u slJ ‚t t | tƒ¡t t¡t 	t¡@ ƒdu sèJ ‚qèttfD ]¸}t t |dƒ¡ƒdu sÆJ ‚t t |ddd¡ƒdu sæJ ‚t t |ddd¡ƒdu sJ ‚t t |tƒ¡t t¡ƒd u s*J ‚t t |tƒ¡t t¡t 	td ¡@ ƒdu s¦J ‚q¦ttfD ]f}t t |dƒ¡ƒdu sˆJ ‚t t |ddd¡ƒdu s¨J ‚t t |tƒ¡t t¡ƒdu shJ ‚qhd S )NTFr|   rE   rŠ   ©Zevaluater   )r   r   rI   r   rH   rL   rJ   rN   rO   rb   rh   rP   rQ   r   r.   r7   r8   r3   r4   r5   r/   r1   r6   r2   ©ÚfÚgÚhrX   rX   rY   Útest_rational  sd     "$$$$$$$$$$$$$$$$$$$"......  $2  $6 r•   c                   C   sX  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u s4J ‚t t t¡t t¡ƒdu sRJ ‚t t t¡t t¡ƒdu spJ ‚t t t¡t t¡ƒdu sŽJ ‚t t t¡t t¡ƒdu s¬J ‚t t td ¡t t¡ƒd u sÎJ ‚t t td ¡t 	t¡ƒd u sðJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s8J ‚t t td ¡t t¡ƒdu s\J ‚t t tt
 ¡t t¡ƒd u s€J ‚t t tt
 ¡t 	t¡ƒd u s¤J ‚t t tt
 ¡t t¡ƒdu sÈJ ‚t t tt
 ¡t t¡ƒd u sìJ ‚t t tt
 ¡t t¡ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒd u s>J ‚t t tt ¡t t¡t 	t¡@ ƒd u slJ ‚t t tt ¡t t¡t t¡@ ƒd u sšJ ‚t t tt ¡t t¡t t¡@ ƒd u sÈJ ‚t t tt ¡t t¡t t¡@ ƒd u söJ ‚t t tt ¡t t¡t 	t¡@ ƒd u s$J ‚t t tt ¡t t¡t t¡@ ƒdu sRJ ‚t t tt ¡t t¡t t¡@ ƒdu s€J ‚t t tt ¡t t¡t t¡@ ƒdu s®J ‚t t tt ¡t t¡t 	t¡@ ƒd u sÜJ ‚t t tt ¡t t¡t t¡@ ƒd u s
J ‚t t tt ¡t t¡t t¡@ ƒdu s8J ‚t t tt ¡t t¡t 	t¡@ ƒd u sfJ ‚t t tt ¡t t¡t t¡@ ƒdu s”J ‚t t t
t ¡t t¡ƒdu s¸J ‚t t t
t ¡t 	t¡ƒd u sÜJ ‚t t t
t ¡t t¡ƒdu s J ‚t t t
t ¡t t¡ƒdu s$J ‚t t t
t ¡t t¡ƒdu sHJ ‚t t tt ¡t t¡t t¡@ ƒdu svJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu s²J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sîJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u s*J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u sfJ ‚t t t¡ƒd u s~J ‚t t t¡t t¡ƒdu sžJ ‚t t t¡t t¡ƒdu s¾J ‚t t td ¡t t¡ƒdu sâJ ‚t t td ¡t 	t¡ƒd u sJ ‚t t td ¡t t¡ƒd u s*J ‚t t td ¡t t¡ƒdu sNJ ‚t t td ¡t t¡ƒd u srJ ‚t t tt
 ¡t t¡ƒdu s–J ‚t t tt
 ¡t 	t¡ƒd u sºJ ‚t t tt
 ¡t t¡ƒd u sÞJ ‚t t tt
 ¡t t¡ƒdu sJ ‚t t tt
 ¡t t¡ƒdu s&J ‚t t t¡t t¡ƒdu sFJ ‚t t tt ¡t t¡t t¡@ ƒdu stJ ‚t t tt ¡t t¡t 	t¡@ ƒd u s¢J ‚t t tt ¡t t¡t t¡@ ƒd u sÐJ ‚t t tt ¡t t¡t t¡@ ƒdu sþJ ‚t t tt ¡t t¡t t¡@ ƒdu 	s,J ‚t t tt ¡t t¡t 	t¡@ ƒd u 	sZJ ‚t t tt ¡t t¡t t¡@ ƒd u 	sˆJ ‚t t tt ¡t t¡t t¡@ ƒd u 	s¶J ‚t t tt ¡t t¡t t¡@ ƒd u 	säJ ‚t t tt ¡t t¡t 	t¡@ ƒd u 
sJ ‚t t tt ¡t t¡t t¡@ ƒdu 
s@J ‚t t tt ¡t t¡t t¡@ ƒdu 
snJ ‚t t tt ¡t t¡t 	t¡@ ƒd u 
sœJ ‚t t tt ¡t t¡t t¡@ ƒd u 
sÊJ ‚t t t
t ¡t t¡ƒdu 
sîJ ‚t t t
t ¡t t¡ƒdu sJ ‚t t t
t ¡t 	t¡ƒd u s6J ‚t t tt ¡t t¡t t¡@ ƒdu sdJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u s J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u sÜJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sTJ ‚d S )NFTrE   )r   r   rU   r   rV   rM   rS   rJ   rc   rK   r   r   r   rX   rX   rX   rY   Útest_hermitian_  s   ""$$$$$$$$ÿÿ
.ÿÿ
...........$$$$$.,ÿÿ
ÿÿ
ÿÿ
ÿÿ
  $$$$$$$$$$ ÿþ
ÿÿ
ÿÿ
ÿÿ
"ÿ
."ÿ
ÿÿ
......$$$.ÿÿ
ÿÿ
ÿÿ
ÿÿr–   c                  C   s^
  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s4J ‚t t t¡t t¡ƒdu sRJ ‚t t td ¡t t¡ƒdu stJ ‚t t td ¡t t¡ƒdu s–J ‚t t tt ¡t t¡ƒdu s¸J ‚t t tt ¡t t¡ƒdu sÚJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s6J ‚t t tt ¡t t¡t t¡@ ƒdu sdJ ‚t t tt ¡t t¡t t¡@ ƒd u s’J ‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdu sÎJ ‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒd u s
J ‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdu sFJ ‚t t tt ¡t t¡ƒdu sjJ ‚t t tt ¡t t¡ƒdu sŽJ ‚t t tt ¡t t¡ƒd u s²J ‚t t tt ¡t t¡t t¡@ ƒdu sàJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t 
t¡ƒd u s2J ‚t t tt ¡t t¡ƒd u sVJ ‚t t tt ¡t t¡ƒdu szJ ‚t t tt ¡t t¡ƒdu sžJ ‚t t tt ¡t t¡ƒdu sÂJ ‚t t dt t ¡t t¡ƒdu sêJ ‚t t td ¡t t¡ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒd u s<J ‚t t tt ¡t t¡t t¡@ ƒd u sjJ ‚t t tt ¡t t¡t t¡@ ƒd u s˜J ‚t t tt ¡t t¡t t¡@ ƒd u sÆJ ‚t t tt ¡t t¡t t¡@ ƒd u sôJ ‚t t tt ¡t t¡t t¡@ ƒd u s"J ‚t t tt ¡t t¡t t¡@ ƒdu sPJ ‚t t tt ¡t t¡t t¡@ ƒd u s~J ‚t t tt ¡t t¡t t¡@ ƒdu s¬J ‚t t tt ¡t t¡t t¡@ ƒdu sÚJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t 
t¡t t¡@ ƒd u s6J ‚t t tt ¡t 
t¡t t¡@ t t¡ @ ƒdu spJ ‚t t tt ¡t t¡t t¡@ ƒd u sžJ ‚t t tt ¡t 
t¡t t¡@ t dt ¡@ ƒdu sÚJ ‚t t tt ¡t 
t¡t t¡@ t dt ¡ @ ƒdu sJ ‚t t tt ¡t 
t¡t t¡@ ƒd u sFJ ‚t t tt ¡t t¡t t¡@ t dt ¡ @ ƒdu s„J ‚t t tt ¡t t¡t t¡@ t dt ¡@ ƒd u sÀJ ‚t t ttƒ¡ƒdu sÜJ ‚t t tdt ƒ¡ƒdu süJ ‚t t ttd ƒ¡ƒdu sJ ‚t t ttƒ¡t t¡ƒd u s@J ‚t t ttƒ¡t t¡ƒd u sdJ ‚t t ttƒ¡t t¡ƒdu sˆJ ‚t t tttƒƒ¡t t¡ƒd u s°J ‚t t tttƒƒ¡t t¡ƒd u sØJ ‚t t tttƒƒ¡ƒdu søJ ‚t t ttƒt ¡t t¡ƒdu 	s J ‚tttt t ddtdd} t t | ¡t t¡ƒdu 	s^J ‚tttt t d ddtdd} t t | ¡t t¡ƒdu 	s J ‚t t tdt t t ƒt ¡t t¡ƒdu 	sÔJ ‚t t tdt t dd¡ƒdu 	süJ ‚t t ttt d dd¡ƒdu 
s$J ‚t t tttddƒƒ¡t t¡t 
t¡@ ƒdu 
sZJ ‚d S )	NFrE   Tr|   r   r   ru   rv   )r   r   rM   r   rJ   rS   r   r   rK   r   rO   rN   rP   rQ   rH   rI   r/   r.   r%   r#   r    ©ÚeqrX   rX   rY   Útest_imaginaryÈ  s–    """"....,ÿÿ
ÿÿ
ÿÿ
$$$..$$$$$($............:.<>.><  $$$(( ( " 4((r™   c                   C   sR  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s4J ‚t t t¡t t¡ ƒdu sTJ ‚t t t¡t t¡ ƒdu stJ ‚t t t¡t t¡ ƒd u s”J ‚t t t¡t t¡t t¡B ƒdu s¼J ‚t t dt ¡t t¡ƒdu sÞJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s&J ‚t t dt ¡t 	t¡ƒd u sJJ ‚t t dt ¡t t¡ƒd u snJ ‚t t t
dƒt ¡t t¡ƒdu s–J ‚t t t
dƒt ¡t t¡ƒd u s¾J ‚t t td ¡t t¡ƒdu sâJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒd u s*J ‚t t td ¡t t¡ƒd u sNJ ‚d S )NTFr|   ru   )r   r   rH   r   rJ   rN   rP   rQ   rS   rI   r0   rL   rX   rX   rX   rY   Útest_integer  s"       ("$$$$(($$$rš   c                   C   sT  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s<J ‚t t t¡t t¡ ƒdu s\J ‚t t t¡t t¡ƒdu szJ ‚t t t¡t t¡ ƒd u sšJ ‚t t t ¡t t¡ƒdu sºJ ‚t t t ¡t t¡ ƒd u sÜJ ‚t t t ¡t t¡ƒdu süJ ‚t t t ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu sBJ ‚t t tt ¡ƒd u s^J ‚t t tt ¡t t¡ƒd u s‚J ‚t t tt ¡t t¡t t¡@ ƒdu s°J ‚t t tt ¡t t¡t t¡@ ƒdu sÞJ ‚t t dt	 ¡ƒdu súJ ‚t t t
t	ƒd tt	ƒd  d ¡ƒd u s*J ‚t t t	 t	t
dƒd tdƒd    ¡ƒd u s`J ‚t t td ¡ƒd u s|J ‚t t td ¡t t¡ƒdu s J ‚t t td ¡t t¡ƒd u sÄJ ‚t t tt	 ¡t t¡ƒd u sèJ ‚t t tt ¡ƒd u sJ ‚t t tt ¡t t¡t t¡@ ƒdu s2J ‚t t tt ¡t t¡t t¡@ ƒdu s`J ‚t t tt ¡t t¡t t¡@ ƒd u sŽJ ‚t t tt ¡ƒd u sªJ ‚t t tt ¡t t¡t t¡@ ƒdu sØJ ‚t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s4J ‚t t ttƒ¡ƒdu sPJ ‚d S )NTFrE   r|   gffffffö?)r   r   rO   r   rN   rJ   rS   r   Únonpositiver   r5   r7   rK   rP   rQ   rH   r*   rX   rX   rX   rY   Útest_negative.  s<       " "$$..06$$$......rœ   c                   C   s¬  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u s4J ‚t t t¡t t¡ƒdu sRJ ‚t t t¡t t¡ƒdu spJ ‚t t t¡t t¡t t¡B ƒdu s˜J ‚t t tt ¡ƒd u s²J ‚t t tt ¡t t¡t t¡@ ƒdu sÞJ ‚t t tt ¡t t¡t t¡@ ƒd u sJ ‚t t tt ¡t t¡t t¡@ ƒdu s:J ‚t t dt ¡ƒd u sVJ ‚t t dt ¡t t¡ƒdu szJ ‚t t dt ¡t t¡ƒdu sžJ ‚t t tt ¡t t¡ƒd u sÂJ ‚t t tt ¡t t¡t t¡@ ƒdu sðJ ‚t t tt ¡t t¡ƒdu sJ ‚t t ttƒ¡ƒd u s0J ‚t t ttƒ¡t t¡ƒdu sTJ ‚t t t	t
dt ƒƒ¡ƒdu sxJ ‚t t tdƒd tdƒd  d ¡ƒd u s¨J ‚d S )NTr|   FrE   )r   r   rb   r   rJ   rN   rO   r   r*   r/   r.   r   r5   r7   rX   rX   rX   rY   Útest_nonzeroX  s&    (,..$$$.$$$r   c                   C   sþ  t t t¡ƒd u sJ ‚t t t¡t t¡ƒd u s4J ‚t t t¡t t¡ƒdu sRJ ‚t t t¡t t¡ƒdu spJ ‚t t t¡t t¡t t¡B ƒdu s˜J ‚t t t¡t t¡t t¡@ ƒdu sÀJ ‚t t tt	 ¡ƒd u sÚJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu sJ ‚t t tt	 ¡t t¡t t	¡@ ƒd u s6J ‚t t tt	 ¡t t¡t t	¡@ ƒdu sdJ ‚t t dt ¡ƒd u s€J ‚t t dt ¡t t¡ƒdu s¤J ‚t t dt ¡t t¡ƒdu sÈJ ‚t t tt	 ¡t 
t¡ƒd u sìJ ‚t t ttƒ¡ƒd u sJ ‚t t ttƒ¡t t¡ƒdu s,J ‚t t t¡t t¡ƒdu sLJ ‚t t t¡t t¡ƒdu slJ ‚t t t¡t t¡ƒdu sŒJ ‚t t t¡t t¡ƒd u s¬J ‚t t t¡t t¡ƒdu sÌJ ‚t t t¡t t	¡B t tt	 ¡ƒdu súJ ‚d S )NFTr|   )r   r   rc   r   rJ   rN   rO   Únonnegativer›   r   rb   r*   rH   rP   rQ   rX   rX   rX   rY   Ú	test_zerou  s,    ((...$$$$     rŸ   c                   C   s	  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s4J ‚t t t¡t t¡ƒd u sRJ ‚t t t¡t t¡ ƒdu srJ ‚t t t¡t t¡ƒd u sJ ‚t t t¡t t¡ƒd u s®J ‚t t t ¡t t¡ƒdu sÎJ ‚t t dt ¡ƒd u sèJ ‚t t dt ¡t t¡ƒdu sJ ‚t t dt ¡t t¡ƒdu s0J ‚t t dt ¡t t¡ƒdu sTJ ‚t t dt ¡t t¡ ƒd u szJ ‚t t dt ¡t t¡ƒd u sžJ ‚t t td ¡t t¡ƒd u sÂJ ‚t t td ¡t t¡ƒd u sæJ ‚t t td ¡t t¡ƒdu s
J ‚t t td ¡t t¡ƒdu s.J ‚t t td ¡t t¡ƒdu sRJ ‚t t dt ¡t t¡ƒdu svJ ‚t t dt ¡t t¡ƒdu sšJ ‚t t dt ¡t t¡ƒdu s¾J ‚t t dt ¡t t¡ƒdu sâJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu sJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu s>J ‚t t tt	 ¡t t¡t t	¡@ ƒdu slJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu sšJ ‚t t tt	 t
 ¡t t¡t t	¡@ t t
¡@ ƒdu sÖJ ‚t t tt	 t
 t ¡t t¡t t	¡@ t t
¡@ t t¡@ ƒd u s J ‚t t dt d ¡t t¡ƒdu sHJ ‚t t dt t	 ¡t t¡t t	¡@ ƒdu szJ ‚t t dt t	 ¡t t¡t t	¡@ ƒdu s¬J ‚t t dt t	 ¡t t¡t t	¡@ ƒd u sÞJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu sJ ‚t t tt	 ¡t t¡t t	¡@ ƒdu s:J ‚t t dt t	 ¡t t¡t t¡@ ƒd u slJ ‚t t dt t	 ¡t t¡t t¡@ ƒd u sžJ ‚t t ttƒ¡t t¡ƒdu sÂJ ‚t t dt ¡t t¡ƒdu sæJ ‚t t td ¡t t¡ƒdu s
J ‚t t td ¡t t¡ƒdu s.J ‚t t dt ¡t t¡ƒd u sRJ ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u sŒJ ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒdu sÆJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu sþJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒdu s6J ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u spJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒd u s¨J ‚t t tt ¡t t¡t t¡@ t t¡ @ ƒd u sâJ ‚t t tt ¡t t¡t t¡@ t t¡@ ƒd u sJ ‚t t tt ¡t t¡ƒd u s>J ‚t t tt ¡t t¡ƒd u sbJ ‚t t tt	 ¡t t¡t t	¡@ ƒd u sJ ‚t t tt ¡t t¡ƒd u s´J ‚t t ttt	  ¡t t¡t t	¡@ ƒdu sæJ ‚t t ttt	  ¡t t¡t t	¡@ ƒd u 	sJ ‚d S )NTFr|   ru   rE   re   )r   r   rQ   r   rH   rI   rN   rL   rP   r   r   r   r*   r   r   r	   rO   r
   rX   rX   rX   rY   Útest_odd_query“  sv      $$$&$$$$$$$$$$....<&ÿÿ
(222..22$$$$$::88:8:8$$.$2r    c                   C   s€   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu s>J ‚t t tt tt  ¡t t¡t t¡@ t t¡@ ƒdu s|J ‚d S ©NF)r   r   rQ   r   r   r   rH   rX   rX   rX   rY   Ú0test_oddness_in_ternary_integer_product_with_oddÝ  s    >r¢   c                   C   sB   t t tt tt  ¡t t¡t t¡@ t t¡@ ƒd u s>J ‚d S r   )r   r   rQ   r   r   r   rH   rP   rX   rX   rX   rY   Ú1test_oddness_in_ternary_integer_product_with_evenæ  s    r£   c                   C   sÂ  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ ƒdu s>J ‚t t t¡t t¡ƒd u s\J ‚t t t¡t t¡ ƒdu s|J ‚t t dt ¡t t¡ƒd u sžJ ‚t t tt ¡ƒd u s¸J ‚t t tt ¡t t¡ƒd u sÚJ ‚t t tt ¡t t¡t t¡@ ƒd u sJ ‚t t dt ¡t t¡ƒdu s,J ‚t t dt ¡ƒd u sHJ ‚t t td ¡t t¡ƒdu slJ ‚t t td ¡t t¡ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s¾J ‚d S )NTFr|   rv   )r   r   rS   r   rH   r   rX   rX   rX   rY   Ú
test_primeê  s      "".$$$r¤   c                  C   sö  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu s<J ‚t t t¡t t¡ƒd u sZJ ‚t t t ¡t t¡ƒdu szJ ‚t t t ¡t t¡ƒdu sšJ ‚t t tt ¡t t¡t t¡@ ƒdu sÆJ ‚t t tt ¡t t¡t t¡@ ƒdu sòJ ‚t t tt ¡t t¡t t¡@ ƒd u s J ‚t t tt ¡t t¡t t¡@ ƒdu sNJ ‚t t dt ¡t t¡ƒdu srJ ‚t t¡t t¡@ t t	¡@ t t
¡@ } t t tt t	 ¡ƒd u sºJ ‚t t tt t	 ¡| ƒdu sÜJ ‚t t t t t	 ¡| ƒdu s J ‚t t tt ¡t t¡ƒd u s$J ‚t t td ¡t t¡ƒdu sHJ ‚t t td ¡t t¡ƒdu slJ ‚t t td ¡t t¡ƒdu sJ ‚t t ddtd   ¡t t¡ƒdu s¼J ‚t t dt ¡ƒdu sØJ ‚t t dt ¡ƒdu sôJ ‚t t ttƒd ttƒd  d ¡ƒd u s$J ‚t t t ttdƒd tdƒd    ¡ƒd u sZJ ‚t t ttƒ¡t t¡ƒdu s~J ‚t t ttƒ¡ t t¡ƒdu s¤J ‚t t tttƒ ¡t t¡ƒd u sÌJ ‚t t ttƒ¡t t¡ƒd u sðJ ‚t t tdt t dd¡t t¡ƒdu s J ‚t t ttt dd¡t t¡ƒdu sLJ ‚t t ttt t ƒ¡t t¡ƒdu sxJ ‚t t ttt t ƒ¡t t¡ƒdu s¤J ‚t t ttt t ƒ¡t t¡ƒd u sÐJ ‚t t ttƒ¡t t¡ƒdu sôJ ‚t t ttƒ¡t t¡ƒdu sJ ‚t t ttƒ¡t t¡ƒd u s<J ‚t t ttd ƒ¡t t¡ƒdu sdJ ‚t t ttƒ¡t t¡t t¡@ ƒsŽJ ‚t t ttƒ¡t t¡ƒd u s²J ‚t t ttƒ¡ƒd u sÎJ ‚t t ttƒ¡t t¡ƒdu sòJ ‚d S )NTFr|   ru   rE   r   )r   r   rN   r   rO   rb   r   rž   rM   r   r   r   rJ   r5   r7   r.   r#   rP   rQ   r/   r)   rH   r*   ©ÚassumptionsrX   rX   rY   Útest_positiveü  sP      ,,..$( "$$$$$,06$&($0,,,,$$$(*$r§   c                   C   s°   t t d¡ƒsJ ‚t t d¡ƒs$J ‚t t d¡ƒdu s:J ‚t t t¡ t t¡ƒsVJ ‚t t t¡t t¡ƒdu stJ ‚t t tdƒ¡ƒdu sŽJ ‚t t t¡t t¡ƒdu s¬J ‚d S )Nre   r   rE   F)r   r   r›   rN   r   r0   rM   rX   rX   rX   rY   Útest_nonpositive7  s    r¨   c                   C   s°   t t d¡ƒdu sJ ‚t t d¡ƒs(J ‚t t d¡ƒs:J ‚t t t¡ t t¡ƒsVJ ‚t t t¡t t¡ƒdu stJ ‚t t tdƒ¡ƒdu sŽJ ‚t t t¡t t¡ƒdu s¬J ‚d S )Nre   Fr   rE   )r   r   rž   rO   r   r0   rM   rX   rX   rX   rY   Útest_nonnegativeA  s    r©   c                   C   s8  t t t¡ƒd u sJ ‚t t t¡t t¡ƒdu s4J ‚t t t¡t t¡ƒdu sRJ ‚t t t¡t t¡ƒdu spJ ‚t t t¡t t¡ƒdu sŽJ ‚t t t¡t t¡ƒdu s¬J ‚t t t¡t t¡ƒdu sÊJ ‚t t t¡t 	t¡ƒdu sèJ ‚t t tt
dƒ ¡t t¡ƒdu sJ ‚t t tt
dƒ ¡t t¡ƒdu s8J ‚t t td ¡t t¡ƒdu s\J ‚t t tt ¡t t¡ƒdu s€J ‚t t tt ¡t t¡ƒd u s¤J ‚t t dt ¡t t¡ƒdu sÈJ ‚t t tt ¡t t¡ƒdu sìJ ‚t t tt ¡t t¡ƒdu sJ ‚t t tt ¡t t¡ƒd u s4J ‚d S )NTr|   éþÿÿÿFrE   )r   r   rJ   r   rb   rN   rO   rH   rP   rS   r0   r   rK   rM   rX   rX   rX   rY   Útest_real_basicJ  s"    (($$$$$$r«   c                   C   s¦  t t td ¡t t¡ƒdu s"J ‚t t ttƒ¡t t¡ƒdu sDJ ‚t t tt ¡t t¡t t¡@ ƒdu spJ ‚t t tt ¡t t¡t t¡@ ƒd u sœJ ‚t t tt ¡t t¡t t¡@ ƒdu sÈJ ‚t t tt ¡t 	t¡t 	t¡@ ƒd u sôJ ‚t t tt ¡t 	t¡t t¡@ ƒd u s"J ‚t t tt ¡t t¡t 	t¡@ ƒd u sPJ ‚t t td ¡t 	t¡ƒdu stJ ‚t t tt ¡t t¡t t¡@ ƒdu s¢J ‚t t tt ¡t t¡t t¡@ ƒdu sÐJ ‚t t tt ¡t t¡t 
t¡@ ƒd u sþJ ‚t t tt ¡t 	t¡t t¡@ ƒd u s,J ‚t t tt ¡t 	t¡t t¡@ ƒdu sZJ ‚t t tt ¡t 	t¡t t¡@ ƒdu sˆJ ‚t t ttt  ¡t t¡t tt ¡@ t 
tt ¡@ t t¡@ t t¡@ ƒdu sàJ ‚t t ttt  ¡t t¡t 
tt ¡@ t t¡@ t t¡@ ƒdu s*J ‚t t ttt  ¡t t¡t tt ¡@ ƒdu s`J ‚t t ttt  ¡t t¡t tt ¡@ t t¡@ ƒdu s J ‚t t ttt  ¡t t¡t tt ¡@ t t¡@ ƒdu sàJ ‚t t t t ¡t 	t¡ƒdu sJ ‚t t tt ¡t 	t¡ƒdu s*J ‚t t tt ¡t 	t¡ƒd u sNJ ‚t t tt ¡t 	t¡ƒd u srJ ‚t t ttt ttƒ  ¡t t¡ƒdu s¢J ‚d S )Nr|   TFr   )r   r   rJ   r   r0   rO   r   rH   rN   rM   rI   rQ   rP   r   r   r   r#   r/   rX   rX   rX   rY   Útest_real_powa  s2    "",,,,..$......XJ6@@&$$$r¬   c                  C   s  t t ttƒ¡ƒd u sJ ‚t t ttƒ¡ƒd u s4J ‚t t ttƒ¡t t¡ƒdu sVJ ‚t t ttƒ¡t t¡ƒdu sxJ ‚t t ttƒ¡ƒd u s’J ‚t t ttƒ¡t t¡ƒdu s´J ‚t t tttƒ ¡t t¡ƒdu sÚJ ‚t t tdt t dd¡ƒdu sJ ‚t t ttt dd¡ƒdu s&J ‚t t ttt d dd¡ƒdu sNJ ‚t t t	tƒ¡ƒdu sjJ ‚t t t	dt ƒ¡ƒdu sŠJ ‚t t t	td ƒ¡ƒdu sªJ ‚t t t	tƒ¡t 
t¡ƒd u sÎJ ‚t t t	tƒ¡t t¡ƒdu sòJ ‚t t t	ttƒƒ¡t t¡ƒd u sJ ‚t t t	ttƒƒ¡t 
t¡ƒd u sBJ ‚ttdt t t ddtdd} t t | ¡t t¡ƒdu s„J ‚t t ttƒt ¡t t¡ƒdu s¬J ‚t t ttƒt ¡t 
t¡ƒd u sÔJ ‚t t ttƒ¡ƒdu sðJ ‚t t ttƒ¡ƒdu sJ ‚d S )NTr|   Fr   rE   )r   r   rJ   r7   r   r5   r.   r#   r   r/   rK   rM   r%   rH   r,   r+   r—   rX   rX   rY   Útest_real_functions}  s.    """&($(  $$((" ((r­   c               	   C   sB  t t tddt dgdt dtgdt dggƒ¡ƒdks<J ‚t t tddt dgdt dtgdt dggƒ¡ƒdksxJ ‚tddd} t t tddt | gdt dtgdt dggƒ¡ƒd ksÀJ ‚t t td	ƒ¡ƒdksÚJ ‚t t td
dtdfdfƒ¡ƒdksJ ‚t t td
d| dfdfƒ¡ƒd ks*J ‚tddt dgdt dt gdt dggƒ}tt dt dgdt ddt gddt t ggƒ}t t |¡ƒdu s¢J ‚t t |¡ƒdu sºJ ‚t t |d ¡ƒdu sÖJ ‚|d }| ¡  t t |¡ƒdu sþJ ‚tddt dg| dt gdt dggƒ}t t |¡ƒd u s>J ‚d S )Nr|   rv   ru   rE   TFr   ©rK   )©é   é   ry   )r±   é   r   ©ry   r   r[   r¯   r±   r   r³   rª   )	r   r   rU   r>   r   r'   r?   rV   Zsimplify)r   ÚAÚBÚCZ_ArX   rX   rY   Útest_matrixŸ  s"    <<<((,4(r·   c               	   C   sð  t t t¡ƒd u sJ ‚t t t¡ƒdu s,J ‚t t dt ¡ƒdu sFJ ‚t t td ¡ƒdu s`J ‚t t tdƒ¡ƒdu szJ ‚t t dtdƒ ¡ƒdu s˜J ‚t t tdƒd ¡ƒdu s¶J ‚t t ttdƒ ¡ƒdu sÔJ ‚t t tdttdƒ  ƒ¡ƒdu súJ ‚t t dttdƒtddƒ   ¡ƒdu s(J ‚t t dttdƒdt    ¡ƒdu sTJ ‚tt	t
tttfD ]´} t t | dƒ¡ƒdu s„J ‚t t | ddd	¡ƒdu s¤J ‚t t | d
dd	¡ƒdu sÄJ ‚t t | tƒ¡t t¡ƒd u sèJ ‚t t | tƒ¡t t¡t t¡@ ƒdu sdJ ‚qdttfD ]¸}t t |dƒ¡ƒdu sBJ ‚t t |ddd	¡ƒdu sbJ ‚t t |ddd	¡ƒdu s‚J ‚t t |tƒ¡t t¡ƒd u s¦J ‚t t |tƒ¡t t¡t td ¡@ ƒdu s"J ‚q"ttfD ]f}t t |dƒ¡ƒdu sJ ‚t t |ddd	¡ƒdu s$J ‚t t |tƒ¡t t¡ƒdu säJ ‚qät t tt	dƒƒ¡ƒdu slJ ‚t t ttttdƒ  ƒ¡ƒd u s”J ‚t t d¡ƒdu s¬J ‚t t t¡t t¡ƒdu sÌJ ‚t t t¡t t¡ƒdu sìJ ‚d S )NTr|   ru   rŠ   rE   é   é   Fr   r   gÃõ(\Â@)r   r   rh   r   r   r0   r    r#   r.   r7   r8   r3   r4   r5   rb   r/   r1   r6   r2   r   Ztranscendentalr‘   rX   rX   rY   Útest_algebraic·  s@    &.,  $2  $6 ( ( rº   c                   C   s^   t t t¡ƒdu sJ ‚t t t¡¡ t t t¡ƒdu s<J ‚t ¡  t t t¡ƒdu sZJ ‚dS )z Test ask with global assumptionsNT)r   r   rH   r   r   ÚaddÚclearrX   rX   rX   rY   Útest_globalå  s
    r½   c                  C   s`   t t t¡ƒdu sJ ‚tƒ } |  t t¡¡ t t t¡| ddu sFJ ‚t t t¡ƒdu s\J ‚dS )z(Test ask with custom assumptions contextN)ÚcontextT)r   r   rH   r   r   r»   )Zlocal_contextrX   rX   rY   Útest_custom_contextî  s
    r¿   c                   C   s€   t t t¡t t¡t t¡? ƒdu s(J ‚t t t¡tt t¡t t¡ƒƒdu sRJ ‚t t t¡tt t¡t t¡ƒƒdu s|J ‚d S r¡   )r   r   rO   r   rJ   rN   r9   r;   rX   rX   rX   rY   Útest_functions_in_assumptions÷  s    (*rÀ   c                   C   s8   t t t¡t t¡@ t t¡t t¡? ddu s4J ‚d S )Nr¥   F)r   r   rO   r   rH   rJ   rN   rX   rX   rX   rY   Útest_composite_aský  s
    ÿÿrÁ   c                   C   s&  t dƒdu sJ ‚t dƒdu s J ‚t t t¡ t t¡ƒdu s@J ‚t t t¡ t t¡ƒd u s`J ‚t t t¡t t¡@ t t¡ƒdu sˆJ ‚t t t¡t t¡@ ƒd u s¨J ‚t t t¡t t¡B t t¡ƒdu sÐJ ‚t t t¡t t¡B ƒd u sðJ ‚t t t¡t t¡? t t¡ƒdu sJ ‚t tt t¡t t¡ddt t¡ƒdu sJJ ‚t tt t¡t t¡ddƒd u srJ ‚t t	t t¡t 
t¡ƒt 
t¡ƒdu sžJ ‚t t	t t¡t 
t¡ƒƒd u sÂJ ‚t t	t t¡t t¡ƒt t¡ƒd u sîJ ‚t t t¡t t¡B t t¡t t¡B ƒdu s"J ‚d S )NTFr   )r   r   rO   r   rN   rJ   rG   rH   r:   r9   rP   rX   rX   rX   rY   Útest_composite_proposition  s*      ( ( *ÿÿÿ
(,$,rÂ   c                   C   sH   t t t¡t t¡ B ƒdu s"J ‚t t t¡t t¡ @ ƒdu sDJ ‚d S rg   )r   r   rJ   r   rX   rX   rX   rY   Útest_tautology  s    "rÃ   c                   C   s¦   t t t¡t t¡t t¡@ ƒdu s(J ‚t t t¡t t¡t t¡B ƒd u sPJ ‚t t t¡t t¡t t¡? ƒd u sxJ ‚t t t¡t t¡t t¡?  ƒdu s¢J ‚d S rr   )r   r   rJ   r   r   rN   rX   rX   rX   rY   Útest_composite_assumptions  s    (((rÄ   c                  C   sÌ  t tdd„ ƒ G dd„ dtƒ} zätƒ  td| ƒ W d  ƒ n1 sF0    Y  tƒ & tt t¡ƒdu snJ ‚W d  ƒ n1 s‚0    Y  tƒ * tt td ¡ƒdu s®J ‚W d  ƒ n1 sÂ0    Y  W tƒ  t	d| ƒ W d  ƒ n1 sô0    Y  t`n8tƒ  t	d| ƒ W d  ƒ n1 s,0    Y  t`0 t td	d„ ƒ G d
d„ dt
ƒ}zX|ƒ t_tj t¡dd„ ƒ}tt t¡ƒdu sJ ‚tt td ¡ƒdu s¬J ‚W t`nt`0 t tdd„ ƒ dS )z7test that you can add keys to the ask system at runtimec                   S   s   t t t¡ƒS r   ©r   r   Úmy_keyr   rX   rX   rX   rY   Ú<lambda>!  ó    z(test_key_extensibility.<locals>.<lambda>c                   @   s   e Zd Zedd„ ƒZdS )z,test_key_extensibility.<locals>.MyAskHandlerc                 S   s   dS rr   rX   ©Úexprr¦   rX   rX   rY   r(   %  s    z3test_key_extensibility.<locals>.MyAskHandler.SymbolN)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr(   rX   rX   rX   rY   ÚMyAskHandler$  s   rÏ   rÆ   NTrE   c                   S   s   t t t¡ƒS r   rÅ   rX   rX   rX   rY   rÇ   5  rÈ   c                   @   s   e Zd ZdS )z+test_key_extensibility.<locals>.MyPredicateN©rË   rÌ   rÍ   rX   rX   rX   rY   ÚMyPredicate8  s   rÑ   c                 S   s   dS rr   rX   rÉ   rX   rX   rY   Ú_<  s    z!test_key_extensibility.<locals>._c                   S   s   t t t¡ƒS r   rÅ   rX   rX   rX   rY   rÇ   C  rÈ   )rB   ÚAttributeErrorr   rC   r   r   r   rÆ   r   r   r   Úregisterr(   )rÏ   rÑ   rÒ   rX   rX   rY   Útest_key_extensibility  s2    (4:(þ*

rÕ   c                  C   sL   ddl m}  G dd„ d| ƒ}tj |¡dd„ ƒ}tt |ƒ ¡ƒdu sHJ ‚dS )	zBtest that new types can be added to the ask system at runtime
    r   )ÚBasicc                   @   s   e Zd ZdS )z'test_type_extensibility.<locals>.MyTypeNrÐ   rX   rX   rX   rY   ÚMyTypeK  s   r×   c                 S   s   dS rr   rX   rÉ   rX   rX   rY   rÒ   N  s    z"test_type_extensibility.<locals>._TN)Z
sympy.corerÖ   r   rS   rÔ   r   )rÖ   r×   rÒ   rX   rX   rY   Útest_type_extensibilityF  s
    

rØ   c                  C   sr   t ttjtjƒttjtjƒttjtjƒƒ} tjtjtjtjh}t| ƒ}t||ƒ}|tj tjtjtjhksnJ ‚d S r   )	r<   r:   r   rH   rI   rJ   rK   r=   r   )Úknown_factsÚknown_facts_keysZknown_facts_cnfÚmappingrX   rX   rY   Útest_single_fact_lookupU  s    þ
rÜ   c               
   C   sÔ   t tt t¡t t¡ƒtt t¡t t¡ƒtt t¡t t¡ƒƒ} t t¡t t¡t t¡t t¡h}t|| ƒtjtjht	ƒ ftjtjtjtjtjht	ƒ ftjtjtjtjht	ƒ ftjtjtjht	ƒ fiksÐJ ‚d S r   )
r<   r:   r   rH   r   rI   rJ   rK   r   Úset)rÙ   rÚ   rX   rX   rY   Útest_generate_known_facts_dicta  s    þ$ýÿrÞ   c               	      sŠ   t dƒ‰ tˆ ƒ} t | ¡}tƒ }|jD ]$}| tdd„ t|t	dD ƒƒ¡ q&t
ƒ |ksZJ ‚‡ fdd„tƒ D ƒ}t|| ƒ}tƒ |ks†J ‚dS )z)"Test that ask_generated.py is up-to-dater   c                 s   s   | ]}t |jj|jƒV  qd S r   )r   ÚargZfunctionZis_Not)Ú.0ZlitrX   rX   rY   Ú	<genexpr>w  rÈ   z.test_known_facts_consistent.<locals>.<genexpr>)Úkeyc                    s   g | ]}|ˆ ƒ‘qS rX   rX   )rà   Zpred©r   rX   rY   Ú
<listcomp>z  rÈ   z/test_known_facts_consistent.<locals>.<listcomp>N)r(   r   r   Zto_CNFrÝ   Úclausesr»   Ú	frozensetÚsortedÚstrr   r   r   r   )ZfactZcnfrå   ZclÚkeysrÛ   rX   rã   rY   Útest_known_facts_consistentn  s    

"
rê   c                   C   sª   t t dtdƒd tdƒd   ¡ƒdu s.J ‚t t ttdƒtdƒdd¡ƒdu sVJ ‚t t ttdƒtdƒdd¡ƒdu s~J ‚t t ttdƒtdƒdd¡ƒdu s¦J ‚d S )Nl   Ò
>V3&¥Z
 rE   r|   Tr   r   F)	r   r   rS   r5   r7   rP   r   r$   rH   rX   rX   rX   rY   Útest_Add_queries  s    .((rë   c                   C   sH   t t td ¡ƒ" tt t¡ƒr&J ‚W d   ƒ n1 s:0    Y  d S )NrE   )r   r   rN   r   r   rX   rX   rX   rY   Útest_positive_assuming†  s    rì   c                   C   s   t tdd„ ƒ d S )Nc                   S   s   t tttƒ tjƒS r   )r   r#   r/   r   r   rJ   rX   rX   rX   rY   rÇ   Œ  rÈ   z!test_issue_5421.<locals>.<lambda>©rB   Ú	TypeErrorrX   rX   rX   rY   Útest_issue_5421‹  s    rï   c                   C   s   t tdd„ ƒ d S )Nc                   S   s
   t tjƒS r   )r   r   rN   rX   rX   rX   rY   rÇ     rÈ   z!test_issue_3906.<locals>.<lambda>rí   rX   rX   rX   rY   Útest_issue_3906  s    rð   c                   C   sR   t t ttƒd ¡t t¡ƒd u s&J ‚t t ttƒd ¡ t t¡ƒdu sNJ ‚d S )Nr|   T)r   r   rN   r/   r   rO   rX   rX   rX   rY   Útest_issue_5833“  s    &rñ   c                   C   s    t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s    t t t¡t t¡t t¡@ ƒS r   )r   r   rN   r   rO   rX   rX   rX   rY   rÇ   ™  rÈ   z!test_issue_6732.<locals>.<lambda>c                   S   s    t t t¡t t¡t t¡@ ƒS r   )r   r   rO   r   rN   rX   rX   rX   rY   rÇ   š  rÈ   )rB   Ú
ValueErrorrX   rX   rX   rY   Útest_issue_6732˜  s    ró   c                   C   sx  t t ttƒ¡t t¡ƒdu s"J ‚t t ttƒ¡t t¡ƒdu sDJ ‚t t ttƒ¡t t¡ƒdu sfJ ‚t t ttƒ¡ƒd u s€J ‚t t ttƒ¡t t¡ƒd u s¢J ‚t t ttƒ¡t t¡ƒd u sÄJ ‚t t tt	ddƒƒ¡ƒdu säJ ‚t t ttƒ¡t t¡t 
td ¡@ ƒdu sJ ‚t t ttƒ¡t t¡t td ¡@ ƒdu sHJ ‚t t ttƒ¡t t¡ƒd u slJ ‚t t tt	ddƒƒ¡ƒdu sŽJ ‚t t ttƒ¡t td ¡t 
td ¡@ ƒdu sÄJ ‚t t ttƒ¡t td ¡ƒd u sìJ ‚t t ttƒ¡t t¡ƒdu sJ ‚t t ttƒ¡t t¡ƒdu s4J ‚t t ttƒ¡t t¡ƒdu sXJ ‚t t ttƒ¡ƒd u stJ ‚d S )NTFrE   rŠ   )r   r   rN   r4   r
   rO   rc   r   r3   r    r›   rž   r1   r2   rJ   rM   rX   rX   rX   rY   Útest_issue_7246  s"    """"" 22$"6($$$rô   c                   C   s&   t t ttƒ¡t t¡ƒdu s"J ‚d S rr   )r   r   rN   r1   r   rc   rX   rX   rX   rY   Útest_issue_7246_failing´  s    rõ   c                  C   sî  t ddd} tt | ¡ƒdu s"J ‚tt | ¡ƒdu s8J ‚tt | ¡ƒdu sNJ ‚t ddd} tt | ¡ƒdu spJ ‚tt | ¡ƒdu s†J ‚tt | ¡ƒdu sœJ ‚t ddd} tt | ¡ƒd u s¾J ‚tt | ¡ƒdu sÔJ ‚t ddd} tt | ¡ƒdu söJ ‚tt | ¡ƒdu sJ ‚tt | ¡ƒdu s&J ‚t ddd} tt | ¡ƒdu sJJ ‚t ddd	} tt | ¡ƒdu snJ ‚tt | ¡ƒdu s†J ‚t ddd
} tt | ¡ƒdu sªJ ‚tt | ¡ƒd u sÂJ ‚tt 	| ¡ƒd u sÚJ ‚t ddd} tt 
| ¡ƒdu sþJ ‚t ddd} tt | ¡ƒdu s"J ‚tt | ¡ƒdu s:J ‚t ddd} tt | ¡ƒdu s^J ‚tt | ¡ƒdu svJ ‚t ddd} tt | ¡ƒdu sšJ ‚tt | ¡ƒdu s²J ‚t ddd} tt | ¡ƒdu sÖJ ‚tt | ¡ƒdu sîJ ‚t ddd} tt | ¡ƒdu sJ ‚tt 	| ¡ƒdu s*J ‚t ddd} tt 	| ¡ƒdu sNJ ‚t ddd} tt | ¡ƒdu srJ ‚t ddd} tt | ¡ƒdu s–J ‚tt | ¡ƒdu s®J ‚t ddd} tt | ¡ƒdu sÒJ ‚tt | ¡ƒdu sêJ ‚d S )Nr   T)rJ   F)rM   r®   )rN   )rG   )rO   )rž   )rR   )rS   )rT   )rP   )rQ   )rb   )rc   ©rH   )rI   )rL   )r'   r   r   rJ   rM   rK   rN   rO   rG   rc   rR   rS   rT   rP   rQ   rb   rH   rI   rL   rã   rX   rX   rY   Útest_check_old_assumption»  sf    r÷   c                   C   sr   t t d¡ƒdu sJ ‚t t d¡ƒdu s,J ‚t t d¡ƒdu sBJ ‚t t d¡ƒdu sXJ ‚t t d¡ƒdu snJ ‚d S )Nr_   Fg      @g      @g       @)r   r   rH   rS   rT   rP   rQ   rX   rX   rX   rY   Útest_issue_9636	  s
    rø   c                   C   sp   t t dt ¡ƒd u sJ ‚t t dt  ¡ƒd u s6J ‚t t dt ¡ƒd u sPJ ‚t t dt  ¡ƒd u slJ ‚d S ©Nr   )r   r   rM   r   rJ   rX   rX   rX   rY   Útest_autosimp_used_to_fail		  s    rú   c                     sl  ddl m‰  G ‡ fdd„dtƒ} z¼tƒ  td| ƒ W d   ƒ n1 sH0    Y  tddd}tƒ " tt d	¡ƒsxJ ‚W d   ƒ n1 sŒ0    Y  tƒ * tt |¡t |¡ƒs¸J ‚W d   ƒ n1 sÌ0    Y  W t`nt`0 G d
d„ dt	ƒ}zl|ƒ t_tj 
t¡dd„ ƒ}tj 
t¡‡ fdd„ƒ}tt d	¡ƒs>J ‚tt |¡t |¡ƒsZJ ‚W t`nt`0 d S )Nr   ©Ú	conjunctsc                       s(   e Zd Zedd„ ƒZe‡ fdd„ƒZdS )z/test_custom_AskHandler.<locals>.MersenneHandlerc                 S   s    t t t| d dƒ¡ƒrdS d S ©NrE   r|   T©r   r   rH   r/   rÉ   rX   rX   rY   r   	  s    z7test_custom_AskHandler.<locals>.MersenneHandler.Integerc                    s   | ˆ |ƒv rdS d S rr   rX   rÉ   rû   rX   rY   r(   	  s    z6test_custom_AskHandler.<locals>.MersenneHandler.SymbolN)rË   rÌ   rÍ   rÎ   r   r(   rX   rû   rX   rY   ÚMersenneHandler	  s   
rÿ   Úmersenner   Trö   rŠ   c                   @   s   e Zd ZdS )z1test_custom_AskHandler.<locals>.MersennePredicateNrÐ   rX   rX   rX   rY   ÚMersennePredicate*	  s   r  c                 S   s    t t t| d dƒ¡ƒrdS d S rý   rþ   rÉ   rX   rX   rY   rÒ   .	  s    z!test_custom_AskHandler.<locals>._c                    s   | ˆ |ƒv rdS d S rr   rX   rÉ   rû   rX   rY   rÒ   2	  s    )Úsympy.logic.boolalgrü   r   rC   r   r(   r   r   r   r   rÔ   r   )rÿ   r   r  rÒ   rX   rû   rY   Útest_custom_AskHandler	  s*    	(0:


r  c                  C   s„   G dd„ dt ƒ} zh| ƒ t_tj tt¡dd„ ƒ}tj ttt¡dd„ ƒ}tt dd¡ƒs\J ‚tt dd	d
¡ƒsrJ ‚W t`nt`0 d S )Nc                   @   s   e Zd ZdS )z.test_polyadic_predicate.<locals>.SexyPredicateNrÐ   rX   rX   rX   rY   ÚSexyPredicate>	  s   r  c                    s:   t | |gƒ}t‡ fdd„|D ƒƒs&dS |d |d  dkS )Nc                 3   s   | ]}t t |¡ˆ ƒV  qd S r   ©r   r   rS   ©rà   r…   r¥   rX   rY   rá   F	  rÈ   ú5test_polyadic_predicate.<locals>._.<locals>.<genexpr>FrE   r   é   ©rç   Úall)Úint1Úint2r¦   r„   rX   r¥   rY   rÒ   C	  s    z"test_polyadic_predicate.<locals>._c                    sP   t | ||gƒ}t‡ fdd„|D ƒƒs(dS |d |d  dkoN|d |d  dkS )Nc                 3   s   | ]}t t |¡ˆ ƒV  qd S r   r  r  r¥   rX   rY   rá   M	  rÈ   r  Fr|   rE   r  r   r	  )r  r  Zint3r¦   r„   rX   r¥   rY   rÒ   J	  s    rw   r[   rŠ   é   é   )r   r   Z	sexyprimerÔ   r   r   )r  rÒ   rX   rX   rY   Útest_polyadic_predicate<	  s    

r  c                  C   sN   t dƒjd u sJ ‚G dd„ dt ƒ} | tdƒƒ}| tdƒƒ}|j|ju sJJ ‚d S )NZmypredicatec                   @   s   e Zd ZdS )z5test_Predicate_handler_is_unique.<locals>.MyPredicateNrÐ   rX   rX   rX   rY   rÑ   ]	  s   rÑ   Úmp1Úmp2)r   Zhandlerr&   )rÑ   r  r  rX   rX   rY   Ú test_Predicate_handler_is_uniqueW	  s
    r  c                   C   st   t t td¡t t¡ƒsJ ‚t t td¡t t¡ƒr8J ‚t t td¡t t¡ƒrTJ ‚t t td¡t t¡ƒspJ ‚d S rù   )r   r   r˜   r   rc   rb   ÚnerX   rX   rX   rY   Útest_relationald	  s    r  )ŸZ	sympy.abcr   r   r   r   r   r   r   r	   r
   r   Zsympy.assumptionsr   r   r   r   r   Zsympy.assumptions.assumer   r   r   Zsympy.assumptions.cnfr   r   Zsympy.assumptions.factsr   r   r   r   Zsympy.assumptions.handlersr   Zsympy.assumptions.ask_generatedr   r   Zsympy.core.addr   Zsympy.core.numbersr   r   r    r!   r"   r#   Zsympy.core.singletonr$   Zsympy.core.powerr%   Zsympy.core.symbolr&   r'   r(   Z(sympy.functions.combinatorial.factorialsr)   Z$sympy.functions.elementary.complexesr*   r+   r,   r-   Z&sympy.functions.elementary.exponentialr.   r/   Z(sympy.functions.elementary.miscellaneousr0   Z(sympy.functions.elementary.trigonometricr1   r2   r3   r4   r5   r6   r7   r8   r  r9   r:   r;   r<   r=   Zsympy.matricesr>   r?   Zsympy.testing.pytestr@   rA   rB   rC   rD   r`   rZ   r\   r^   ra   rd   rf   rn   rp   rq   rt   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ì   rï   rð   rñ   ró   rô   rõ   r÷   rø   rú   r  r  r  r  rX   rX   rX   rY   Ú<module>   sÒ   0 ()0aj   v

KF

?i
O*J

:
	
!
-		(

F+