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