///////////////////////////////////////////////////////////////////// // persistentGraph.cpp - convert graph to/from XML file // // ver 2 // // Language: C++, Visual Studio, 2010, SP1 // // Platform: Toshiba Portege R705, Windows 7, SP1 // // Application: Summer Projects // // Author: Jim Fawcett, Syracuse University, CST 4-187 // // www.lcs.syr.edu/faculty/fawcett, (315) 443-3948 // ///////////////////////////////////////////////////////////////////// #ifdef TEST_PERSISTENTGRAPH #include "persistentGraph.h" #include #include typedef vertex vert; typedef edge edg; typedef graph grph; int main(int argc, char* argv[]) { std::cout << "\n Testing PersistentGraph"; std::cout << "\n =========================\n"; std::string filename; if(argc < 2) { filename = "graph.xml"; } else { filename = argv[1]; } std::ifstream in; in.open(filename); if(!in.good()) { std::cout << "\n can't open " << filename; return 1; } std::cout << "\n processing " << filename << "\n"; std::string fileString; char ch; while(true) { ch = in.get(); if(!in.good()) break; fileString += ch; } in.close(); std::cout << "\n" << fileString << "\n"; std::cout << "\n creating graph from XML string"; std::cout << "\n --------------------------------"; grph gr; graphFromXML(gr, fileString); std::cout << showGraph(gr,true) << std::endl; std::cout << "\n adding edge"; std::cout << "\n -------------"; vert* pVfrom = gr.findVertex("v2"); vert* pVto = gr.findVertex("v1"); if(pVfrom == 0 || pVto == 0) { std::cout << "\n can't create edge"; } else { gr.addEdge("e7",gr.findVertex("v2"),gr.findVertex("v1")); gr.name() = gr.name() + " modified"; } std::cout << showGraph(gr,true) << std::endl; std::cout << "\n persisting graph to XML string"; std::cout << "\n --------------------------------"; std::string grXML = graphToXML(gr); std::cout << "\n " << grXML << std::endl; std::cout << "\n recreating graph from persisted string"; std::cout << "\n ----------------------------------------"; grph gr2; graphFromXML(gr2,grXML); std::cout << showGraph(gr2,true); std::cout << "\n\n"; return 0; } #endif