Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/12/17 21:04:37 (7 years ago)
Author:
abeham
Message:

#2803: merged revisions 15191, 15192 to stable

Location:
stable
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Tests

  • stable/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersGraphTest.cs

    r15130 r15218  
    3636    [TestProperty("Time", "short")]
    3737    public void IGraphWrappersGraphConstructionAndFinalizationTest() {
    38       var graph = new Graph(5, new[] {
     38      using (var graph = new Graph(5, new[] {
    3939        Tuple.Create(0, 1),
    4040        Tuple.Create(0, 2),
     
    4343        Tuple.Create(2, 4),
    4444        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      }
    4849
    49       graph = new Graph(3, new[] {
     50      using (var graph = new Graph(3, new[] {
    5051        Tuple.Create(0, 1),
    5152        Tuple.Create(0, 2),
    5253        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      }
    5658    }
    5759
     
    6163    [TestProperty("Time", "short")]
    6264    public void IGraphWrappersGraphDensityTest() {
    63       var graph = new Graph(5, new[] {
     65      using (var graph = new Graph(5, new[] {
    6466        Tuple.Create(0, 1),
    6567        Tuple.Create(0, 2),
     
    6870        Tuple.Create(2, 4),
    6971        Tuple.Create(3, 4),
    70       });
     72      })) {
    7173
    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      }
    7578
    76       graph.Dispose();
    77 
    78       graph = new Graph(5, new[] {
     79      using (var graph = new Graph(5, new[] {
    7980        Tuple.Create(0, 1),
    8081        Tuple.Create(0, 2),
     
    8384        Tuple.Create(2, 4),
    8485        Tuple.Create(3, 4),
    85       }, directed: true);
     86      }, directed: true)) {
    8687
    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      }
    9092    }
    9193
     
    9597    [TestProperty("Time", "short")]
    9698    public void IGraphWrappersGraphPageRankTest() {
    97       var graph = new Graph(4, new[] {
     99      using (var graph = new Graph(4, new[] {
    98100        Tuple.Create(0, 1),
    99101        Tuple.Create(0, 2),
     
    101103        Tuple.Create(2, 0),
    102104        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[] {
    112114        Tuple.Create(0, 1),
    113115        Tuple.Create(1, 2),
    114116        Tuple.Create(2, 3),
    115117        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[] {
    125127        Tuple.Create(0, 1),
    126128        Tuple.Create(0, 2),
     
    129131        Tuple.Create(2, 0),
    130132        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      }
    138141    }
    139142
     
    143146    [TestProperty("Time", "short")]
    144147    public void IGraphWrappersGraphBreadthFirstWalkTest() {
    145       var graph = new Graph(4, new[] {
     148      using (var graph = new Graph(4, new[] {
    146149        Tuple.Create(0, 1),
    147150        Tuple.Create(0, 2),
     
    149152        Tuple.Create(2, 0),
    150153        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      }
    163167    }
    164168
     
    168172    [TestProperty("Time", "short")]
    169173    public void IGraphWrappersGraphDepthFirstWalkTest() {
    170       var graph = new Graph(4, new[] {
     174      using (var graph = new Graph(4, new[] {
    171175        Tuple.Create(0, 1),
    172176        Tuple.Create(0, 2),
     
    174178        Tuple.Create(2, 0),
    175179        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      }
    188193    }
    189194  }
Note: See TracChangeset for help on using the changeset viewer.