public virtual void IsEmpty()
        {
            TripletShortCycles esssr = new TripletShortCycles(new MinimumCycleBasis(Array.Empty <int[]>()), false);

            int[][] paths = esssr.GetPaths();
            Assert.IsTrue(Compares.AreDeepEqual(Array.Empty <int[]>(), paths));
        }
        public virtual void Unmodifiable()
        {
            TripletShortCycles esssr = new TripletShortCycles(new MinimumCycleBasis(K4), false);

            int[][] paths = esssr.GetPaths();
            // modify paths
            foreach (var path in paths)
            {
                for (int i = 0; i < path.Length; i++)
                {
                    path[i] = path[i] + 1;
                }
            }
            // the internal paths should not be changed
            Assert.IsFalse(Compares.AreDeepEqual(esssr.GetPaths(), paths));
        }
        public virtual void NaphthalenePaths()
        {
            TripletShortCycles esssr = new TripletShortCycles(new MinimumCycleBasis(Naphthalene), false);

            int[][] paths = esssr.GetPaths();
            Assert.AreEqual(6, paths[0].Length - 1);
            Assert.AreEqual(6, paths[1].Length - 1);
            Assert.IsFalse(Compares.AreDeepEqual(paths[0], paths[1]));
            Assert.AreEqual(10, paths[2].Length - 1);
        }
        public virtual void CyclophanePaths()
        {
            TripletShortCycles esssr = new TripletShortCycles(new MinimumCycleBasis(Cyclophane()), false);

            Assert.IsTrue(Compares.AreDeepEqual(
                              new int[][]
            {
                new[] { 0, 1, 2, 3, 4, 5, 0 },
                new[] { 6, 7, 8, 9, 10, 11, 6 },
                new[] { 0, 1, 2, 3, 17, 18, 19, 16, 9, 8, 7, 6, 15, 14, 13, 12, 0 },
                new[] { 0, 1, 2, 3, 17, 18, 19, 16, 9, 10, 11, 6, 15, 14, 13, 12, 0 },
                new[] { 0, 5, 4, 3, 17, 18, 19, 16, 9, 8, 7, 6, 15, 14, 13, 12, 0 },
                new[] { 0, 5, 4, 3, 17, 18, 19, 16, 9, 10, 11, 6, 15, 14, 13, 12, 0 },
            },
                              esssr.GetPaths()));
        }