- Timestamp:
- 07/12/17 21:04:37 (7 years ago)
- Location:
- stable
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 15191-15192
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Tests
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Tests merged: 15191-15192
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersGraphTest.cs
r15130 r15218 36 36 [TestProperty("Time", "short")] 37 37 public void IGraphWrappersGraphConstructionAndFinalizationTest() { 38 var graph = new Graph(5, new[] {38 using (var graph = new Graph(5, new[] { 39 39 Tuple.Create(0, 1), 40 40 Tuple.Create(0, 2), … … 43 43 Tuple.Create(2, 4), 44 44 Tuple.Create(3, 4), 45 }); 46 Assert.AreEqual(5, graph.Vertices); 47 Assert.IsFalse(graph.IsDirected); 45 })) { 46 Assert.AreEqual(5, graph.Vertices); 47 Assert.IsFalse(graph.IsDirected); 48 } 48 49 49 graph = new Graph(3, new[] {50 using (var graph = new Graph(3, new[] { 50 51 Tuple.Create(0, 1), 51 52 Tuple.Create(0, 2), 52 53 Tuple.Create(1, 2), 53 }, directed: true); 54 Assert.AreEqual(3, graph.Vertices); 55 Assert.IsTrue(graph.IsDirected); 54 }, directed: true)) { 55 Assert.AreEqual(3, graph.Vertices); 56 Assert.IsTrue(graph.IsDirected); 57 } 56 58 } 57 59 … … 61 63 [TestProperty("Time", "short")] 62 64 public void IGraphWrappersGraphDensityTest() { 63 var graph = new Graph(5, new[] {65 using (var graph = new Graph(5, new[] { 64 66 Tuple.Create(0, 1), 65 67 Tuple.Create(0, 2), … … 68 70 Tuple.Create(2, 4), 69 71 Tuple.Create(3, 4), 70 }) ;72 })) { 71 73 72 var density = graph.Density(); 73 // in un-directed graphs edges count twice 74 Assert.IsTrue(density.IsAlmost(12 / 20.0)); 74 var density = graph.Density(); 75 // in un-directed graphs edges count twice 76 Assert.IsTrue(density.IsAlmost(12 / 20.0)); 77 } 75 78 76 graph.Dispose(); 77 78 graph = new Graph(5, new[] { 79 using (var graph = new Graph(5, new[] { 79 80 Tuple.Create(0, 1), 80 81 Tuple.Create(0, 2), … … 83 84 Tuple.Create(2, 4), 84 85 Tuple.Create(3, 4), 85 }, directed: true) ;86 }, directed: true)) { 86 87 87 density = graph.Density(); 88 // in directed graphs edges count twice 89 Assert.IsTrue(density.IsAlmost(6 / 20.0)); 88 var density = graph.Density(); 89 // in directed graphs edges count twice 90 Assert.IsTrue(density.IsAlmost(6 / 20.0)); 91 } 90 92 } 91 93 … … 95 97 [TestProperty("Time", "short")] 96 98 public void IGraphWrappersGraphPageRankTest() { 97 var graph = new Graph(4, new[] {99 using (var graph = new Graph(4, new[] { 98 100 Tuple.Create(0, 1), 99 101 Tuple.Create(0, 2), … … 101 103 Tuple.Create(2, 0), 102 104 Tuple.Create(3, 2), 103 }, directed: true) ;104 var ranks = graph.PageRank();105 Assert.AreEqual(4, ranks.Length);106 Assert.AreEqual(0.372, ranks[0], 0.01);107 Assert.AreEqual(0.195, ranks[1], 0.01);108 Assert.AreEqual(0.394, ranks[2], 0.01);109 Assert.AreEqual(0.037, ranks[3], 0.01);110 111 graph = new Graph(4, new[] {105 }, directed: true)) { 106 var ranks = graph.PageRank(); 107 Assert.AreEqual(4, ranks.Length); 108 Assert.AreEqual(0.372, ranks[0], 0.01); 109 Assert.AreEqual(0.195, ranks[1], 0.01); 110 Assert.AreEqual(0.394, ranks[2], 0.01); 111 Assert.AreEqual(0.037, ranks[3], 0.01); 112 } 113 using (var graph = new Graph(4, new[] { 112 114 Tuple.Create(0, 1), 113 115 Tuple.Create(1, 2), 114 116 Tuple.Create(2, 3), 115 117 Tuple.Create(3, 0), 116 }, directed: true) ;117 ranks = graph.PageRank();118 Assert.AreEqual(4, ranks.Length);119 Assert.AreEqual(0.250, ranks[0], 0.01);120 Assert.AreEqual(0.250, ranks[1], 0.01);121 Assert.AreEqual(0.250, ranks[2], 0.01);122 Assert.AreEqual(0.250, ranks[3], 0.01);123 124 graph = new Graph(4, new[] {118 }, directed: true)) { 119 var ranks = graph.PageRank(); 120 Assert.AreEqual(4, ranks.Length); 121 Assert.AreEqual(0.250, ranks[0], 0.01); 122 Assert.AreEqual(0.250, ranks[1], 0.01); 123 Assert.AreEqual(0.250, ranks[2], 0.01); 124 Assert.AreEqual(0.250, ranks[3], 0.01); 125 } 126 using (var graph = new Graph(4, new[] { 125 127 Tuple.Create(0, 1), 126 128 Tuple.Create(0, 2), … … 129 131 Tuple.Create(2, 0), 130 132 Tuple.Create(3, 0), 131 }, directed: true); 132 ranks = graph.PageRank(); 133 Assert.AreEqual(4, ranks.Length); 134 Assert.AreEqual(0.480, ranks[0], 0.01); 135 Assert.AreEqual(0.173, ranks[1], 0.01); 136 Assert.AreEqual(0.173, ranks[2], 0.01); 137 Assert.AreEqual(0.173, ranks[3], 0.01); 133 }, directed: true)) { 134 var ranks = graph.PageRank(); 135 Assert.AreEqual(4, ranks.Length); 136 Assert.AreEqual(0.480, ranks[0], 0.01); 137 Assert.AreEqual(0.173, ranks[1], 0.01); 138 Assert.AreEqual(0.173, ranks[2], 0.01); 139 Assert.AreEqual(0.173, ranks[3], 0.01); 140 } 138 141 } 139 142 … … 143 146 [TestProperty("Time", "short")] 144 147 public void IGraphWrappersGraphBreadthFirstWalkTest() { 145 var graph = new Graph(4, new[] {148 using (var graph = new Graph(4, new[] { 146 149 Tuple.Create(0, 1), 147 150 Tuple.Create(0, 2), … … 149 152 Tuple.Create(2, 0), 150 153 Tuple.Create(3, 2), 151 }, directed: true); 152 var visited = new HashSet<int>(); 153 BreadthFirstHandler handler = (graph1, currentVertexId, previousVertexId, nextVertexId, rank, distance, tag) => { 154 visited.Add(currentVertexId); 155 return false; 156 }; 157 graph.BreadthFirstWalk(handler, 0, DirectedWalkMode.All, true, null); 158 Assert.AreEqual(4, visited.Count); 159 Assert.IsTrue(visited.Contains(0)); 160 Assert.IsTrue(visited.Contains(1)); 161 Assert.IsTrue(visited.Contains(2)); 162 Assert.IsTrue(visited.Contains(3)); 154 }, directed: true)) { 155 var visited = new HashSet<int>(); 156 BreadthFirstHandler handler = (graph1, currentVertexId, previousVertexId, nextVertexId, rank, distance, tag) => { 157 visited.Add(currentVertexId); 158 return false; 159 }; 160 graph.BreadthFirstWalk(handler, 0, DirectedWalkMode.All, true, null); 161 Assert.AreEqual(4, visited.Count); 162 Assert.IsTrue(visited.Contains(0)); 163 Assert.IsTrue(visited.Contains(1)); 164 Assert.IsTrue(visited.Contains(2)); 165 Assert.IsTrue(visited.Contains(3)); 166 } 163 167 } 164 168 … … 168 172 [TestProperty("Time", "short")] 169 173 public void IGraphWrappersGraphDepthFirstWalkTest() { 170 var graph = new Graph(4, new[] {174 using (var graph = new Graph(4, new[] { 171 175 Tuple.Create(0, 1), 172 176 Tuple.Create(0, 2), … … 174 178 Tuple.Create(2, 0), 175 179 Tuple.Create(3, 2), 176 }, directed: true); 177 var visited = new HashSet<int>(); 178 DepthFirstHandler handler = (graph1, vertexId, distance, tag) => { 179 visited.Add(vertexId); 180 return false; 181 }; 182 graph.DepthFirstWalk(handler, handler, 0, DirectedWalkMode.All, true, null); 183 Assert.AreEqual(4, visited.Count); 184 Assert.IsTrue(visited.Contains(0)); 185 Assert.IsTrue(visited.Contains(1)); 186 Assert.IsTrue(visited.Contains(2)); 187 Assert.IsTrue(visited.Contains(3)); 180 }, directed: true)) { 181 var visited = new HashSet<int>(); 182 DepthFirstHandler handler = (graph1, vertexId, distance, tag) => { 183 visited.Add(vertexId); 184 return false; 185 }; 186 graph.DepthFirstWalk(handler, handler, 0, DirectedWalkMode.All, true, null); 187 Assert.AreEqual(4, visited.Count); 188 Assert.IsTrue(visited.Contains(0)); 189 Assert.IsTrue(visited.Contains(1)); 190 Assert.IsTrue(visited.Contains(2)); 191 Assert.IsTrue(visited.Contains(3)); 192 } 188 193 } 189 194 }
Note: See TracChangeset
for help on using the changeset viewer.