Author: mes
Date: 2012-01-20 10:22:35 -0800 (Fri, 20 Jan 2012)
New Revision: 28066

Modified:
   
core3/impl/trunk/model-impl/performance-debug/src/main/java/org/cytoscape/model/PerfTest.java
Log:
tweaked test to create subnetworks

Modified: 
core3/impl/trunk/model-impl/performance-debug/src/main/java/org/cytoscape/model/PerfTest.java
===================================================================
--- 
core3/impl/trunk/model-impl/performance-debug/src/main/java/org/cytoscape/model/PerfTest.java
       2012-01-20 18:20:24 UTC (rev 28065)
+++ 
core3/impl/trunk/model-impl/performance-debug/src/main/java/org/cytoscape/model/PerfTest.java
       2012-01-20 18:22:35 UTC (rev 28066)
@@ -12,16 +12,21 @@
 import org.cytoscape.model.CyNode;
 import org.cytoscape.model.CyTable;
 import org.cytoscape.model.NetworkTestSupport;
+import org.cytoscape.model.subnetwork.CyRootNetwork;
+import org.cytoscape.model.subnetwork.CyRootNetworkManager;
 import org.cytoscape.service.util.CyServiceRegistrar;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
+import java.util.HashSet;
+import java.util.Set;
 
 
 public class PerfTest {
 
        private final CyNetworkFactory netFactory;
+       private final CyRootNetworkManager rootMgr;
 
        public static void main(String[] args) {
                new PerfTest().runTestLoop();
@@ -30,70 +35,57 @@
        public PerfTest() {
                NetworkTestSupport testSupport = new NetworkTestSupport();
                netFactory = testSupport.getNetworkFactory();
+               rootMgr = testSupport.getRootNetworkFactory();
        }
 
        public void runTestLoop() {
-               final int EFFECTIVE_LOOP_COUNT = 5;
-               for (int i = 0; i <= EFFECTIVE_LOOP_COUNT; ++i) {
+               final int EFFECTIVE_LOOP_COUNT = 1;
+               for (int i = 0; i < EFFECTIVE_LOOP_COUNT; i++) {
                        final long startTime = System.currentTimeMillis();
                        testMiscNodeAndEdgeOps();
                        final long endTime = System.currentTimeMillis();
 
-                       final long startTime2 = System.currentTimeMillis();
-                       testMiscNodeAndEdgeOpsBuilder();
-                       final long endTime2 = System.currentTimeMillis();
-               
-                       long noBuilder = (endTime-startTime);
-                       long withBuilder = (endTime2-startTime2);
+                       long createNet = (endTime-startTime);
 
-                       long diff = noBuilder - withBuilder; 
-                       double per = 
((double)diff)/((double)(endTime-startTime));
-                       System.out.println("difference: " + diff + "   no 
builder:  " + noBuilder + "   builder: " + withBuilder);
+                       System.out.println("createNetwork && subs: " + 
createNet);
                }
        }
 
        private void testMiscNodeAndEdgeOps() {
-               final CyNetwork network = netFactory.getInstance(); 
+               final CyNetwork network = netFactory.createNetwork(); 
 
+               // create nodes
                final int NODE_COUNT = 50000;
                final List<CyNode> nodes = new ArrayList<CyNode>(NODE_COUNT);
-               for (int i = 0; i < NODE_COUNT; ++i) {
+               for (int i = 0; i < NODE_COUNT; i++) {
                        nodes.add(network.addNode());
                }
 
                boolean isDirected = true;
                final Random rand = new Random(1234L);
 
+               // create edges
                final int EDGE_COUNT = 100000;
                final List<CyEdge> edges = new ArrayList<CyEdge>(EDGE_COUNT);
-               for (int i = 0; i < EDGE_COUNT; ++i) {
+               for (int i = 0; i < EDGE_COUNT; i++) {
                        final CyNode source = 
nodes.get(rand.nextInt(NODE_COUNT));
                        final CyNode target = 
nodes.get(rand.nextInt(NODE_COUNT));
                        edges.add(network.addEdge(source, target, isDirected));
                        isDirected = !isDirected;
                }
-       }
 
-       private void testMiscNodeAndEdgeOpsBuilder() {
-               CyNetworkBuilder netBuilder = new CyNetworkBuilder();
-
-               final int NODE_COUNT = 50000;
-               final List<CyNodeBuilder> nodes = new 
ArrayList<CyNodeBuilder>(NODE_COUNT);
-               for (int i = 0; i < NODE_COUNT; ++i) {
-                       nodes.add(netBuilder.addNode());
+               // create subnetworks
+               CyRootNetwork root = rootMgr.getRootNetwork(network);
+               int i = 0;
+               for ( CyNode n : network.getNodeList() ) {
+                       if ( i++ > 1000 ) break;
+                       List<CyNode> nl = 
network.getNeighborList(n,CyEdge.Type.ANY);
+                       Set<CyEdge> es = new HashSet<CyEdge>();
+                       for ( CyNode nn : nl ) {
+                               List<CyEdge> ee = 
network.getConnectingEdgeList(n,nn,CyEdge.Type.ANY);
+                               es.addAll(ee);
+                       }
+                       root.addSubNetwork(nl,es);
                }
-
-               boolean isDirected = true;
-               final Random rand = new Random(1234L);
-
-               final int EDGE_COUNT = 100000;
-               final List<CyEdgeBuilder> edges = new 
ArrayList<CyEdgeBuilder>(EDGE_COUNT);
-               for (int i = 0; i < EDGE_COUNT; ++i) {
-                       final CyNodeBuilder source = 
nodes.get(rand.nextInt(NODE_COUNT));
-                       final CyNodeBuilder target = 
nodes.get(rand.nextInt(NODE_COUNT));
-                       edges.add(netBuilder.addEdge(source, target, 
isDirected));
-                       isDirected = !isDirected;
-               }
-               final CyNetwork network = netFactory.getInstance(); 
        }
 }

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to