/** * DOCUMENT ME! * * @param args DOCUMENT ME! */ public static void main(String[] args) { final RootGraph root = new FingExtensibleRootGraph(new MyNodeDepot(), new MyEdgeDepot()); final Node n1 = root.getNode(root.createNode()); final Node n2 = root.getNode(root.createNode()); final Node n3 = root.getNode(root.createNode()); final Node n4 = root.getNode(root.createNode()); root.createEdge(n1, n2, false); int edge_idx = root.createEdge(n1, n3, false); final Edge del1 = root.getEdge(edge_idx); edge_idx = root.createEdge(n2, n3, false); final Edge del2 = root.getEdge(edge_idx); root.removeEdge(del1); root.removeEdge(del2); edge_idx = root.createEdge(n1, n4, false); final Edge subedge = root.getEdge(edge_idx); final Node src = subedge.getSource(); final Node target = subedge.getTarget(); if ((src == null) || (target == null)) throw new IllegalStateException("the bug is here"); } }
/** * DOCUMENT ME! * * @param root DOCUMENT ME! * @param nodes DOCUMENT ME! * @param edgeSources DOCUMENT ME! * @param edgeTargets DOCUMENT ME! * @param edgeDirectedness DOCUMENT ME! */ public static final void testAddRemove(RootGraph root, int[] nodes, int[] edgeSources, int[] edgeTargets, boolean[] edgeDirectedness) { for (int i = 0; i < 10; i++) { for (int j = 0; j < nodes.length; j++) root.removeNode(nodes[j]); if ((root.getNodeCount() != 0) || (root.getEdgeCount() != 0)) throw new IllegalStateException("node/edge count not 0"); for (int j = 0; j < nodes.length; j++) nodes[j] = root.createNode(); for (int j = 0; j < edgeSources.length; j++) root.createEdge(nodes[edgeSources[j]], nodes[edgeTargets[i]], edgeDirectedness[j]); if ((root.getNodeCount() != nodes.length) || (root.getEdgeCount() != edgeSources.length)) throw new IllegalStateException("node/edge count not what expected"); } } }
/** * DOCUMENT ME! * * @return DOCUMENT ME! */ public GraphPerspective getGraphPerspective() { return m_rootGraph.createGraphPerspective(m_rootGraph.getNodeMetaChildIndicesArray(m_rootGraphIndex), m_rootGraph.getEdgeMetaChildIndicesArray(m_rootGraphIndex)); }
/** * DOCUMENT ME! * * @return DOCUMENT ME! */ public Node getSource() { return m_rootGraph.getNode(m_rootGraph.getEdgeSourceIndex(m_rootGraphIndex)); }
/** * DOCUMENT ME! * * @return DOCUMENT ME! */ public Node getTarget() { return m_rootGraph.getNode(m_rootGraph.getEdgeTargetIndex(m_rootGraphIndex)); }
nodeInx[i] = root.createNode(); edgeInx[0] = root.createEdge(nodeInx[0], nodeInx[1], true); edgeInx[1] = root.createEdge(nodeInx[1], nodeInx[2], false); edgeInx[2] = root.createEdge(nodeInx[2], nodeInx[0], true); edgeInx[3] = root.createEdge(nodeInx[2], nodeInx[2], true); edgeInx[4] = root.createEdge(nodeInx[1], nodeInx[1], false); edgeInx[5] = root.createEdge(nodeInx[1], nodeInx[0], true); edgeInx[6] = root.createEdge(nodeInx[3], nodeInx[2], true); nodeInx[nodeInx.length - 1] = root.createNode(null, new int[] { edgeInx[6], edgeInx[2] }); // Should have nodes if (!(root.addNodeMetaChild(nodeInx[0], nodeInx[1]) && root.addNodeMetaChild(nodeInx[0], nodeInx[4]) && root.addNodeMetaChild(nodeInx[3], nodeInx[1]) && root.addNodeMetaChild(nodeInx[4], nodeInx[4]) && root.addEdgeMetaChild(nodeInx[3], edgeInx[6]) && root.addEdgeMetaChild(nodeInx[3], edgeInx[0]) && root.addEdgeMetaChild(nodeInx[0], edgeInx[4]))) throw new IllegalStateException("unable to create meta relationship"); if (root.removeNode(nodeInx[1]) != nodeInx[1]) throw new IllegalStateException("removal of node failed"); if ((root.removeEdge(edgeInx[0]) != 0) || (root.removeEdge(edgeInx[1]) != 0) || (root.removeEdge(edgeInx[4]) != 0) || (root.removeEdge(edgeInx[5]) != 0)) throw new IllegalStateException("removal failure failed - edge"); if (root.removeNode(nodeInx[1]) != 0)
final GraphPerspective persp = root.createGraphPerspective((int[]) null, (int[]) null); int[] nodeInx = new int[5]; nodeInx[i] = root.createNode(); edgeInx[0] = root.createEdge(nodeInx[0], nodeInx[1], true); edgeInx[1] = root.createEdge(nodeInx[1], nodeInx[2], false); edgeInx[2] = root.createEdge(nodeInx[2], nodeInx[0], true); edgeInx[3] = root.createEdge(nodeInx[2], nodeInx[2], true); edgeInx[4] = root.createEdge(nodeInx[1], nodeInx[1], false); edgeInx[5] = root.createEdge(nodeInx[1], nodeInx[0], true); edgeInx[6] = root.createEdge(nodeInx[3], nodeInx[2], true); nodeInx[nodeInx.length - 1] = root.createNode(null, new int[] { edgeInx[6], edgeInx[2] }); if (!(root.addNodeMetaChild(nodeInx[0], nodeInx[1]) && root.addNodeMetaChild(nodeInx[0], nodeInx[4]) && root.addNodeMetaChild(nodeInx[3], nodeInx[1]) && root.addNodeMetaChild(nodeInx[4], nodeInx[4]) && root.addEdgeMetaChild(nodeInx[3], edgeInx[6]) && root.addEdgeMetaChild(nodeInx[3], edgeInx[0]) && root.addEdgeMetaChild(nodeInx[0], edgeInx[4]))) throw new IllegalStateException("unable to create meta relationship"); root2.createNode(); root2.createEdge(((Node) root2.nodesIterator().next()).getRootGraphIndex(), ((Node) root2.nodesIterator().next()).getRootGraphIndex()); final Node root2Node = (Node) root2.nodesIterator().next(); final Edge root2Edge = (Edge) root2.edgesIterator().next();
System.out.println("creating " + numNodes + " nodes"); nodeInx = root.createNodes(numNodes); edgeInx[i] = root.createEdge(nodeInx[i % nodeInx.length], nodeInx[(i * 3) % nodeInx.length]); System.out.println("creating GraphPerspective"); GraphPerspective persp = root.createGraphPerspective(nodeInx, edgeInx); System.out.println("removing all edges from RootGraph"); root.removeEdges(edgeInx); System.out.println("removing all nodes from RootGraph"); root.removeNodes(nodeInx);
/** * DOCUMENT ME! * * @param args DOCUMENT ME! */ public static void main(String[] args) { final RootGraph root = FingRootGraphFactory.instantiateRootGraph(); final int[] nodeInx = root.createNodes(10000); final int[] edgeInx = new int[100000]; for (int i = 0; i < edgeInx.length; i++) edgeInx[i] = root.createEdge(nodeInx[i % nodeInx.length], nodeInx[(i * 3) % nodeInx.length]); System.out.println("RootGraph node count: " + root.getNodeCount()); System.out.println("RootGraph edge count: " + root.getEdgeCount()); System.out.println(); for (int i = 0; i < 1000; i++) { GraphPerspective persp = root.createGraphPerspective(nodeInx, edgeInx); System.out.println("GraphPerspective node count: " + persp.getNodeCount()); System.out.println("GraphPerspective edge count: " + persp.getEdgeCount()); System.out.println(); } } }
/** * DOCUMENT ME! * * @return DOCUMENT ME! */ public final Edge[] getRestoredEdges() { final Edge[] returnThis = new Edge[m_restoredEdgeInx.length]; for (int i = 0; i < returnThis.length; i++) returnThis[i] = m_persp.getRootGraph().getEdge(m_restoredEdgeInx[i]); return returnThis; }
/** * DOCUMENT ME! * * @param root DOCUMENT ME! * @param nodes DOCUMENT ME! */ public static final void testNodeNeighbors(RootGraph root, int[] nodes) { for (int j = 1; j < nodes.length; j++) { root.neighborsList(root.getNode(nodes[j])); } }
/** * DOCUMENT ME! * * @param args DOCUMENT ME! */ public static void main(String[] args) { final RootGraph root = FingRootGraphFactory.instantiateRootGraph(); final int n1 = root.createNode(); final int n2 = root.createNode(); final int e1 = root.createEdge(n1, n1, /* directed */ true); final GraphPerspective persp = root.createGraphPerspective((int[]) null, (int[]) null); if (persp.restoreEdge(e1) == 0) throw new IllegalStateException("could not restore valid edge"); final GraphPerspective persp2 = root.createGraphPerspective(null, new int[] { e1 }); if (!((persp2.getNodeCount() == 1) && (persp2.getEdgeCount() == 1))) throw new IllegalStateException("bad counts in perspective"); } }
/** * DOCUMENT ME! * * @return DOCUMENT ME! */ public final Node[] getRestoredNodes() { final Node[] returnThis = new Node[m_restoredNodeInx.length]; for (int i = 0; i < returnThis.length; i++) returnThis[i] = m_persp.getRootGraph().getNode(m_restoredNodeInx[i]); return returnThis; }
public boolean setGraphPerspective(GraphPerspective gp) { if (gp.getRootGraph() != m_rootGraph) return false; final int[] nodeInx = gp.getNodeIndicesArray(); final int[] edgeInx = gp.getEdgeIndicesArray(); for (int i = 0; i < nodeInx.length; i++) m_rootGraph.addNodeMetaChild(m_rootGraphIndex, nodeInx[i]); for (int i = 0; i < edgeInx.length; i++) m_rootGraph.addEdgeMetaChild(m_rootGraphIndex, edgeInx[i]); return true; }
rg.removeNode(groupNode);
private static final int[] createNodes(RootGraph root, int numNodes) { final int[] returnThis = new int[numNodes]; for (int i = 0; i < returnThis.length; i++) returnThis[i] = root.createNode(); return returnThis; }
targetInxCreatedEdges[inx + offsetCreatedEdges] = node2; directedCreatedEdges[inx + offsetCreatedEdges] = directed && (node1 != node2); returnThis[inx++] = root.createEdge(nodes[node1], nodes[node2], directed && (node1 != node2));
/** * DOCUMENT ME! * * @param args DOCUMENT ME! */ public static void main(String[] args) { final RootGraph root = FingRootGraphFactory.instantiateRootGraph(); final DynamicGraph dGraph = (DynamicGraph) root; dGraph.nodes(); final GraphPerspective persp = root.createGraphPerspective((int[]) null, (int[]) null); final FixedGraph fGraph = (FixedGraph) persp; fGraph.edges(); } }
System.out.println("creating " + numNodes + " nodes"); nodeInx = root.createNodes(numNodes); edgeInx[i] = root.createEdge(nodeInx[i % nodeInx.length], nodeInx[(i * 3) % nodeInx.length]); System.out.println("removing all edges from RootGraph"); root.removeEdges(edgeInx); System.out.println("removing all nodes from RootGraph"); root.removeNodes(nodeInx);