Spaces:
Sleeping
Sleeping
from sympy.core.singleton import S | |
from sympy.core.symbol import Symbol | |
from sympy.functions.elementary.exponential import log | |
from sympy.functions.elementary.miscellaneous import sqrt | |
from sympy.functions.elementary.trigonometric import sin | |
from sympy.plotting.textplot import textplot_str | |
from sympy.utilities.exceptions import ignore_warnings | |
def test_axes_alignment(): | |
x = Symbol('x') | |
lines = [ | |
' 1 | ..', | |
' | ... ', | |
' | .. ', | |
' | ... ', | |
' | ... ', | |
' | .. ', | |
' | ... ', | |
' | ... ', | |
' | .. ', | |
' | ... ', | |
' 0 |--------------------------...--------------------------', | |
' | ... ', | |
' | .. ', | |
' | ... ', | |
' | ... ', | |
' | .. ', | |
' | ... ', | |
' | ... ', | |
' | .. ', | |
' | ... ', | |
' -1 |_______________________________________________________', | |
' -1 0 1' | |
] | |
assert lines == list(textplot_str(x, -1, 1)) | |
lines = [ | |
' 1 | ..', | |
' | .... ', | |
' | ... ', | |
' | ... ', | |
' | .... ', | |
' | ... ', | |
' | ... ', | |
' | .... ', | |
' 0 |--------------------------...--------------------------', | |
' | .... ', | |
' | ... ', | |
' | ... ', | |
' | .... ', | |
' | ... ', | |
' | ... ', | |
' | .... ', | |
' -1 |_______________________________________________________', | |
' -1 0 1' | |
] | |
assert lines == list(textplot_str(x, -1, 1, H=17)) | |
def test_singularity(): | |
x = Symbol('x') | |
lines = [ | |
' 54 | . ', | |
' | ', | |
' | ', | |
' | ', | |
' | ',' | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' 27.5 |--.----------------------------------------------------', | |
' | ', | |
' | ', | |
' | ', | |
' | . ', | |
' | \\ ', | |
' | \\ ', | |
' | .. ', | |
' | ... ', | |
' | ............. ', | |
' 1 |_______________________________________________________', | |
' 0 0.5 1' | |
] | |
assert lines == list(textplot_str(1/x, 0, 1)) | |
lines = [ | |
' 0 | ......', | |
' | ........ ', | |
' | ........ ', | |
' | ...... ', | |
' | ..... ', | |
' | .... ', | |
' | ... ', | |
' | .. ', | |
' | ... ', | |
' | / ', | |
' -2 |-------..----------------------------------------------', | |
' | / ', | |
' | / ', | |
' | / ', | |
' | . ', | |
' | ', | |
' | . ', | |
' | ', | |
' | ', | |
' | ', | |
' -4 |_______________________________________________________', | |
' 0 0.5 1' | |
] | |
# RuntimeWarning: divide by zero encountered in log | |
with ignore_warnings(RuntimeWarning): | |
assert lines == list(textplot_str(log(x), 0, 1)) | |
def test_sinc(): | |
x = Symbol('x') | |
lines = [ | |
' 1 | . . ', | |
' | . . ', | |
' | ', | |
' | . . ', | |
' | ', | |
' | . . ', | |
' | ', | |
' | ', | |
' | . . ', | |
' | ', | |
' 0.4 |-------------------------------------------------------', | |
' | . . ', | |
' | ', | |
' | . . ', | |
' | ', | |
' | ..... ..... ', | |
' | .. \\ . . / .. ', | |
' | / \\ / \\ ', | |
' |/ \\ . . / \\', | |
' | \\ / \\ / ', | |
' -0.2 |_______________________________________________________', | |
' -10 0 10' | |
] | |
# RuntimeWarning: invalid value encountered in double_scalars | |
with ignore_warnings(RuntimeWarning): | |
assert lines == list(textplot_str(sin(x)/x, -10, 10)) | |
def test_imaginary(): | |
x = Symbol('x') | |
lines = [ | |
' 1 | ..', | |
' | .. ', | |
' | ... ', | |
' | .. ', | |
' | .. ', | |
' | .. ', | |
' | .. ', | |
' | .. ', | |
' | .. ', | |
' | / ', | |
' 0.5 |----------------------------------/--------------------', | |
' | .. ', | |
' | / ', | |
' | . ', | |
' | ', | |
' | . ', | |
' | . ', | |
' | ', | |
' | ', | |
' | ', | |
' 0 |_______________________________________________________', | |
' -1 0 1' | |
] | |
# RuntimeWarning: invalid value encountered in sqrt | |
with ignore_warnings(RuntimeWarning): | |
assert list(textplot_str(sqrt(x), -1, 1)) == lines | |
lines = [ | |
' 1 | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' 0 |-------------------------------------------------------', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' | ', | |
' -1 |_______________________________________________________', | |
' -1 0 1' | |
] | |
assert list(textplot_str(S.ImaginaryUnit, -1, 1)) == lines | |