hegyi@677: #include <string>
hegyi@677: #include <iostream>
hegyi@677: #include <stdio.h>
hegyi@677: 
hegyi@677: #include "hierarchygraph.h"
hegyi@677: #include <hugo/list_graph.h>
hegyi@677: #include <hugo/smart_graph.h>
hegyi@677: #include <path.h>
hegyi@677: 
hegyi@677: using namespace hugo;
hegyi@677: using namespace std;
hegyi@677: 
hegyi@677: bool passed = true;
hegyi@677: 
hegyi@677: void check(bool rc) {
hegyi@677:   passed = passed && rc;
hegyi@677:   if(!rc) {
hegyi@677:     cout << "Test failed!" << endl;
hegyi@677:   }
hegyi@677: }
hegyi@677: 
hegyi@677: int main()
hegyi@677: {
hegyi@677:   HierarchyGraph<SmartGraph, ListGraph> HGr;
hegyi@690:   ListGraph subnetwork, othernetwork;
hegyi@690:   typedef HierarchyGraph<SmartGraph, ListGraph>::Node Node;
hegyi@690:   typedef HierarchyGraph<SmartGraph, ListGraph>::Edge Edge;
hegyi@690:   typedef HierarchyGraph<SmartGraph, ListGraph>::SubNetwork Sntype;
hegyi@690: 
hegyi@690:   Node n0, n1, n2;
hegyi@690:   Edge e0, e1, e2, e3, e4, e5;
hegyi@690: 
hegyi@690:   ListGraph::Node sn0, sn1, on0;
hegyi@690:   ListGraph::Edge se0;
hegyi@690: 
hegyi@690:   n0=HGr.addNode();
hegyi@690: 
hegyi@690:   cout << "Az n0 id-je: " << HGr.actuallayer.id(n0) << endl;
hegyi@690: 
hegyi@690:   n1=HGr.addNode();
hegyi@690:   n2=HGr.addNode();
hegyi@690:   
hegyi@690:   e0=HGr.addEdge(n0,n1);
hegyi@690:   e1=HGr.addEdge(n1,n0);
hegyi@690:   e2=HGr.addEdge(n0,n2);
hegyi@690:   e3=HGr.addEdge(n2,n0);
hegyi@690:   e4=HGr.addEdge(n1,n2);
hegyi@690:   e5=HGr.addEdge(n2,n1);
hegyi@690: 
hegyi@690:   sn0=subnetwork.addNode();
hegyi@690:   sn1=subnetwork.addNode();
hegyi@690:   se0=subnetwork.addEdge(sn0,sn1);
hegyi@690: 
hegyi@690:   Sntype sn;
hegyi@690:   sn.setActualLayer(&(HGr.actuallayer));
hegyi@690:   sn.setActualLayerNode(&(n0));
hegyi@690:   sn.addAssignment(e0, sn0);
hegyi@690:   sn.addAssignment(e1, sn1);
hegyi@690:   sn.addAssignment(e2, sn1);
hegyi@690:   sn.addAssignment(e3, sn0);
hegyi@690:   sn.addAssignment(e1, sn0);
hegyi@690:   sn.addAssignment(e5, sn0);
hegyi@690:   
hegyi@690: 
hegyi@690: 
hegyi@690:   on0=othernetwork.addNode();
hegyi@690: 
hegyi@690:   cout << "ID of a node from a different graph: " << subnetwork.id(on0) << endl;
hegyi@690:   cout << "ID of a node in its graph: " << othernetwork.id(on0) << endl;
hegyi@690:   cout << "ID of a node from a  graph: " << subnetwork.id(sn0) << endl;
hegyi@690: 
hegyi@690:   ListGraph::NodeIt snni;
hegyi@690:   //ListGraph::Node snn;
hegyi@690: 
hegyi@690:   for(subnetwork.first(snni);subnetwork.valid(snni);subnetwork.next(snni))
hegyi@690:   {
hegyi@690:     if(snni==on0)
hegyi@690:     {
hegyi@690:       cout << "Nem jo, megtalalta az idegen node-ot sajat haloban, pedig azt nem szabad!!!" 
hegyi@690: 	   << subnetwork.id(snni) << subnetwork.id(on0) << othernetwork.id(snni) << othernetwork.id(on0) << endl;
hegyi@690:     }
hegyi@690:     else cout << "ID:" << subnetwork.id(snni) << endl;
hegyi@690:       
hegyi@690:   }
hegyi@690:   
hegyi@690: 
hegyi@690:   HGr.subnetworks[n0]=sn;
hegyi@690:   
hegyi@677: }