src/work/marci/merge_node_graph_wrapper_test.cc
author marci
Thu, 18 Nov 2004 14:37:22 +0000
changeset 1007 a7d5fe18d8f9
parent 921 818510fa3d99
child 1008 3fef334f5f37
permissions -rw-r--r--
MergeNodeGraphWrapper
marci@915
     1
#include <iostream>
marci@915
     2
alpar@921
     3
#include <lemon/list_graph.h>
alpar@921
     4
#include <lemon/smart_graph.h>
marci@915
     5
#include <merge_node_graph_wrapper.h>
marci@915
     6
marci@915
     7
using std::cout;
marci@915
     8
using std::endl;
marci@915
     9
alpar@921
    10
using namespace lemon;
marci@915
    11
marci@1007
    12
class Graph3 : ListGraph {
marci@1007
    13
public:
marci@1007
    14
  class Node : public ListGraph::Node { };
marci@1007
    15
  class Edge { };
marci@1007
    16
};
marci@1007
    17
marci@915
    18
int main() {
marci@917
    19
  typedef SmartGraph Graph1;
marci@917
    20
  typedef ListGraph Graph2;
marci@917
    21
  Graph1 g;
marci@917
    22
  Graph2 h;
marci@917
    23
  typedef MergeNodeGraphWrapper<Graph1, Graph2> GW;
marci@915
    24
  GW gw(g, h);
marci@917
    25
  Graph1::Node n1=g.addNode();
marci@917
    26
  Graph1::Node n2=g.addNode();
marci@917
    27
  Graph1::Node n3=g.addNode();
marci@917
    28
  Graph2::Node n4=h.addNode();
marci@917
    29
  Graph2::Node n5=h.addNode();
marci@915
    30
  //GW::NodeIt n(gw)
marci@915
    31
  for (GW::NodeIt n(gw); n!=INVALID; ++n) { 
marci@915
    32
    cout << gw.id(n) << endl;
marci@915
    33
  }
marci@917
    34
marci@917
    35
  GW::NodeMap<int> nm(gw);
marci@917
    36
  int i=0;
marci@917
    37
  for (GW::NodeIt n(gw); n!=INVALID; ++n) { 
marci@917
    38
    ++i;
marci@917
    39
    nm.set(n, i);
marci@917
    40
  }
marci@917
    41
  for (Graph1::NodeIt n(g); n!=INVALID; ++n) { 
marci@917
    42
    cout << nm[n] << endl;
marci@917
    43
  }
marci@917
    44
  for (Graph2::NodeIt n(h); n!=INVALID; ++n) { 
marci@917
    45
    cout << nm[n] << endl;
marci@917
    46
  }
marci@1007
    47
marci@1007
    48
  gw.print();
marci@1007
    49
marci@1007
    50
  {
marci@1007
    51
//    typedef SmartGraph Graph1;
marci@1007
    52
    typedef ListGraph Graph1;
marci@1007
    53
    typedef ListGraph Graph2;
marci@1007
    54
    Graph1 g;
marci@1007
    55
    Graph2 h;
marci@1007
    56
    typedef MergeNodeGraphWrapper<Graph1, Graph2> GW;
marci@1007
    57
    GW gw(g, h);    
marci@1007
    58
    gw.print();
marci@1007
    59
  }
marci@1007
    60
  {
marci@1007
    61
//    typedef SmartGraph Graph1;
marci@1007
    62
    typedef Graph3 Graph1;
marci@1007
    63
    typedef ListGraph Graph2;
marci@1007
    64
    Graph1 g;
marci@1007
    65
    Graph2 h;
marci@1007
    66
    typedef MergeNodeGraphWrapper<Graph1, Graph2> GW;
marci@1007
    67
    GW gw(g, h);    
marci@1007
    68
    gw.print();
marci@1007
    69
  }
marci@1007
    70
  {
marci@1007
    71
//    typedef SmartGraph Graph1;
marci@1007
    72
    typedef ListGraph Graph1;
marci@1007
    73
    typedef Graph3 Graph2;
marci@1007
    74
    Graph1 g;
marci@1007
    75
    Graph2 h;
marci@1007
    76
    typedef MergeNodeGraphWrapper<Graph1, Graph2> GW;
marci@1007
    77
    GW gw(g, h);    
marci@1007
    78
    gw.print();
marci@1007
    79
  }
marci@915
    80
}