示例#1
0
                     Or, S, sin, sqrt, Symbol, Union, Integral,
                     Poly, PurePoly, pi, root, log, E, Piecewise,
                     Integer, Float, Rational)
from diofant.solvers.inequalities import (reduce_inequalities,
                                          solve_poly_inequality as psolve,
                                          reduce_rational_inequalities,
                                          solve_univariate_inequality as isolve,
                                          reduce_piecewise_inequality)
from diofant.polys.rootoftools import RootOf
from diofant.solvers.solvers import solve

from diofant.abc import x, y

__all__ = ()

inf = oo.evalf()


def test_solve_poly_inequality():
    assert psolve(Poly(0, x), '==') == [S.Reals]
    assert psolve(Poly(1, x), '==') == [S.EmptySet]
    assert psolve(PurePoly(x + 1, x), ">") == [Interval(-1, oo, True, True)]
    pytest.raises(ValueError, lambda: psolve(x, '=='))
    pytest.raises(ValueError, lambda: psolve(Poly(x, x), '??'))


def test_reduce_poly_inequalities_real_interval():
    assert reduce_rational_inequalities(
        [[Eq(x**2, 0)]], x, relational=False) == FiniteSet(0)
    assert reduce_rational_inequalities(
        [[Le(x**2, 0)]], x, relational=False) == FiniteSet(0)
示例#2
0
def test_infinities():
    assert oo.evalf(chop=True) == inf
    assert (-oo).evalf(chop=True) == ninf
示例#3
0
def test_infinities():
    assert oo.evalf(chop=True) == inf
    assert (-oo).evalf(chop=True) == ninf
示例#4
0
                     Rational, S, Symbol, Union, false, log, oo, pi, root, sin,
                     sqrt)
from diofant.abc import x, y
from diofant.polys.rootoftools import RootOf
from diofant.solvers.inequalities import (reduce_inequalities,
                                          reduce_piecewise_inequality,
                                          reduce_rational_inequalities,
                                          solve_poly_inequalities)
from diofant.solvers.inequalities import solve_poly_inequality as psolve
from diofant.solvers.inequalities import solve_univariate_inequality as isolve
from diofant.solvers.solvers import solve


__all__ = ()

inf = oo.evalf()


def test_solve_poly_inequality():
    assert psolve(Poly(0, x), '==') == [S.Reals]
    assert psolve(Poly(1, x), '==') == [S.EmptySet]
    assert psolve(PurePoly(x + 1, x), ">") == [Interval(-1, oo, True, True)]
    pytest.raises(ValueError, lambda: psolve(x, '=='))
    pytest.raises(ValueError, lambda: psolve(Poly(x, x), '??'))

    assert (solve_poly_inequalities(((Poly(x**2 - 3), ">"),
                                     (Poly(-x**2 + 1), ">"))) ==
            Union(Interval(-oo, -sqrt(3), True, True),
                  Interval(-1, 1, True, True),
                  Interval(sqrt(3), oo, True, True)))