Exemplo n.º 1
0
        public void Triangles_AreSelfInjective_WithUnusualFirstVertex()
        {
            const int FirstVertex = -123;
            var       qps         = Utility.InfiniteRange(2).Select(k => UsefulQPs.GetTriangleQP(k, FirstVertex)).TakeWhile(qp => qp.Quiver.Vertices.Count < 30);

            AssertAreSelfInjective(qps);
        }
Exemplo n.º 2
0
        public void ComputeMaximalNonzeroEquivalenceClassRepresentativesStartingAt_TriforceCorner()
        {
            var settings = GetSettings(detectNonCancellativity: false);
            var qp       = UsefulQPs.GetTriangleQP(3);

            DoSetup(qp, out var ruleTree);

            var representatives          = Computer.ComputeMaximalNonzeroEquivalenceClassRepresentativesStartingAt(qp.Quiver, 1, ruleTree, settings).MaximalNonzeroEquivalenceClassRepresentatives;
            var representativeArrowPaths = representatives.Select(path => path.Arrows).ToList();
            var expectedRepresentative   = new Arrow <int>[] { new Arrow <int>(1, 3), new Arrow <int>(3, 6) };

            Assert.That(representativeArrowPaths, Has.Count.EqualTo(1));
            Assert.That(representativeArrowPaths.Single(), Is.EqualTo(expectedRepresentative));
        }
Exemplo n.º 3
0
        public void ComputeMaximalNonzeroEquivalenceClassRepresentativesStartingAt_TriforceInterior()
        {
            var settings = GetSettings(detectNonCancellativity: false);
            var qp       = UsefulQPs.GetTriangleQP(3);

            DoSetup(qp, out var ruleTree);

            var representatives                   = Computer.ComputeMaximalNonzeroEquivalenceClassRepresentativesStartingAt(qp.Quiver, 2, ruleTree, settings).MaximalNonzeroEquivalenceClassRepresentatives.ToList();
            var representativeArrowPaths          = representatives.Select(path => path.Arrows);
            var expectedMaximalEquivalenceClasses = new ISet <IEnumerable <Arrow <int> > >[]
            {
                new HashSet <IEnumerable <Arrow <int> > >
                {
                    new Arrow <int>[] { new Arrow <int>(2, 1), new Arrow <int>(1, 3) },
                    new Arrow <int>[] { new Arrow <int>(2, 5), new Arrow <int>(5, 3) }
                },
            };

            Assert.That(representatives, Has.Count.EqualTo(expectedMaximalEquivalenceClasses.Length));
            foreach (var representative in representativeArrowPaths)
            {
                Assert.That(expectedMaximalEquivalenceClasses, Has.One.Contains(representative));
            }
        }
Exemplo n.º 4
0
        public void Triangles_AreSelfInjective()
        {
            var qps = Utility.InfiniteRange(2).Select(k => UsefulQPs.GetTriangleQP(k)).TakeWhile(qp => qp.Quiver.Vertices.Count < 20);

            AssertAreSelfInjective(qps);
        }