public void AreIsomorphic_OnIsomorphicQuiversButNonIsomorphicPotentials_SameGroupSignaturesAndSameCounts() { var potential1 = new Potential <char>(new DetachedCycle <char>(new Path <char>('B', 'C', 'E', 'B')), +1) .AddCycle(new DetachedCycle <char>(new Path <char>('A', 'B', 'C', 'A')), -1) .AddCycle(new DetachedCycle <char>(new Path <char>('B', 'D', 'E', 'B')), -1); var potential2 = new Potential <char>(new DetachedCycle <char>(new Path <char>('B', 'C', 'E', 'B')), +1) .AddCycle(new DetachedCycle <char>(new Path <char>('A', 'B', 'C', 'A')), -1) .AddCycle(new DetachedCycle <char>(new Path <char>('C', 'E', 'F', 'C')), -1); var qp1 = new QuiverWithPotential <char>(potential1); var vertices2 = new char[] { 'A', 'B', 'C', 'D', 'E', 'F' }; var arrows2 = new Arrow <char>[] { new Arrow <char>('A', 'B'), new Arrow <char>('B', 'C'), new Arrow <char>('B', 'D'), new Arrow <char>('C', 'A'), new Arrow <char>('C', 'E'), new Arrow <char>('D', 'E'), new Arrow <char>('E', 'B'), new Arrow <char>('E', 'F'), new Arrow <char>('F', 'C'), }; var quiver2 = new Quiver <char>(vertices2, arrows2); var qp2 = new QuiverWithPotential <char>(quiver2, potential2); var checker = new QPIsomorphismChecker(); Assert.That(checker.AreIsomorphic(qp1, qp2), Is.False); }
public void AreIsomorphic_SmallQP1() { var potential1 = new Potential <int>(new DetachedCycle <int>(new Path <int>(1, 2, 3, 1)), +1); var potential2 = new Potential <int>(new DetachedCycle <int>(new Path <int>(3, 2, 1, 3)), +1); var qp1 = new QuiverWithPotential <int>(potential1); var qp2 = new QuiverWithPotential <int>(potential2); var checker = new QPIsomorphismChecker(); Assert.That(checker.AreIsomorphic(qp1, qp2), Is.True); }
public void AreIsomorphic_SmallQP4() { var potential1 = new Potential <int>(new DetachedCycle <int>(new Path <int>(1, 2, 3, 1)), +1) .AddCycle(new DetachedCycle <int>(new Path <int>(4, 5, 6, 4)), +1); var potential2 = new Potential <int>(new DetachedCycle <int>(new Path <int>(3, 2, 1, 3)), +1); var qp1 = new QuiverWithPotential <int>(potential1); var quiver2 = qp1.Quiver; var qp2 = new QuiverWithPotential <int>(quiver2, potential2); var checker = new QPIsomorphismChecker(); Assert.That(checker.AreIsomorphic(qp2, qp1), Is.False); }
public void AreIsomorphic_OnTriangleQPs() { var potential1 = new Potential <char>(new DetachedCycle <char>(new Path <char>('B', 'C', 'E', 'B')), +1) .AddCycle(new DetachedCycle <char>(new Path <char>('A', 'B', 'C', 'A')), -1) .AddCycle(new DetachedCycle <char>(new Path <char>('B', 'D', 'E', 'B')), -1) .AddCycle(new DetachedCycle <char>(new Path <char>('C', 'E', 'F', 'C')), -1); var potential2 = new Potential <char>(new DetachedCycle <char>(new Path <char>('B', 'C', 'F', 'B')), +1) .AddCycle(new DetachedCycle <char>(new Path <char>('C', 'F', 'E', 'C')), -1) .AddCycle(new DetachedCycle <char>(new Path <char>('B', 'C', 'D', 'B')), -1) .AddCycle(new DetachedCycle <char>(new Path <char>('A', 'F', 'B', 'A')), -1); var qp1 = new QuiverWithPotential <char>(potential1); var qp2 = new QuiverWithPotential <char>(potential2); var checker = new QPIsomorphismChecker(); Assert.That(checker.AreIsomorphic(qp1, qp2), Is.True); }