Beispiel #1
0
def test_div_by_zero():
    try:
        _ = p.parse("2/0")
    except (ZeroDivisionError, VisitError):
        # Program fails correctly
        assert True
    else:
        assert False
Beispiel #2
0
def test_to_real_addition(x, y):
    assert p.parse("re({}+{})".format(x, y)) == p.parse("{}".format(x + y))
Beispiel #3
0
def test_integrate_polyn():
    assert p.parse("integrate(2*x^2+x+2)") == p.parse("2*x^3/3+x^2/2+2*x")
Beispiel #4
0
def test_integrate_exp():
    assert p.parse("integrate(e^(x+5))") == p.parse("e^(x+5)")
Beispiel #5
0
def test_u_sub_int_cos():
    assert p.parse("integrate(x*cos(x^2))") == p.parse("sin(x^2)/2")
Beispiel #6
0
def test_int_sin():
    assert p.parse("integrate(sin(x))") == p.parse("-cos(x)")
Beispiel #7
0
def test_integrate_const_wrt_y(x):
    assert p.parse("integrate({},y)".format(x)) == p.parse("{}*y".format(x))
Beispiel #8
0
def test_get_variables_in_polyn():
    num = p.parse("(x+y)^2")
    assert num.get_variables_in() == {"x", "y"}
Beispiel #9
0
def test_brackets_and_term_expansion():
    assert p.parse("expand(x*(x+2+y))") == p.parse("x^2+2*x+y*x")
Beispiel #10
0
def test_log_of_exp_pow(x):
    assert p.parse("ln(e^({}))".format(x)) == p.parse(str(x))
Beispiel #11
0
def test_subs_using_mults():
    tst_num = p.parse("1/x^4")
    replace = p.parse("x^2")
    var_obj = caspy.numeric.numeric.Numeric("u", "sym")
    replaced_obj = tst_num.try_replace_numeric_with_var(replace, var_obj)
    assert replaced_obj == p.parse("1/u^2")
Beispiel #12
0
def test_try_replace_numeric():
    tst_sym = p.parse("x^4")
    replace = p.parse("x^2")
    var_obj = caspy.numeric.numeric.Numeric("u", "sym")
    replaced_obj = tst_sym.try_replace_numeric_with_var(replace, var_obj)
    assert replaced_obj == p.parse("u^2")
Beispiel #13
0
def test_subs_linear_combination():
    tst_num = p.parse("sin(x)+sin(x)^2")
    replace = p.parse("sin(x)")
    var_obj = caspy.numeric.numeric.Numeric("u", "sym")
    replaced_obj = tst_num.try_replace_numeric_with_var(replace, var_obj)
    assert replaced_obj == p.parse("u+u^2")
Beispiel #14
0
def test_try_replace_numeric_polyn():
    tst_num = p.parse("(x+1)^3")
    replace = p.parse("x+1")
    var_obj = caspy.numeric.numeric.Numeric("u", "sym")
    replaced_obj = tst_num.try_replace_numeric_with_var(replace, var_obj)
    assert replaced_obj == p.parse("u^3")
Beispiel #15
0
def test_try_replace_numeric_with_func():
    tst_sym = p.parse("x^4*sin(x^2)").val[0]
    replace = p.parse("x^2")
    var_obj = caspy.numeric.numeric.Numeric("u", "sym")
    replaced_obj = tst_sym.try_replace_numeric_with_var(replace, var_obj)
    assert replaced_obj == p.parse("sin(u)*u^2")
Beispiel #16
0
def test_expand_trig_sin():
    assert p.parse("expand_trig(sin(3*x))") == p.parse(
        "3*cos(x)^2 * sin(x) - sin(x)^3")
Beispiel #17
0
def test_get_variables_in_func():
    num = p.parse("x*sin(u)")
    assert num.get_variables_in() == {"x", "u"}
Beispiel #18
0
def test_expand_trig_cos():
    assert p.parse("expand_trig(cos(2*x))") == p.parse("cos(x)^2-sin(x)^2")
Beispiel #19
0
def test_integrate_const(x):
    assert p.parse("integrate({})".format(x)) == p.parse("{}*x".format(x))
Beispiel #20
0
def test_square_expansion():
    assert p.parse("expand((x+1)^2)") == p.parse("1+x^2+2*x")
Beispiel #21
0
def test_integrate_recip():
    assert p.parse("integrate(1/x)") == p.parse("ln(x)")
Beispiel #22
0
def test_brackets_expansion():
    assert p.parse("expand((y+2)*(y+3))") == p.parse("y^2+5*y+6")
Beispiel #23
0
def test_int_cos():
    assert p.parse("integrate(cos(x))") == p.parse("sin(x)")
Beispiel #24
0
def test_get_variables_in_exp():
    num = p.parse("2^a")
    assert num.get_variables_in() == {"a"}
Beispiel #25
0
def test_expand_then_int():
    assert p.parse("integrate((x+1)^2)") == p.parse("x^3/3+x^2+x")
Beispiel #26
0
def test_get_variables_in_linear():
    num = p.parse("a+b+x*y")
    assert num.get_variables_in() == {"a", "b", "x", "y"}
Beispiel #27
0
def test_int_by_parts():
    assert p.parse("integrate(x*ln(x^2))") == p.parse("x^2 * ln(x^2)/2-x^2/2")
Beispiel #28
0
def test_is_zero():
    num = p.parse("1-1")
    assert num.is_zero()
Beispiel #29
0
def test_expand_then_by_parts():
    assert p.parse("integrate((x+1)*sin(x))") == p.parse(
        "integrate(expand((x+1)*sin(x)))")
Beispiel #30
0
def test_to_real_log(x):
    assert p.parse("re(ln({}))".format(x)) == p.parse("{}".format(math.log(x)))