########################################################################
# #
# Test Script for lib/permutation-group.rb #
# #
########################################################################
require "rubyunit"
require "algebra/permutation-group.rb"
include Algebra
Pg = PermutationGroup
P = Permutation
class Rational;def inspect; to_s; end;end
class TestPermutationGroup < Runit
#PermutationGropu
def test_self_dot_unity #test for self.unity
assert_equal(P.unity(3), [0, 1, 2])
end
def test_self_dot_perm #test for self.perm
assert_equal(Pg.perm([0, 1, 2]), P.new([0, 1, 2]))
end
def test_self_dot_symmetric #test for self.symmetric
assert_equal(Pg.symmetric(3), Pg[P[0, 1, 2], P[0, 2, 1],
P[1, 0, 2], P[1, 2, 0],
P[2, 0, 1], P[2, 1, 0]])
end
def test_self_dot_alternate #test for self.alternate
assert_equal(Pg.alternate(3), Pg[P[0, 1, 2],
P[1, 2, 0],
P[2, 0, 1]])
end
#Permutation
def test_self_dot__bra #test for self.[]
assert_equal(P[0, 1, 2], P.new([0, 1, 2]))
end
def test_self_dot_unity #test for self.unity
assert_equal(P.unity(3), P[0, 1, 2])
end
def test_initialize #test for initialize
assert_equal(P.new([0, 1, 2]), P[0, 1, 2])
assert(true)
end
def test_unity #test for unity
assert_equal(P[2, 1, 0].unity, P[0, 1, 2])
end
def test_degree #test for degree
assert_equal(P[0, 1, 2].degree, 3)
end
def test_each #test for each
a = []
P[0, 1, 2].each do |i|
a << i
end
assert_equal(a, [0, 1, 2])
end
def test__bra #test for []
assert_equal(P[0, 1, 2][1], 1)
end
def test_index #test for index
assert_equal(P[2, 1, 0].index(0), 2)
end
def test_right_act #test for right_act
assert_equal(P[1, 2, 0].right_act(P[0, 2, 1]), P[2, 1, 0])
end
def test__star #test for *
assert_equal(P[1, 2, 0].right_act(P[0, 2, 1]), P[2, 1, 0])
end
def test_left_act #test for left_act
assert_equal(P[1, 2, 0].left_act(P[0, 2, 1]), P[1, 0, 2])
end
def test_inverse #test for inverse
assert_equal(P[1, 2, 0].inverse, P[2, 0, 1])
end
def test_inv #test for inv
assert_equal(P[1, 2, 0], P[2, 0, 1].inv)
end
def test_sign #test for sign
assert_equal(P[0, 2, 1].sign, -1)
assert_equal(P[1, 2, 0].sign, 1)
end
def test_conjugate #test for conjugate
assert_equal(P[1, 2, 0].conjugate(P[0, 2, 1]), P[2, 0, 1])
end
def test_decompose_cyclic #test for decompose_cyclic
assert_equal(P[0, 6, 3, 2, 1, 4, 5].decompose_cyclic, [[1,6,5,4], [2,3]])
end
=begin
def test_self_dot_load #test for self.load
end
def test_self_dot_subgr_load #test for self.subgr_load
end
def test_conjugate0 #test for conjugate0
end
=end
require "algebra/finite-map"
def test_to_map #test for to_Mapa
assert_equal(P[1, 2, 0].to_map, Map[0=>1, 1=>2, 2=>0])
end
def test_decompose_transposition #test for decompose_transposition
assert_equal(P[0, 6, 3, 2, 1, 4, 5].decompose_transposition,
[[4, 5], [2, 3], [1, 6], [1, 5]])
end
def test_Permutation_dot_cyclic2perm
assert_equal(P.cyclic2perm([[1,6,5,4], [2,3]]), P[0, 6, 3, 2, 1, 4, 5])
assert_equal(P.cyclic2perm([[1,6,5,4], [2,3]], 7), P[0, 6, 3, 2, 1, 4, 5])
end
end
Tests(TestPermutationGroup)
syntax highlighted by Code2HTML, v. 0.9.1