COIN-OR::LEMON - Graph Library

Changeset 1568:f694f75de683 in lemon-0.x for test/graph_utils_test.h


Ignore:
Timestamp:
07/18/05 17:10:22 (14 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2067
Message:

Improving tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/graph_utils_test.h

    r1435 r1568  
    1919
    2020#include "test_tools.h"
     21#include <cstdlib>
     22#include <ctime>
    2123
    2224//! \ingroup misc
     
    3840    }
    3941  }
     42
     43  template <typename Graph>
     44  void checkFindEdge() {
     45    typedef typename Graph::Node Node;
     46    typedef typename Graph::Edge Edge;
     47    typedef typename Graph::NodeIt NodeIt;
     48    typedef typename Graph::EdgeIt EdgeIt;
     49    Graph graph;
     50    srand(time(0));
     51    for (int i = 0; i < 10; ++i) {
     52      graph.addNode();
     53    }
     54    DescriptorMap<Graph, Node> nodes(graph);
     55    typename DescriptorMap<Graph, Node>::InverseMap invNodes(nodes);
     56    for (int i = 0; i < 100; ++i) {
     57      int src = (int)(rand() / (RAND_MAX + 1.0) * invNodes.size());
     58      int trg = (int)(rand() / (RAND_MAX + 1.0) * invNodes.size());
     59      graph.addEdge(invNodes[src], invNodes[trg]);
     60    }
     61    typename Graph::template EdgeMap<bool> found(graph, false);
     62    DescriptorMap<Graph, Edge> edges(graph);
     63    for (NodeIt src(graph); src != INVALID; ++src) {
     64      for (NodeIt trg(graph); trg != INVALID; ++trg) {
     65        for (ConEdgeIt<Graph> con(graph, src, trg); con != INVALID; ++con) {
     66          check(graph.source(con) == src, "Wrong source.");
     67          check(graph.target(con) == trg, "Wrong target.");
     68          check(found[con] == false, "The edge found already.");
     69          found[con] = true;
     70        }
     71      }
     72    }
     73    for (EdgeIt it(graph); it != INVALID; ++it) {
     74      check(found[it] == true, "The edge is not found.");
     75    }
     76  }
    4077 
    4178} //namespace lemon
Note: See TracChangeset for help on using the changeset viewer.