#######################################################
# #
# This is the test of order of MPolynomial #
# #
#######################################################
require "rubyunit"
require "algebra/m-polynomial"
#class Rational < Numeric;def inspect; to_s; end;end
class Rational;def inspect; to_s; end;end
P = Algebra::MPolynomial.create(Integer, "x", "y", "z")
class TestMIndex < Runit
def test_compare
x, y, z = P.vars
P.with_ord(:lex) do
assert(y * z**2 > y)
assert(y**2 * z**2 > y * z**2)
assert(y**2 * z**2 > y * z**10)
assert(y**2 * z**2 < x * z**3)
assert(y * z**2 > 1)
end
end
def test_compare_grlex
x, y, z = P.vars
P.with_ord(:grlex) do
assert(y * z**2 > z)
assert(y**2 * z**2 > y * z**2)
assert(y**2 * z**2 < y * z**10)
assert(y**2 * z**2 < x * z**3)
assert(y * z**2 > 1)
end
end
def test_compare_grevlex
x, y, z = P.vars
P.with_ord(:grevlex) do
assert(y * z**2 > z)
assert(y**2 * z**2 > y * z**2)
assert(y**2 * z**2 < y * z**10)
assert(y**2 * z**2 > x * z**3)
assert(y * z**2 > 1)
end
end
def test_compare_vars
x, y, z = P.vars
f = x + y + z
P.with_ord(nil, [0, 1, 2], [f]) do
assert_equal("x + y + z", f.to_s)
end
P.with_ord(nil, [1, 0, 2], [f]) do
assert_equal("y + x + z", f.to_s)
end
P.with_ord(nil, [2, 1, 0], [f]) do
assert_equal("z + y + x", f.to_s)
end
P.with_ord(nil, [0, 2, 1], [f]) do
assert_equal("x + z + y", f.to_s)
end
end
end
Tests(TestMIndex)
syntax highlighted by Code2HTML, v. 0.9.1