src/test/dijkstra_test.cc
author alpar
Fri, 07 May 2004 06:58:24 +0000
changeset 568 ed0a4de23923
child 570 eec0a62979c9
permissions -rw-r--r--
An alternative dijkstra_test.cc
alpar@568
     1
#include <test_tools.h>
alpar@568
     2
#include <hugo/smart_graph.h>
alpar@568
     3
#include <hugo/dijkstra.h>
alpar@568
     4
alpar@568
     5
using namespace hugo;
alpar@568
     6
alpar@568
     7
const int PET_SIZE =5;
alpar@568
     8
alpar@568
     9
int main()
alpar@568
    10
{
alpar@568
    11
    
alpar@568
    12
  typedef SmartGraph Graph;
alpar@568
    13
alpar@568
    14
  typedef Graph::Edge Edge;
alpar@568
    15
  typedef Graph::Node Node;
alpar@568
    16
  typedef Graph::EdgeIt EdgeIt;
alpar@568
    17
  typedef Graph::NodeIt NodeIt;
alpar@568
    18
  typedef Graph::EdgeMap<int> LengthMap;
alpar@568
    19
alpar@568
    20
  Graph G;
alpar@568
    21
  Node s, t;
alpar@568
    22
  LengthMap cap(G);
alpar@568
    23
alpar@568
    24
  PetStruct<Graph> ps = addPetersen(G,PET_SIZE);
alpar@568
    25
  
alpar@568
    26
  for(int i=0;i<PET_SIZE;i++) {
alpar@568
    27
    cap[ps.outcir[i]]=4;
alpar@568
    28
    cap[ps.incir[i]]=1;
alpar@568
    29
    cap[ps.chords[i]]=10;
alpar@568
    30
  }
alpar@568
    31
  s=ps.outer[0];
alpar@568
    32
  t=ps.inner[1];
alpar@568
    33
  
alpar@568
    34
  Dijkstra<Graph, LengthMap> 
alpar@568
    35
	dijkstra_test(G, cap);
alpar@568
    36
  dijkstra_test.run(s);
alpar@568
    37
  
alpar@568
    38
  check(dijkstra_test.dist(t)==13,"Dijkstra found a wrong path.");
alpar@568
    39
  
alpar@568
    40
}
alpar@568
    41