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 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 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 Lexicographic() { int[] exp = new int[] { 0, 1, 2, 3, 4 }; Assert.IsTrue(Compares.AreDeepEqual(exp, TripletShortCycles.Lexicographic(new int[] { 0, 1, 2, 3, 4 }))); Assert.IsTrue(Compares.AreDeepEqual(exp, TripletShortCycles.Lexicographic(new int[] { 4, 0, 1, 2, 3 }))); Assert.IsTrue(Compares.AreDeepEqual(exp, TripletShortCycles.Lexicographic(new int[] { 3, 4, 0, 1, 2 }))); Assert.IsTrue(Compares.AreDeepEqual(exp, TripletShortCycles.Lexicographic(new int[] { 2, 3, 4, 0, 1 }))); Assert.IsTrue(Compares.AreDeepEqual(exp, TripletShortCycles.Lexicographic(new int[] { 1, 2, 3, 4, 0 }))); Assert.IsTrue(Compares.AreDeepEqual(exp, TripletShortCycles.Lexicographic(new int[] { 4, 3, 2, 1, 0 }))); Assert.IsTrue(Compares.AreDeepEqual(exp, TripletShortCycles.Lexicographic(new int[] { 3, 2, 1, 0, 4 }))); Assert.IsTrue(Compares.AreDeepEqual(exp, TripletShortCycles.Lexicographic(new int[] { 2, 1, 0, 4, 3 }))); Assert.IsTrue(Compares.AreDeepEqual(exp, TripletShortCycles.Lexicographic(new int[] { 1, 0, 4, 3, 2 }))); Assert.IsTrue(Compares.AreDeepEqual(exp, TripletShortCycles.Lexicographic(new int[] { 0, 4, 3, 2, 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())); }
public virtual void NaphthaleneSize() { TripletShortCycles esssr = new TripletShortCycles(new MinimumCycleBasis(Naphthalene), false); Assert.AreEqual(3, esssr.Count); }
public virtual void CyclophaneSize() { TripletShortCycles esssr = new TripletShortCycles(new MinimumCycleBasis(Cyclophane()), false); Assert.AreEqual(6, esssr.Count); }
public virtual void BicycloSize() { TripletShortCycles esssr = new TripletShortCycles(new MinimumCycleBasis(Bicyclo), false); Assert.AreEqual(3, esssr.Count); }
public virtual void AnthraceneSize() { TripletShortCycles esssr = new TripletShortCycles(new MinimumCycleBasis(Anthracene), false); Assert.AreEqual(5, esssr.Count); }