B
    ˜‘[r  ã               @   sB   d dl mZmZ d dlmZ d dlmZ d dlmZ d
dd„Z	d	S )é    )Úprint_functionÚdivision)ÚDummy)Úrange)Úlambdifyé7   é   c          
   C   s   | j }t|ƒdkrtdƒ‚|r&| ¡ ntƒ }t|g| ƒ}t|ƒ}t|ƒ}dg| }xVt|ƒD ]J}y$|||| t|ƒ |  ƒ||< W q\ ttfk
r¤   d||< Y q\X q\W t	|ƒ}	t
|ƒ}
|	|
krä|	rÜtdd|	 gƒ\}
}	nd\}
}	x4t|ƒD ](}tt|ƒ|| |
  |	|
  ƒ||< qîW d}t xžt|d ddƒD ]ˆ}dg| }xÄt|ƒD ]¸}|| |krP|dks‚||d  |d kr°||d ks¦||d  |d kr°d	||< nV|dksÐ||d  |d krþ||d ksô||d  |d krþd
||< nd||< qPW ||d kr2d|	  |¡d|… }nX||d kr`d|
|	 d   |¡d|… }n*|dkr‚d|
  |¡d|… }nd| }d |¡}||d kr®| dd¡}t|d | ƒ q6W d|d  }|d|  |d d ¡7 }|d|| d   |d ¡7 }|d| 7 }t|ƒ dS )zâ
    Print a crude ASCII art plot of the SymPy expression 'expr' (which
    should contain a single symbol, e.g. x or something else) over the
    interval [a, b].

    Examples
    ========

    textplot(sin(t)*t, 0, 15)
    é   z length can not be greater than 1r   é   )éÿÿÿÿr	   é   r   ú ú/ú\Ú.z%gNÚ ú-z | é   é   )Zfree_symbolsÚlenÚ
ValueErrorÚpopr   r   Úfloatr   Ú	TypeErrorÚmaxÚminÚsortedÚintÚprintÚrjustÚjoinÚreplaceÚljust)ÚexprÚaÚbÚWÚHZfreeÚxÚfÚyZmaZmiZmarginÚhÚsÚprefixZbottom© r.   ú6lib/python3.7/site-packages/sympy/plotting/textplot.pyÚtextplot   s`    
$(
D
D
 

r0   N)r   r   )
Z
__future__r   r   Zsympy.core.symbolr   Zsympy.core.compatibilityr   Zsympy.utilities.lambdifyr   r0   r.   r.   r.   r/   Ú<module>   s   