o
    *Î®cûN  ã                   @   sh  d dl mZ d dl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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 d dlmZmZmZ d d	l m!Z! d d
l"m#Z#m$Z$m%Z% d dl&m'Z' d dl(m)Z) edƒZ*edddZ+edddZ,eddd\Z-Z.dd„ Z/dd„ Z0dd„ Z1dd„ Z2dd„ Z3e)dd „ ƒZ4d!d"„ Z5d#d$„ Z6d%d&„ Z7d'd(„ Z8d)d*„ Z9d+S ),é    )ÚAccumBounds)ÚEÚFloatÚIÚRationalÚnanÚooÚpiÚzoo)ÚEqÚGeÚGtÚLeÚLtÚNe)ÚS)ÚSymbolÚsymbols)Ú	factorial)ÚexpÚlog)ÚceilingÚfloorÚfrac)Úsqrt)ÚsinÚcosÚtan)Ú	unchanged)ÚXFAILÚxÚiT)Ú	imaginaryÚy©Úrealzk,n)Úintegerc                  C   s¼  t tƒtu sJ ‚t tƒtu sJ ‚t t ƒt u sJ ‚t tƒtu s"J ‚t dƒdks*J ‚t dƒdks2J ‚t dƒdks:J ‚t tƒdksBJ ‚t t ƒdksKJ ‚t dt ƒdksUJ ‚t dt ƒdks_J ‚t tƒd	ksgJ ‚t t ƒd
kspJ ‚t tjƒdksyJ ‚t tddƒƒdks„J ‚t tdd	ƒƒdksJ ‚t tdd	ƒƒdksšJ ‚t tdd	ƒ ƒdks¦J ‚t t	dƒƒdks°J ‚t t	dƒ ƒdks»J ‚t t	dƒƒdksÅJ ‚t t	dƒ ƒdksÐJ ‚t t
ƒt
ksØJ ‚t t
 ƒt
 ksâJ ‚t tƒ} | jt u rò| jd tksôJ ‚t tt
 ƒtt
 ksJ ‚t t t
 ƒt t
 ksJ ‚t tt
t d ƒt ƒtt
t d ƒt ks)J ‚t dt
 ƒdt
 ks6J ‚t dt
 ƒdt
 ksCJ ‚t t
d ƒdksNJ ‚t t
 d ƒt
 ks[J ‚t td ƒdksfJ ‚t td ƒdksqJ ‚t tt ƒdks|J ‚t t
t ƒd	t
 ks‰J ‚t t tƒƒd	ks”J ‚t t tƒƒt tƒks¡J ‚t t tƒƒt tƒks®J ‚tt tƒs¶J ‚tt dt ƒsÀJ ‚tt tt ƒsÊJ ‚t tƒtksÓJ ‚t dt ƒdt ksàJ ‚t tt ƒtt ksíJ ‚tt td ƒs÷J ‚tt tt ƒsJ ‚t td	 ƒt tƒd	 ksJ ‚t tt ƒt tƒt ksJ ‚t td	 ƒt tƒd	 ks.J ‚t tt ƒt tƒt ks=J ‚t d	t
t  t ƒdt tƒt
  ksRJ ‚t tt ƒtt ks_J ‚tt tt
 ƒsiJ ‚t tt
 ƒtt
 ksvJ ‚t tddƒtt
  ƒdd	t
  ksŠJ ‚t tdƒƒdks•J ‚t tdƒƒdks J ‚t tdƒƒdks«J ‚t tdƒtdƒ ƒdksºJ ‚tt tdƒtdƒ ƒjddƒd	ksÏJ ‚t tdƒtdƒ ƒdksÞJ ‚t tƒtk dkséJ ‚t tƒtkdksôJ ‚t tƒtkdksÿJ ‚t tƒtkdks
J ‚t tƒtkjsJ ‚t tƒtkjsJ ‚t tƒtkjs(J ‚t tƒtkjs2J ‚t tƒtkdks=J ‚t tƒtk dksHJ ‚t tƒt kdksTJ ‚t tƒt kdks`J ‚t tƒ t¡tttƒ kspJ ‚t tƒ t¡tt ƒ ks€J ‚t tƒ t¡ tt ¡t t ƒks”J ‚t tƒ t¡ tt¡t tƒks¦J ‚t tƒ t¡ tt¡tt ƒ ksºJ ‚t tƒ t¡ tt ¡ttƒ ksÎJ ‚tt tƒtttƒ ƒsÜJ ‚tt tƒtt ƒ ƒsêJ ‚tddd}tddd }td!dd"}td#dd$}t |ƒdk dksJ ‚t |ƒdkdksJ ‚t |ƒdkdks#J ‚t |ƒdkdks.J ‚t |ƒdkdks9J ‚t |ƒdk|dkksFJ ‚t |ƒdk |dk ksSJ ‚t |ƒdk dks^J ‚t |ƒdkdksiJ ‚t |ƒdk dkstJ ‚t |ƒdk|dk ksJ ‚t |ƒdk|dkksŽJ ‚t |ƒdkdks™J ‚t |ƒd	k|d	kks¦J ‚t |ƒdkdks±J ‚t |ƒdkdks¼J ‚t |ƒj dksÆJ ‚t |ƒj!dksÐJ ‚t |ƒj dksÚJ ‚t |ƒj!dksäJ ‚t |ƒj dksîJ ‚t |ƒj!dksøJ ‚t |ƒj d u sJ ‚t |ƒj!d u sJ ‚t ddd%dkdksJ ‚t ddd%dkdks&J ‚t ddd%dkdks3J ‚t ddd%dk dks@J ‚t ddd%dkdksMJ ‚t ddd%dkdksZJ ‚t ddd%dkdksgJ ‚t ddd%dk dkstJ ‚t ddd%dkdksJ ‚t ddd%dkdksŽJ ‚t ddd%dkdks›J ‚t ddd%dk dks¨J ‚t tƒd&kt"t tƒd&dd%ksºJ ‚t tƒd'kt#t tƒd'dd%ksÌJ ‚t tƒd(k t$t tƒd(dd%ksÞJ ‚t tƒd)kt%t tƒd)dd%ksðJ ‚t tƒd&ktdk ksýJ ‚t tƒd'ktdkks
J ‚t tƒd(k td	k ksJ ‚t tƒd)ktdkks$J ‚t tƒtkttd k ks3J ‚t tƒtkttkks@J ‚t tƒtk ttk ksMJ ‚t tƒtkttd kks\J ‚d S )*Nr   é   éÿÿÿÿé   éýÿÿÿé   éþÿÿÿiúÿÿÿé   éüÿÿÿé   éùÿÿÿç      1@é   éïÿÿÿçÃõ(\Â@iøÿÿÿé   é   é   é   é
   é   T©Úchopé2   l    'öª~$DæA®7YáD3':ÿ^îXf FÚneg©ÚnegativeÚnn©ÚnonnegativeÚpos©ÚpositiveÚnp©Únonpositive©Úevaluateç      @çš™™™™™	Àç333333@ç333333û¿)&r   r   r   r
   r   r	   r   ÚHalfr   r   r   r!   ÚfuncÚargsr   r#   r    r   ÚkÚnr   r   ÚintÚevalfr   Úis_RelationalÚrewriter   r   Úsubsr   r   Úis_negativeÚis_nonnegativer   r   r   r   ©Úer>   rA   rD   rG   © r^   úU/tmp/pip-target-vg8gfxp4/lib/python/sympy/functions/elementary/tests/test_integers.pyÚ
test_floor   s  2*(*
ÿ  ($(($$$$"r`   c                  C   sª  t tƒtu sJ ‚t tƒtu sJ ‚t t ƒt u sJ ‚t tƒtu s"J ‚t dƒdks*J ‚t dƒdks2J ‚t dƒdks:J ‚t tƒdksBJ ‚t t ƒdksKJ ‚t dt ƒdksUJ ‚t dt ƒdks_J ‚t tƒd	ksgJ ‚t t ƒd
kspJ ‚t tjƒdksyJ ‚t tddƒƒdks„J ‚t tddƒƒdksJ ‚t tddƒ ƒdks›J ‚t t	dƒƒdks¥J ‚t t	dƒ ƒdks°J ‚t t	dƒƒdksºJ ‚t t	dƒ ƒdksÅJ ‚t t
ƒt
ksÍJ ‚t t
 ƒt
 ks×J ‚t tƒ} | jt u rç| jd tkséJ ‚t tt
 ƒtt
 ksõJ ‚t t t
 ƒt t
 ksJ ‚t tt
t d	 ƒt ƒtt
t d	 ƒt ksJ ‚t dt
 ƒdt
 ks*J ‚t dt
 ƒdt
 ks7J ‚t t
d ƒt
ksBJ ‚t t
 d ƒdksNJ ‚t td ƒdksYJ ‚t td ƒdksdJ ‚t tt ƒdksoJ ‚t t
t ƒt
d	 ks|J ‚t t tƒƒd	ks‡J ‚t t tƒƒt tƒks”J ‚t t tƒƒt tƒks¡J ‚tt tƒs©J ‚tt dt ƒs³J ‚tt tt ƒs½J ‚t tƒtksÆJ ‚t dt ƒdt ksÓJ ‚t tt ƒtt ksàJ ‚tt td ƒsêJ ‚tt tt ƒsôJ ‚t td ƒt tƒd ksJ ‚t tt ƒt tƒt ksJ ‚t td ƒt tƒd ks!J ‚t tt ƒt tƒt ks0J ‚t dt tt
  ƒdt tƒt
  ksEJ ‚t tt ƒtt ksRJ ‚tt tt
 ƒs\J ‚t tt
 ƒtt
 ksiJ ‚t tddƒtt
  ƒddt
  ks}J ‚t tdƒƒdksˆJ ‚t tdƒƒdks“J ‚t tdƒƒdksžJ ‚t tdƒ tdƒ ƒdks®J ‚tt tdƒ tdƒ ƒjddƒd
ksÄJ ‚t tdƒtdƒ ƒdksÓJ ‚t tƒtkdksÞJ ‚t tƒtkdkséJ ‚t tƒtk dksôJ ‚t tƒtkdksÿJ ‚t tƒtkjs	J ‚t tƒtk jsJ ‚t tƒtkjsJ ‚t tƒtk js'J ‚t tƒt kdks3J ‚t tƒt kdks?J ‚t tƒtkdksJJ ‚t tƒtk dksUJ ‚t tƒ t¡tt ƒ kseJ ‚t tƒ t¡ttt ƒ ksvJ ‚t tƒ t¡ tt ¡ttƒ ksŠJ ‚t tƒ t¡ tt¡tt ƒ ksžJ ‚t tƒ t¡ tt¡t tƒks°J ‚t tƒ t¡ tt ¡t t ƒksÄJ ‚tt tƒttt ƒ ƒsÓJ ‚tt tƒtt ƒ ƒsáJ ‚tddd}tddd}tddd}td dd!}t |ƒdkdksJ ‚t |ƒdk |dkksJ ‚t |ƒdkdksJ ‚t |ƒdk|dkks)J ‚t |ƒd
k|d
kks6J ‚t |ƒdk|dkksCJ ‚t |ƒdk dksNJ ‚t |ƒdkdksYJ ‚t |ƒdk dksdJ ‚t |ƒdkdksoJ ‚t |ƒdkdkszJ ‚t |ƒdkdks…J ‚t |ƒdkdksJ ‚t |ƒd"k|d"kksJ ‚t |ƒdkdks¨J ‚t |ƒdkdks³J ‚t |ƒj dks½J ‚t |ƒj!dksÇJ ‚t |ƒj d u sÑJ ‚t |ƒj!d u sÛJ ‚t |ƒj dksåJ ‚t |ƒj!dksïJ ‚t |ƒj dksùJ ‚t |ƒj!dksJ ‚t ddd#dkdksJ ‚t ddd#dkdksJ ‚t ddd#dkdks*J ‚t ddd#dk dks7J ‚t ddd#dkdksDJ ‚t ddd#dkdksQJ ‚t ddd#dkdks^J ‚t ddd#dk dkskJ ‚t ddd#dkdksxJ ‚t ddd#dkdks…J ‚t ddd#dkdks’J ‚t ddd#dk dksŸJ ‚t tƒd$kt"t tƒd$dd#ks±J ‚t tƒd%kt#t tƒd%dd#ksÃJ ‚t tƒd&k t$t tƒd&dd#ksÕJ ‚t tƒd'kt%t tƒd'dd#ksçJ ‚t tƒd$ktd"kksôJ ‚t tƒd%ktd(kksJ ‚t tƒd&k tdkksJ ‚t tƒd'ktdkksJ ‚t tƒtkttkks(J ‚t tƒtkttd kks7J ‚t tƒtk ttd kksFJ ‚t tƒtkttkksSJ ‚d S ))Nr   r'   r(   r-   r,   r)   r7   éûÿÿÿr5   r*   r/   r1   r2   r3   r4   r:   r0   é   r8   r9   Tr;   r=   l   ¡'öª~$DæA®7YáD3':ÿ^îXf Fr>   r?   rA   rB   rD   rE   rG   rH   r+   rJ   rL   rM   rN   rO   r.   )&r   r   r   r
   r   r	   r   rP   r   r   r   r!   rQ   rR   r   r#   r    r   rS   rT   r   r   rU   rV   r   rW   rX   r   r   rY   r   r   Úis_positiveÚis_nonpositiver   r   r   r   r\   r^   r^   r_   Útest_ceilingÏ   s  2*( ,
ÿ "(($($$$$re   c            	      C   sš
  t ttƒtƒs	J ‚ttƒtddƒksJ ‚tt ƒtddƒks J ‚ttƒtu s(J ‚ttƒdks0J ‚ttƒtu s8J ‚ttddƒƒtddƒksFJ ‚ttddƒ ƒtddƒksUJ ‚ttddƒƒtddƒkscJ ‚t	ddd	} tt
|  ƒt
t| ƒ kswJ ‚tdt
|   ƒt
t| ƒ ks‡J ‚td
t
|   ƒd
t
t| ƒ  ks™J ‚ttt
|   ƒt
t| ƒ ks©J ‚ttt
t  ƒdksµJ ‚tttt
t  ƒsÀJ ‚ttt
t  ƒttƒksÎJ ‚ttƒ t¡tttƒ ksÝJ ‚ttƒ t¡ttt ƒ ksíJ ‚ttƒ t¡ tt¡ttƒksþJ ‚ttƒ t¡ tt ¡tt ƒksJ ‚ttƒ t¡ tt ¡tt ƒks&J ‚ttƒ t¡ tt¡ttƒks8J ‚tttƒtttƒ ƒsFJ ‚tttƒttt ƒ ƒsUJ ‚t	ddd	} t	dddd}t	dddd}t	dddd}t	dddd}t	ddd}t	ddd}t	dddd}t	dddd}t| ƒ|ksšJ ‚t| ƒ|kr£J ‚t| ƒ|k t¡s¯J ‚t| ƒ|k t¡s»J ‚t| ƒ|k sÄJ ‚t| ƒ|k rÍJ ‚t| ƒ|k rÖJ ‚t| ƒ|k  t¡sâJ ‚t| ƒ|krëJ ‚t| ƒ|ksôJ ‚t| ƒ|ksýJ ‚t| ƒ|k t¡s	J ‚t| ƒ|krJ ‚t| ƒ|ksJ ‚t| ƒ|k t¡s'J ‚t| ƒ|k t¡s3J ‚tt| ƒ|ƒr=J ‚tt| ƒ|ƒrGJ ‚tt| ƒ|ƒ t¡sTJ ‚tt| ƒ|ƒ t¡saJ ‚tt| ƒ|ƒskJ ‚tt| ƒ|ƒsuJ ‚tt| ƒ|ƒ t¡s‚J ‚tt| ƒ|ƒ t¡sJ ‚t| ƒ|k t¡s›J ‚t| ƒ|kr¤J ‚t| ƒ|k t¡s°J ‚t| ƒ|k t¡s¼J ‚t| ƒ|k  t¡sÈJ ‚t| ƒ|k rÑJ ‚t| ƒ|k rÚJ ‚t| ƒ|k  t¡sæJ ‚t| ƒ|k t¡sòJ ‚t| ƒ|ksûJ ‚t| ƒ|ksJ ‚t| ƒ|k t¡sJ ‚t| ƒ|k t¡sJ ‚t| ƒ|ks%J ‚t| ƒ|k t¡s1J ‚t| ƒ|k t¡s=J ‚tt| ƒ|ƒrGJ ‚tt| ƒ|ƒ t¡sTJ ‚tt| ƒ|ƒ t¡saJ ‚tt| ƒ|ƒ t¡snJ ‚tt| ƒ|ƒ t¡s{J ‚tt| ƒ|ƒs…J ‚tt| ƒ|ƒ t¡s’J ‚tt| ƒ|ƒ t¡sŸJ ‚t| ƒtk s¨J ‚t| ƒtks±J ‚t| ƒtkrºJ ‚t| ƒtkrÃJ ‚t| ƒt k rÍJ ‚t| ƒt kr×J ‚t| ƒt ksáJ ‚t| ƒt ksëJ ‚t| ƒdk sôJ ‚t| ƒdksýJ ‚t| ƒdkrJ ‚t| ƒdkrJ ‚t| ƒdk rJ ‚t| ƒdk t¡s$J ‚t| ƒdk t¡s0J ‚t| ƒdks9J ‚t| ƒtdƒksDJ ‚t| ƒtdƒtdƒ k t¡sVJ ‚t| ƒtdƒtdƒ kreJ ‚t| ƒtdƒkrpJ ‚t| ƒtdƒtdƒ k t¡s‚J ‚t| ƒtdƒtdƒ ks‘J ‚tt| ƒtdƒƒrJ ‚tt| ƒtdƒtdƒ ƒ t¡s°J ‚tt| ƒtdƒtdƒ ƒrÀJ ‚tt| ƒtdƒƒsÌJ ‚tt| ƒtdƒtdƒ ƒ t¡sßJ ‚tt| ƒtdƒtdƒ ƒsïJ ‚t|ddjsùJ ‚t|ddjsJ ‚t|ddjsJ ‚t|ddjsJ ‚t| ƒjsJ ‚t| ƒjs'J ‚t| ƒjd u s1J ‚t| ƒjd u s;J ‚ttƒjsCJ ‚ttƒjsKJ ‚d S )Nr   r'   r5   r-   r)   r.   ÚrTr$   g      à?Úp_i)r&   rF   )r&   r@   Únp_i)r&   rI   Únn_i)r&   rC   Úp_rrE   Ún_rr?   Únp_r)r%   rI   Únn_r)r%   rC   FrJ   ) Ú
isinstancer   r    r   r   r
   r   rT   r   r   r   rS   r   rX   r   r   r#   rY   r	   r   r   Úhasr   r   r   r   r   r   Úis_zeroÚ	is_finiteÚ
is_integerÚis_real)	rf   rg   Ún_irh   ri   rj   rk   rl   rm   r^   r^   r_   Ú	test_fracˆ  sð    $  "(($$$& & ru   c                  C   sì   t dƒ\} }t| ƒ | |d¡t|ƒksJ ‚t| ƒ | |d¡t|ƒks$J ‚t| ƒ | td¡dks1J ‚t| ƒ | td¡dks>J ‚t| ƒ | dd¡dksKJ ‚t| ƒ | dd¡dksXJ ‚t|  ƒ | dd¡dksfJ ‚t|  ƒ | dd¡dkstJ ‚d S )Nzx,yéd   r-   r5   r   r'   r(   )r   r   Únseriesr   r	   )r    r#   r^   r^   r_   Útest_series  s    rx   c                   C   s„  t td t td t  ƒjtdddksJ ‚t td t td t  ƒjtdddks.J ‚t ttƒd t ƒjtdddksAJ ‚t ttƒd t ƒjtdddksTJ ‚t ttƒt ƒjtdddkseJ ‚t ttƒt ƒjtdddksvJ ‚t ttƒ t ƒjtdddksˆJ ‚t ttƒ t ƒjtdddksšJ ‚t ttƒt d ƒjtdddks­J ‚t ttƒt d ƒjtdddksÀJ ‚ttd t td t  ƒjtdddks×J ‚ttd t td t  ƒjtdddksîJ ‚tttƒd t ƒjtdddksJ ‚tttƒd t ƒjtdddksJ ‚tttƒt ƒjtdddks(J ‚tttƒt ƒjtdddks:J ‚tttƒ t ƒjtdddksMJ ‚tttƒ t ƒjtdddks`J ‚tttƒt d ƒjtdddkstJ ‚tttƒt d ƒjtdddksˆJ ‚t ttƒt ƒjtdddddksœJ ‚t ttƒt ƒjtdddddks°J ‚t td t td t  ƒjtdddddksÊJ ‚t td t td t  ƒjtdddddksäJ ‚tttƒt ƒjtdddddksøJ ‚tttƒt ƒjtdddddksJ ‚ttd t td t  ƒjtdddddks&J ‚ttd t td t  ƒjtdddddks@J ‚d S )	Nr-   r)   r'   )Úcdirr,   r(   r   rv   )r   r    Úas_leading_termr   r   r   r   Úseriesr^   r^   r^   r_   Útest_issue_14355'  s8   ..&&""$$&&..(($$&&((((44((48r|   c                   C   sœ   t dtt  tt  ƒdt tt ƒt  ksJ ‚t dt tt  tt  ƒt dt t ƒt ks2J ‚t dt tt  tt  ƒdt tt ƒt  ksLJ ‚d S )Nr-   r+   )r   r	   r   r#   r   r^   r^   r^   r_   Útest_issue_4149I  s   048r}   c                  C   s2   t dddd} dd|    }tt|ƒtƒsJ ‚d S )NrS   T)rF   r&   r)   )r   rn   r   )rS   r   r^   r^   r_   Útest_issue_21651P  s   r~   c                   C   sd   t t tƒƒt tƒksJ ‚t ttƒƒttƒksJ ‚tt tƒƒt tƒks$J ‚tttƒƒttƒks0J ‚d S )N©r   r    r   r^   r^   r^   r_   Útest_issue_11207V  s   r€   c                   C   sÔ   t t ttd ƒt ƒ ƒt ttd ƒt ƒ ksJ ‚tt ttd ƒt ƒ ƒt ttd ƒt ƒ ks4J ‚t tt ttddƒ t ƒ ƒƒt ttddƒ t ƒ ksRJ ‚ttt tƒt ƒ ƒ tt tƒt ƒkshJ ‚d S )Nr-   r/   r)   )r   r   r    r#   r   r^   r^   r^   r_   Útest_nested_floor_ceiling]  s   44<0r   c                   C   sp   t t t tƒƒd ƒt tƒd ksJ ‚ttttƒƒd ƒttƒd ks$J ‚ttt tƒƒd ƒt tƒd ks6J ‚d S )Nr-   r'   r   r^   r^   r^   r_   Útest_issue_18689c  s   $$(r‚   c                   C   s0   t tdƒƒtju sJ ‚ttdƒƒtju sJ ‚d S )Nr   )r   Úfloatr   ÚZeror   r^   r^   r^   r_   Útest_issue_18421h  s   r…   N):Ú!sympy.calculus.accumulationboundsr   Úsympy.core.numbersr   r   r   r   r   r   r	   r
   Úsympy.core.relationalr   r   r   r   r   r   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Ú(sympy.functions.combinatorial.factorialsr   Ú&sympy.functions.elementary.exponentialr   r   Ú#sympy.functions.elementary.integersr   r   r   Ú(sympy.functions.elementary.miscellaneousr   Ú(sympy.functions.elementary.trigonometricr   r   r   Úsympy.core.exprr   Úsympy.testing.pytestr   r    r!   r#   rS   rT   r`   re   ru   rx   r|   r}   r~   r€   r   r‚   r…   r^   r^   r^   r_   Ú<module>   s>    (  ; : "
