Exemplo n.º 1
0
        public virtual void K3Degree()
        {
            int ord = 3;

            int[][] k3 = CompleteGraphOfSize(ord);
            var     pg = new RegularPathGraph(k3, Identity(3), ord);

            // note - vertices are only added to either vertex (lowest rank)
            Assert.AreEqual(2, pg.Degree(0));
            Assert.AreEqual(1, pg.Degree(1));
            Assert.AreEqual(0, pg.Degree(2));
            pg.Remove(0, new List <int[]>(0));
            Assert.AreEqual(0, pg.Degree(0));
            Assert.AreEqual(2, pg.Degree(1));
            Assert.AreEqual(0, pg.Degree(2));
            pg.Remove(1, new List <int[]>(0));
            Assert.AreEqual(0, pg.Degree(0));
            Assert.AreEqual(0, pg.Degree(1));
            Assert.AreEqual(0, pg.Degree(2));
        }
Exemplo n.º 2
0
        public virtual void K8()
        {
            int ord = 8;

            int[][]      k8     = CompleteGraphOfSize(ord);
            var          pg     = new RegularPathGraph(k8, Identity(8), ord);
            List <int[]> cycles = new List <int[]>();

            for (int v = 0; v < ord; v++)
            {
                pg.Remove(v, cycles);
            }
            Assert.AreEqual(8018, cycles.Count);
        }
Exemplo n.º 3
0
        public virtual void RepeatRemoval()
        {
            int ord = 3;

            int[][]      k3     = CompleteGraphOfSize(ord);
            var          pg     = new RegularPathGraph(k3, Identity(3), ord);
            List <int[]> cycles = new List <int[]>();

            pg.Remove(0, cycles);
            Assert.AreEqual(0, cycles.Count);
            pg.Remove(0, cycles);
            Assert.AreEqual(0, cycles.Count);
            pg.Remove(1, cycles);
            Assert.AreEqual(1, cycles.Count);
            pg.Remove(1, cycles);
            Assert.AreEqual(1, cycles.Count);
            pg.Remove(2, cycles);
            Assert.AreEqual(1, cycles.Count);
            pg.Remove(2, cycles);
            Assert.AreEqual(1, cycles.Count);
        }