src/work/deba/graph_io_test.cc
changeset 1036 2f514b5c7122
parent 1032 9e903d3a1ef6
child 1037 3eaff8d04171
equal deleted inserted replaced
0:59237f6e3ce0 1:374ec5cadc32
     1 #include <lemon/smart_graph.h>
     1 #include <lemon/smart_graph.h>
     2 #include <lemon/graph_reader.h>
     2 #include "graph_reader.h"
     3 
     3 
     4 #include <iostream>
     4 #include <iostream>
     5 #include <fstream>
     5 #include <fstream>
     6 
     6 
     7 using namespace std;
     7 using namespace std;
     9 
     9 
    10 int main() {
    10 int main() {
    11   ifstream input("test.lgf");
    11   ifstream input("test.lgf");
    12   SmartGraph graph;
    12   SmartGraph graph;
    13   GraphReader<SmartGraph> reader(input, graph);
    13   GraphReader<SmartGraph> reader(input, graph);
       
    14   SmartGraph::NodeMap<int> id(graph);
       
    15   reader.readNodeMap("id", id);
    14   SmartGraph::NodeMap<int> cost(graph);
    16   SmartGraph::NodeMap<int> cost(graph);
    15   reader.readNodeMap("cost", cost);
    17   reader.readNodeMap("cost", cost);
    16   SmartGraph::NodeMap<string> color(graph);
    18   SmartGraph::NodeMap<string> color(graph);
    17   reader.readNodeMap("color", color);
    19   reader.readNodeMap("color", color);
    18   reader.read();
    20   SmartGraph::NodeMap<string> description(graph);
       
    21   reader.readNodeMap<QuotedStringReader>("description", description);
       
    22   SmartGraph::EdgeMap<char> mmap(graph);
       
    23   reader.readEdgeMap("mmap", mmap);
       
    24   reader.skipEdgeMap<QuotedStringReader>("description");
       
    25   try {
       
    26     reader.read();
       
    27   } catch (IOException& e) {
       
    28     cerr << e.what() << endl;
       
    29   } catch (Exception e) {
       
    30     cerr << e.what() << endl;
       
    31   }
    19   for (SmartGraph::NodeIt it(graph); it != INVALID; ++it) {
    32   for (SmartGraph::NodeIt it(graph); it != INVALID; ++it) {
    20     cout << cost[it] << color[it] << endl;
    33     cout << cost[it] << ' ' << color[it] << ' ' << description[it] << endl;
       
    34   }
       
    35 
       
    36   for (SmartGraph::EdgeIt it(graph); it != INVALID; ++it) {
       
    37     cout << mmap[it] << ' ' << id[graph.source(it)] << ' ' << id[graph.target(it)]  << endl;
    21   }
    38   }
    22   return 0;
    39   return 0;
    23 }
    40 }