Package simulationEngine

Source Code of simulationEngine.SimulationEngineTest

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package simulationEngine;



import core.GameServer;
import java.io.FileInputStream;
import java.io.*;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Properties;
import java.util.Date;
import java.util.*;

import org.datacontract.schemas._2004._07.LINQ2Entities.User;
import org.datacontract.schemas._2004._07.LINQ2Entities.Nodes;
import org.datacontract.schemas._2004._07.LINQ2Entities.NodeParameters;
import org.datacontract.schemas._2004._07.ManipulationParameter.ManipulatingNode;
import org.datacontract.schemas._2004._07.ManipulationParameter.ManipulatingNodeProperty;
import org.datacontract.schemas._2004._07.ManipulationParameter.ManipulatingParameter;
import org.datacontract.schemas._2004._07.ManipulationParameter.ModelParam;
import org.datacontract.schemas._2004._07.ManipulationParameter.NodeBiomass;
import org.datacontract.schemas._2004._07.WCFService_Portal.CreateFoodwebResponse;
import org.datacontract.schemas._2004._07.WCFService_Portal.ManipulationInfo;
import org.datacontract.schemas._2004._07.WCFService_Portal.ManipulationInfoRequest;
import org.datacontract.schemas._2004._07.WCFService_Portal.ManipulationInfoResponse;
import org.datacontract.schemas._2004._07.WCFService_Portal.ManipulationResponse;
import org.datacontract.schemas._2004._07.WCFService_Portal.ManipulationTimestepInfo;
import org.datacontract.schemas._2004._07.WCFService_Portal.ManipulationTimestepInfoRequest;
import org.datacontract.schemas._2004._07.WCFService_Portal.ManipulationTimestepInfoResponse;
import org.datacontract.schemas._2004._07.WCFService_Portal.NetworkCreationRequest;
import org.datacontract.schemas._2004._07.WCFService_Portal.NetworkRemoveRequest;
import org.datacontract.schemas._2004._07.WCFService_Portal.NodeInfoRequest;
import org.datacontract.schemas._2004._07.WCFService_Portal.NodeInfoResponse;
import org.datacontract.schemas._2004._07.WCFService_Portal.NodeInfo;
import org.datacontract.schemas._2004._07.WCFService_Portal.NetworkInfo;
import org.datacontract.schemas._2004._07.WCFService_Portal.NetworkInfoRequest;
import org.datacontract.schemas._2004._07.WCFService_Portal.NetworkInfoResponse;
import org.datacontract.schemas._2004._07.WCFService_Portal.Response;
import org.datacontract.schemas._2004._07.WCFService_Portal.SimpleManipulationRequest;
import org.datacontract.schemas._2004._07.WCFService_Portal.*;
import org.foodwebs.www._2009._11.IN3DService;
import org.foodwebs.www._2009._11.IN3DServiceProxy;

import metadata.Constants;

import model.SpeciesType;

import simulationEngine.*;
import simulationEngine.SpeciesZoneType.SpeciesTypeEnum;
import simulationEngine.config.ManipulatingNodePropertyName;
import simulationEngine.config.ManipulatingParameterName;
import simulationEngine.config.ManipulationActionType;
import simulationEngine.config.ModelType;


/**
*
* @author Paul
*/
public class SimulationEngineTest {

   
   
   
        public String foodwebStabilityTest10_7(SimulationEngine se)
        {

            int nodeList[] = { 4, 5, 73 };           

            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "sg10Test27",0, 1, true);
            System.out.println("manpId:"+manpId);
           
            List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(4);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);
           
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(73);
            node.setBeginingBiomass(100);
            node.setHasLinks(false);
            nodes.add(node);           

           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(80);
            node.setBeginingBiomass(5);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId("74B9B375-1729-4516-A231-AE8A6114AACF");           
            nodes.add(node);                  
           
           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
            se.setNodeParameter(4, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);           
           
            se.updateSystemParameters(1, false, manpId, sParams, nodes);
           
           
            se.run(2, 18, manpId, false);
         
            se.getBiomassInfo(manpId);
           
            return manpId;
        }                           
   
       
        public String foodwebStabilityTest_4species_x73_08(SimulationEngine se)
        {

            int nodeList[] = { 4, 5, 73 };           

            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "sg10Test27",0, 1, true);
            System.out.println("manpId:"+manpId);
           
            List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(4);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);
           
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(73);
            node.setBeginingBiomass(100);
            node.setHasLinks(false);
            nodes.add(node);           

           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(80);
            node.setBeginingBiomass(5);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId("74B9B375-1729-4516-A231-AE8A6114AACF");           
            nodes.add(node);                  
           
           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.8, sParams);                       
//            se.setNodeParameter(80, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.8, sParams);           
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
            se.setNodeParameter(4, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);           
           
            se.updateSystemParameters(1, false, manpId, sParams, nodes);
           
           
            se.run(2, 18, manpId, false);
         
            se.getBiomassInfo(manpId);
           
            return manpId;
        }                    
   
       
        public String foodwebStabilityTest_4species_x73_80_08(SimulationEngine se)
        {

            int nodeList[] = { 4, 5, 73 };           

            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "sg10Test27",0, 1, true);
            System.out.println("manpId:"+manpId);
           
            List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(4);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);
           
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(73);
            node.setBeginingBiomass(100);
            node.setHasLinks(false);
            nodes.add(node);           

           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(80);
            node.setBeginingBiomass(5);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId("74B9B375-1729-4516-A231-AE8A6114AACF");           
            nodes.add(node);                  
           
           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(80, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.8, sParams);                       
            se.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.8, sParams);           
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
            se.setNodeParameter(4, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);           
           
            se.updateSystemParameters(1, false, manpId, sParams, nodes);
/*           
            nodes = new ArrayList<ManipulatingNode>();
            sParams = new ArrayList<ManipulatingParameter>();           
            se.setNodeParameter(80, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.8, sParams);                       
            se.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.8, sParams);           
            se.updateSystemParameters(2, false, manpId, sParams, nodes);           
  */       
            se.run(2, 18, manpId, false);
         
//            se.getBiomassInfo(manpId);
           
            return manpId;
        }           
       
       
        public String foodwebStabilityTest_4species_x73_02_80_02(SimulationEngine se)
        {

            int nodeList[] = { 4, 5, 73 };           

            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "sg10Test27",0, 1, true);
            System.out.println("manpId:"+manpId);
           
            List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(4);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);
           
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(73);
            node.setBeginingBiomass(100);
            node.setHasLinks(false);
            nodes.add(node);           

           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(80);
            node.setBeginingBiomass(5);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId("74B9B375-1729-4516-A231-AE8A6114AACF");           
            nodes.add(node);                  
           
           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(80, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.2, sParams);                       
            se.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.2, sParams);           
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
            se.setNodeParameter(4, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);           
           
            se.updateSystemParameters(1, false, manpId, sParams, nodes);
  
         
            se.run(2, 18, manpId, false);
         
            se.getBiomassInfo(manpId);
           
            return manpId;
        }             
       
       public String foodwebStabilityTest_4species_4_R_08(SimulationEngine se)
        {

            int nodeList[] = { 4, 5};           

            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "sg10Test27",0, 1, true);
            System.out.println("manpId:"+manpId);
           
            List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(4);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);
           
/*           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(73);
            node.setBeginingBiomass(100);
            node.setHasLinks(false);
            nodes.add(node);           
*/
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(80);
            node.setBeginingBiomass(5);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId("74B9B375-1729-4516-A231-AE8A6114AACF");           
            nodes.add(node);                  
           
           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
//            se.setNodeParameter(80, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.8, sParams);       

            se.setNodeParameter(4, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.2, sParams);                       
            se.setNodeParameter(5, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.5, sParams);           
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
            se.setNodeParameter(4, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);           
           
            se.updateSystemParameters(1, false, manpId, sParams, nodes);
/*           
            nodes = new ArrayList<ManipulatingNode>();
            sParams = new ArrayList<ManipulatingParameter>();           
            se.setNodeParameter(80, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.8, sParams);                       
            se.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.4, sParams);           
            se.updateSystemParameters(2, false, manpId, sParams, nodes);           
*/         
            se.run(2, 18, manpId, false);
         
            se.getBiomassInfo(manpId);
           
            return manpId;
        }                     
       
      
      
      public String foodwebStabilityTest_4species_x4_X02(SimulationEngine se)
        {

            int nodeList[] = { 4, 5};           

            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "sg10Test27",0, 1, true);
            System.out.println("manpId:"+manpId);
           
            List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(4);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);
           
/*           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(73);
            node.setBeginingBiomass(100);
            node.setHasLinks(false);
            nodes.add(node);           
*/
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(80);
            node.setBeginingBiomass(5);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId("74B9B375-1729-4516-A231-AE8A6114AACF");           
            nodes.add(node);                  
           
           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
//            se.setNodeParameter(80, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.8, sParams);                       
            se.setNodeParameter(4, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.2, sParams);           
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
            se.setNodeParameter(4, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);           
           
            se.updateSystemParameters(1, false, manpId, sParams, nodes);
/*           
            nodes = new ArrayList<ManipulatingNode>();
            sParams = new ArrayList<ManipulatingParameter>();           
            se.setNodeParameter(80, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.8, sParams);                       
            se.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.4, sParams);           
            se.updateSystemParameters(2, false, manpId, sParams, nodes);           
*/         
            se.run(2, 18, manpId, false);
         
            se.getBiomassInfo(manpId);
           
            return manpId;
        }                      
      
     
     
     
     public String foodwebStabilityTest_4species_73_4_PD_05(SimulationEngine se)
        {

            int nodeList[] = { 4, 5, 73};           

            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "sg10Test27",0, 1, true);
            System.out.println("manpId:"+manpId);
           
            List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(4);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(73);
            node.setBeginingBiomass(100);
            node.setHasLinks(false);
            nodes.add(node);           
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(80);
            node.setBeginingBiomass(5);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId("74B9B375-1729-4516-A231-AE8A6114AACF");           
            nodes.add(node);                  
           
           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setLinkParameter(73, 4, ManipulatingParameterName.d.getManipulatingParameterIndex(), 0.5, sParams);
//            se.setNodeParameter(80, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.8, sParams);                       
//            se.setNodeParameter(4, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.2, sParams);           
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
            se.setNodeParameter(4, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);           
           
            se.updateSystemParameters(1, false, manpId, sParams, nodes);
/*           
            nodes = new ArrayList<ManipulatingNode>();
            sParams = new ArrayList<ManipulatingParameter>();           
            se.setNodeParameter(80, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.8, sParams);                       
            se.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.4, sParams);           
            se.updateSystemParameters(2, false, manpId, sParams, nodes);           
*/         
            se.run(2, 18, manpId, false);
         
            se.getBiomassInfo(manpId);
           
            return manpId;
        }                  
     
    
          public String foodwebStabilityTest_4species_73_5_PD_05(SimulationEngine se)
        {

            int nodeList[] = { 4, 5, 73};           

            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "sg10Test27",0, 1, true);
            System.out.println("manpId:"+manpId);
           
            List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(4);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(73);
            node.setBeginingBiomass(100);
            node.setHasLinks(false);
            nodes.add(node);           
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(80);
            node.setBeginingBiomass(5);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId("74B9B375-1729-4516-A231-AE8A6114AACF");           
            nodes.add(node);                  
           
           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setLinkParameter(73, 5, ManipulatingParameterName.d.getManipulatingParameterIndex(), 0.5, sParams);
//            se.setNodeParameter(80, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.8, sParams);                       
//            se.setNodeParameter(4, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.2, sParams);           
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
            se.setNodeParameter(4, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);           
           
            se.updateSystemParameters(1, false, manpId, sParams, nodes);
/*           
            nodes = new ArrayList<ManipulatingNode>();
            sParams = new ArrayList<ManipulatingParameter>();           
            se.setNodeParameter(80, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.8, sParams);                       
            se.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.4, sParams);           
            se.updateSystemParameters(2, false, manpId, sParams, nodes);           
*/         
            se.run(2, 18, manpId, false);
         
            se.getBiomassInfo(manpId);
           
            return manpId;
        }                  
     
         
         public String foodwebStabilityTest_4species_73_4_5_PD_05(SimulationEngine se)
        {

            int nodeList[] = { 4, 5, 73};           

            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "sg10Test27",0, 1, true);
            System.out.println("manpId:"+manpId);
           
            List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(4);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(2500);
            node.setHasLinks(false);
            nodes.add(node);
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(73);
            node.setBeginingBiomass(100);
            node.setHasLinks(false);
            nodes.add(node);           
           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(80);
            node.setBeginingBiomass(5);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId("74B9B375-1729-4516-A231-AE8A6114AACF");           
            nodes.add(node);                  
           
           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setLinkParameter(73, 4, ManipulatingParameterName.d.getManipulatingParameterIndex(), 0.1, sParams);           
            se.setLinkParameter(73, 5, ManipulatingParameterName.d.getManipulatingParameterIndex(), 0.3, sParams);
//            se.setNodeParameter(80, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.8, sParams);                       
//            se.setNodeParameter(4, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.2, sParams);           
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
            se.setNodeParameter(4, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);           
           
            se.updateSystemParameters(1, false, manpId, sParams, nodes);
/*           
            nodes = new ArrayList<ManipulatingNode>();
            sParams = new ArrayList<ManipulatingParameter>();           
            se.setNodeParameter(80, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.8, sParams);                       
            se.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.4, sParams);           
            se.updateSystemParameters(2, false, manpId, sParams, nodes);           
*/         
            se.run(2, 18, manpId, false);
         
//            se.getBiomassInfo(manpId);
           
            return manpId;
        }                        
         
        
         public void testManipulationParameterInfoReqest(SimulationEngine se)
         {
             ManipulatingParameter[] params = se.getSystemParameterInfos("6A8C7654-EA53-415A-982F-00D7B208B906");
             for(ManipulatingParameter param : params)
             {
                 System.out.println("Name:" +param.getParamName() );                                                                   
                 System.out.println("Idx:" +param.getParamIdx() );                
                 System.out.println("Type:" +param.getParamType() );                
                 System.out.println("value:" +param.getParamValue() );                
                 System.out.println("TsIdx:" +param.getTimestepIdx() );                                                  
                 System.out.println("nodeIdx:" +param.getNodeIdx() );
                 if(param.getPredIdx() != -1)
                    System.out.println("pred:" +param.getPredIdx() );                                 
                 if(param.getPreyIdx() != -1)                
                    System.out.println("prey:" +param.getPreyIdx() );                                                  
                 System.out.println("=======================" );                                 
             }
         }
        
        
        
         public static boolean compareCSVFiles(String oldfileName, String newfileName)
         {
            
             BufferedReader oldreader = null;
             BufferedReader newreader = null;
             try
             {
                oldreader = new BufferedReader(new InputStreamReader(new FileInputStream(oldfileName),"US-ASCII"));
                newreader = new BufferedReader(new InputStreamReader(new FileInputStream(newfileName),"US-ASCII"));
                boolean firstline = true;
               
                while(true)
                {
                    String reader1Line = oldreader.readLine();
                    String reader2Line = newreader.readLine();
                    if(reader1Line == null)
                    {
                         if(reader2Line == null)
                         {
                            break;
                         }
                         else
                         {
                        //Error file 2 has more lines than file 1
                             oldreader.close();
                             newreader.close();           
                            return false;
                        }
                    }
                    else if(reader2Line == null && reader1Line != null)
                    {
                        //Error file 1 has more lines than file 2                   
                         oldreader.close();
                         newreader.close();           
                        return false;
                    }

                    String[] line1Parts = reader1Line.split(",");
                    String[] line2Parts = reader2Line.split(",");
                    if(line1Parts.length != line2Parts.length)
                    {
                         oldreader.close();
                         newreader.close();           
                        return false;
                    }
                        //error different number of entries in the two rows

                    if(!firstline)
                    {
                        for(int i = 0; i < line1Parts.length;i++)
                        {
                            if(line1Parts[i].length() == 0 && line2Parts[i].length() == 0)
                                continue;
                            double entry1 = Double.parseDouble(line1Parts[i]);
                            double entry2 = Double.parseDouble(line2Parts[i]);
                            double average = (entry1 + entry2) / 2;
                            if(Math.abs((entry1 - entry2) / average) > 0.03)
                            {
                                oldreader.close();
                                newreader.close();           
                                return false;
                             //Entries are too close.
                            }
                        }
                    }
                    else
                    {
                        firstline = false;
                    }
                }
                 oldreader.close();
                 newreader.close();           
             }
            catch(Exception e)
            {
                System.err.println("Error while comparing two csv file:" +e.getMessage());
            }
            return true;
         }
        
         private boolean testManipulationFunctionResultFile(String dir, String normalFile, String testFile)
         {
             boolean passed;
             
             passed = compareCSVFiles(dir+normalFile+".csv", testFile);
             if(!passed)
             {
                System.out.println(normalFile+" test failed");
                return false;
             }
             else
                System.out.println("passed "+normalFile+" test");
            
             return true;
         }
                
        
        public boolean masterTestFunction(String url)
        {
            boolean passed;
//      SimulationEngine se = new SimulationEngine();                                        
            SimulationEngine se = new SimulationEngine(url);            
//            SimulationEngine se = new SimulationEngine("http://127.0.0.1:82/N3DWebService.svc?wsdl");                        
//      SimulationEngine se = new SimulationEngine("http://localhost:41246/N3DWebService.svc?wsdl");                            
            String dir = "E:\\Project\\Beast\\data\\testData\\";
          
            // serengeti sub food web creation test
            int nodeList[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36};
            String serengetiFWName = "f1a55cx.8adfbbaav";
            String netId = se.createSeregenttiSubFoodweb(serengetiFWName, nodeList, true);
            if(netId == null)
            {
                System.out.println("error while creating food web");
                return false;
            }
            else
            {
                System.out.println("Serengeti sub foodweb creation passed");               
                se.deleteNetwork(netId);
            }
           
            serengetiFWName = "f2a55cx77.fdadaacdax";
            // simple manipulation creating and running test
            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, serengetiFWName, 0, 10, true);
            if(netId == null)
            {
                System.out.println("error while creating manipulation");
                return false;
            }
            else
            {
                System.out.println("Simple manipulation creation passed");               
                se.deleteManipulation(manpId);
            }
           
/*           
          // test 'getBiomass' function
            passed = this.testGetBiomass(se, "testGetBiomass1");      
            if(passed)
            {
                System.out.println("getBiomass function test1 passed");                               
            }
            else
            {
                System.out.println("getBiomass function test1 failed");                                           
                return false;
            }
            this.testGetBiomass(se, "testGetBiomass2");      
            if(passed)
            {
                System.out.println("getBiomass function test2 passed");                               
            }
            else
            {
                System.out.println("getBiomass function test2 failed");                                           
                return false;
            }
            this.testGetBiomass(se, "testGetBiomass3");     
            if(passed)
            {
                System.out.println("getBiomass function test3 passed");                               
            }
            else
            {
                System.out.println("getBiomass function test3 failed");                                           
                return false;
            }           
*/           
            // adding 5 species (10, 11, 13, 14, 16 ) to manipulation in a row
            manpId = se.foodwebStabilityTest10_1_1();
            if(manpId == null)
            {
                System.out.println("error while adding species to manipulation");
                return false;
            }
            else
            {
                System.out.println("Adding 5 species to manipulation in a row passed");               
                se.deleteManipulation(manpId);
            }
           
            // adding 14 species to manipulation in a row           
            manpId = se.runningTest();
            if(manpId == null)
            {
                System.out.println("error while adding 14 species to manipulation");
                return false;
            }
            else
            {
                System.out.println("Adding 14 species to manipulation in a row passed");               
                se.deleteManipulation(manpId);
            }
           
            // test 'updateBiomass' function
            manpId = se.foodwebModelStabilityTest1();
            if(manpId == null)
            {
                System.out.println("error on testing updateBiomass");
                return false;
            }
            else
            {
                String normalFile = "updateBiomass";
                String testFile = dir+"test3.csv";
                se.saveBiomassCSVFile(manpId, testFile );
                se.deleteManipulation(manpId);               
//                passed = testManipulationFunctionResultFile(dir, normalFile, testFile);
//                if(!passed)
//                    return passed;
               
                System.out.println("updateBiomass function test passed");               
            }           
           
 
           
           
            // test 'updateSystemParameters' function
            manpId = se.foodwebStabilityTest10_4();
           if(manpId == null)
            {
                System.out.println("error on testing 'updateSystemParameters'");
                return false;
            }
            else
            {
                String normalFile = "updateSystemParameters";
//                String testFile = dir+"test3.csv";
//                se.saveBiomassCSVFile(manpId, testFile );
                se.deleteManipulation(manpId);               
//                passed = testManipulationFunctionResultFile(dir, normalFile, testFile);
//                if(!passed)
//                    return passed;
               
                System.out.println("'updateSystemParameters' function test passed");               
            }                       
            SimulationEngineTest test = new SimulationEngineTest();
           
            // this function tests if node parameters are manipulated successfully
            manpId = test.foodwebStabilityTest_4species_x73_80_08(se);
              
            String normalFile = "foodwebStabilityTest_4species_x73_80_08";
            String testFile = dir+"test1.csv";
            se.saveBiomassCSVFile(manpId, testFile );
            se.deleteManipulation(manpId);               
            passed = testManipulationFunctionResultFile(dir, normalFile, testFile);
            if(!passed)
                return passed;

            // this function tests if link parameters are manipulated successfully              
            manpId = test.foodwebStabilityTest_4species_73_4_5_PD_05(se);
            normalFile = "foodwebStabilityTest_4species_73_4_5_PD_05";
            testFile = dir+"test2.csv";
            se.saveBiomassCSVFile(manpId, testFile );
            se.deleteManipulation(manpId);                               
            passed = testManipulationFunctionResultFile(dir, normalFile, testFile);
            if(!passed)
                return passed;
           
            // tests if cocurrent 10 manipulations run smoothly without any error.
            se.testManpThread();
           
             return true;
         }
        
        public void testNode4Oribi(SimulationEngine se )
        {
            int nodeList[] = {4,5, 73};
            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "testNode4and73", 0, 1, true);
                   
           List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(4);
            node.setBeginingBiomass(10000);
            node.setHasLinks(false);
            nodes.add(node);

            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(10000);
            node.setHasLinks(false);
            nodes.add(node);

           
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(73);
            node.setBeginingBiomass(10);
            node.setHasLinks(false);
            nodes.add(node);
           
           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
//            this.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
//            this.setNodeParameter(4, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);           
           
            se.updateSystemParameters(1, false, manpId, sParams, nodes);
            se.run(2, 18, manpId, false);
         
            se.saveBiomassCSVFile(manpId);
            se.getBiomassInfo(manpId);
            se.deleteManipulation(manpId);                                 
           
        }
       
       
      public void testInsectFoodweb(SimulationEngine se)
      {
            int nodeList[] = {1,8};
            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "testInsectWeb", 0, 1, true);
                   
           List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(1);
            node.setBeginingBiomass(2000);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(8);
            node.setBeginingBiomass(2);
            node.setHasLinks(false);
            nodes.add(node);

           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(1, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
            se.setNodeParameter(8, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.75, 1, sParams);           
//            this.setNodeParameter(12, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.9, sParams);                       
//            this.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 5000, sParams);           
//            this.setNodeParameter(4, ManipulatingParameterName.r.getManipulatingParameterIndex(), , sParams);
//            this.setNodeParameter(5, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.333, sParams);           

//            this.setLinkParameter(73, 4, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.6, 1, sParams);           
//            this.setLinkParameter(73, 5, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.4, 1, sParams);                       
            se.updateSystemParameters(1, false, manpId, sParams, nodes);

///            testParameters(manpId, sParams);
//            run(2, 8, manpId, false);                       

          
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(2);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(2);
            node.setBeginingBiomass(2000);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(2, ManipulatingParameterName.k.getManipulatingParameterIndex(), 4000, 2, sParams);                                   
//            se.setNodeParameter(12, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.85, 2, sParams);                       
//            this.setLinkParameter(9, 1, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.05, 1, sParams);           
//            this.setLinkParameter(9, 9, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.3, 1, sParams);                       
//            this.setLinkParameter(9, 12, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.65, 1, sParams);                       
           
//            this.setLinkParameter(73, 4, ManipulatingParameterName.d.getManipulatingParameterIndex(), 1, 3, sParams);
//            this.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.9, sParams);
//            this.setNodeParameter(5, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.333, sParams);           
            se.updateSystemParameters(2, false, manpId, sParams, nodes);  
//            run(3, 27, manpId, false);                         

           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(3);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(9);
            node.setBeginingBiomass(2);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(3, false, manpId, sParams, nodes);              

           
           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(4);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(12);
            node.setBeginingBiomass(1.5);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(4, false, manpId, sParams, nodes);              

           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(5);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(2000);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 4000, 5, sParams);                                               
            se.updateSystemParameters(5, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(6);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(14);
            node.setBeginingBiomass(3);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(6, false, manpId, sParams, nodes);              

           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(7);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(7);
            node.setBeginingBiomass(2000);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(7, ManipulatingParameterName.k.getManipulatingParameterIndex(), 4000, 7, sParams);                                                           
            se.updateSystemParameters(7, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(8);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(16);
            node.setBeginingBiomass(1.3);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(8, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(9);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(20);
            node.setBeginingBiomass(1.2);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(9, false, manpId, sParams, nodes);              
           
            se.run(10, 20, manpId, false);

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(30);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(1);
            node.setBeginingBiomass(8000);
            node.setHasLinks(false);
            nodes.add(node);
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(30, false, manpId, sParams, nodes);              
           
             se.run(31, 20, manpId, false);
         
            se.saveBiomassCSVFile(manpId);
            se.getBiomassInfo(manpId);
            se.deleteManipulation(manpId);                      
        }
       
     
     
     
      public void testInsectFoodweb2(SimulationEngine se)
      {
            int nodeList[] = {1,8};
            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "testInsectWeb", 0, 1, true);
                   
           List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(1);
            node.setBeginingBiomass(1);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(8);
            node.setBeginingBiomass(0.001);
            node.setHasLinks(false);
            nodes.add(node);

           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(1, ManipulatingParameterName.k.getManipulatingParameterIndex(), 2, sParams);
            se.setNodeParameter(8, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.75, 1, sParams);           
//            this.setNodeParameter(12, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.9, sParams);                       
//            this.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 5000, sParams);           
//            this.setNodeParameter(4, ManipulatingParameterName.r.getManipulatingParameterIndex(), , sParams);
//            this.setNodeParameter(5, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.333, sParams);           

//            this.setLinkParameter(73, 4, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.6, 1, sParams);           
//            this.setLinkParameter(73, 5, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.4, 1, sParams);                       
            se.updateSystemParameters(1, false, manpId, sParams, nodes);

///            testParameters(manpId, sParams);
//            run(2, 8, manpId, false);                       

          
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(2);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(2);
            node.setBeginingBiomass(1);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(2, ManipulatingParameterName.k.getManipulatingParameterIndex(), 2, 2, sParams);                                   
//            se.setNodeParameter(12, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.85, 2, sParams);                       
//            this.setLinkParameter(9, 1, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.05, 1, sParams);           
//            this.setLinkParameter(9, 9, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.3, 1, sParams);                       
//            this.setLinkParameter(9, 12, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.65, 1, sParams);                       
           
//            this.setLinkParameter(73, 4, ManipulatingParameterName.d.getManipulatingParameterIndex(), 1, 3, sParams);
//            this.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.9, sParams);
//            this.setNodeParameter(5, ManipulatingParameterName.r.getManipulatingParameterIndex(), 0.333, sParams);           
            se.updateSystemParameters(2, false, manpId, sParams, nodes);  
//            run(3, 27, manpId, false);                         

           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(3);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(9);
            node.setBeginingBiomass(0.001);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(3, false, manpId, sParams, nodes);              

           
           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(4);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(12);
            node.setBeginingBiomass(0.00075);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(4, false, manpId, sParams, nodes);              

           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(5);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(1);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 2, 5, sParams);                                               
            se.updateSystemParameters(5, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(6);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(14);
            node.setBeginingBiomass(0.0015);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(6, false, manpId, sParams, nodes);              

           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(7);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(7);
            node.setBeginingBiomass(1);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(7, ManipulatingParameterName.k.getManipulatingParameterIndex(), 2, 7, sParams);                                                           
            se.updateSystemParameters(7, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(8);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(16);
            node.setBeginingBiomass(0.00065);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(8, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(9);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(20);
            node.setBeginingBiomass(0.0006);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(9, false, manpId, sParams, nodes);              
           
            se.run(10, 240, manpId, false);

/*           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(30);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(1);
            node.setBeginingBiomass(8000);
            node.setHasLinks(false);
            nodes.add(node);
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(30, false, manpId, sParams, nodes);              
           
             se.run(31, 20, manpId, false);
*/         
            se.saveBiomassCSVFile(manpId);
            se.getBiomassInfo(manpId);
            se.deleteManipulation(manpId);                      
        }
       

     
      public void testInsectFoodweb3(SimulationEngine se)
      {
            int nodeList[] = {1,8};
            int halfSDtoPlant = 200;
            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "testInsectWeb", 0, 1, true);
                   
           List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(1);
            node.setBeginingBiomass(2000);
            node.setHasLinks(false);
            nodes.add(node);


            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(8);
            node.setBeginingBiomass(2);
            node.setHasLinks(false);
            nodes.add(node);

           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(1, ManipulatingParameterName.k.getManipulatingParameterIndex(), 8000, sParams);
            se.setLinkParameter(8, 1, ManipulatingParameterName.b0.getManipulatingParameterIndex(), halfSDtoPlant, 1, sParams);           

            se.updateSystemParameters(1, false, manpId, sParams, nodes);
          
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(2);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(2);
            node.setBeginingBiomass(2000);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(2, ManipulatingParameterName.k.getManipulatingParameterIndex(), 4000, 2, sParams);                                   
            se.setLinkParameter(8, 2, ManipulatingParameterName.b0.getManipulatingParameterIndex(), halfSDtoPlant, 2, sParams);                       
            se.updateSystemParameters(2, false, manpId, sParams, nodes);  

           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(3);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(9);
            node.setBeginingBiomass(2);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setLinkParameter(9, 1, ManipulatingParameterName.b0.getManipulatingParameterIndex(), halfSDtoPlant, 3, sParams);                       
            se.updateSystemParameters(3, false, manpId, sParams, nodes);              

           
           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(4);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(12);
            node.setBeginingBiomass(1.5);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setLinkParameter(12, 1, ManipulatingParameterName.b0.getManipulatingParameterIndex(), halfSDtoPlant, 4, sParams);           
            se.updateSystemParameters(4, false, manpId, sParams, nodes);              

           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(5);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(2000);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(5, ManipulatingParameterName.k.getManipulatingParameterIndex(), 4000, 5, sParams);                                               
            se.setLinkParameter(12, 5, ManipulatingParameterName.b0.getManipulatingParameterIndex(), halfSDtoPlant, 5, sParams);                       
            se.updateSystemParameters(5, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(6);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(14);
            node.setBeginingBiomass(3);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setLinkParameter(14, 1, ManipulatingParameterName.b0.getManipulatingParameterIndex(), halfSDtoPlant, 6, sParams);           
            se.setLinkParameter(14, 2, ManipulatingParameterName.b0.getManipulatingParameterIndex(), halfSDtoPlant, 6, sParams);           
            se.setLinkParameter(14, 5, ManipulatingParameterName.b0.getManipulatingParameterIndex(), halfSDtoPlant, 6, sParams);                       
            se.updateSystemParameters(6, false, manpId, sParams, nodes);              

           
           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(7);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(7);
            node.setBeginingBiomass(2000);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setNodeParameter(7, ManipulatingParameterName.k.getManipulatingParameterIndex(), 4000, 7, sParams);                                                           
            se.setLinkParameter(14, 7, ManipulatingParameterName.b0.getManipulatingParameterIndex(), halfSDtoPlant, 7, sParams);                       
            se.updateSystemParameters(7, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(8);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(16);
            node.setBeginingBiomass(1.3);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.setLinkParameter(16, 1, ManipulatingParameterName.b0.getManipulatingParameterIndex(), halfSDtoPlant, 8, sParams);                                   
            se.updateSystemParameters(8, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(9);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(20);
            node.setBeginingBiomass(1.2);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(9, false, manpId, sParams, nodes);              
           
            se.run(10, 20, manpId, false);

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(30);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(1);
            node.setBeginingBiomass(8000);
            node.setHasLinks(false);
            nodes.add(node);
           
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(30, false, manpId, sParams, nodes);              
           
             se.run(31, 20, manpId, false);
         
            se.saveBiomassCSVFile(manpId);
            se.getBiomassInfo(manpId);
            se.deleteManipulation(manpId);                      
        }
           
     
     public void testInsectFoodweb4(SimulationEngine se)
      {
            int nodeList[] = {1,8};
            int halfSDtoPlant = 200;
            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "testInsectWeb", 0, 1, true);
                   
           List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(8);
            node.setBeginingBiomass(0.02);
            node.setHasLinks(false);
            nodes.add(node);
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(1, false, manpId, sParams, nodes);

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(2);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(9);
            node.setBeginingBiomass(0.03);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(2, false, manpId, sParams, nodes);  

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(3);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(11);
            node.setBeginingBiomass(0.02);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(3, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(4);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(12);
            node.setBeginingBiomass(0.02);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(4, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(5);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(3);
            node.setBeginingBiomass(1);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(5, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(6);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(13);
            node.setBeginingBiomass(0.02);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(6, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(7);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(14);
            node.setBeginingBiomass(0.02);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(7, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(8);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(5);
            node.setBeginingBiomass(0.02);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(8, false, manpId, sParams, nodes);              

           
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(9);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(7);
            node.setBeginingBiomass(1);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            
            sParams = new ArrayList<ManipulatingParameter>();
            se.updateSystemParameters(9, false, manpId, sParams, nodes);              

           
            se.run(10, 30, manpId, false);
            se.saveBiomassCSVFile(manpId);
            se.getBiomassInfo(manpId);
            se.deleteManipulation(manpId);                      
        }     

     public boolean testGetBiomass(SimulationEngine se ,String networkName) {
        int nodeList[] = {1, 8, 9};

        String man_id = se.createAndRunSeregenttiSubFoodweb(nodeList, networkName, 0, 0, true);

        List<NodeBiomass> lNodeBiomass = new ArrayList<NodeBiomass>();

        lNodeBiomass.add(new NodeBiomass(1000 * 10, 1));
        lNodeBiomass.add(new NodeBiomass(20 * 5, 8));
        lNodeBiomass.add(new NodeBiomass(20 * 5, 9));

        if (!lNodeBiomass.isEmpty()) {
            se.updateBiomass(man_id, lNodeBiomass, 0);
        }

        String errMsg = se.getBiomass(man_id, 0, 0);
        se.deleteManipulation(man_id);
       
        if(errMsg == null)
        {

            return true;
        }
        else
        {
            System.out.println("Error on getBiomass function:"+errMsg);           
            return false;
        }
    }

    
    
     public void createLevel1FW(SimulationEngine se)
     {
         String fwName = "Serengeti_level1_Foodweb";
         int nodeList[] = { 1,3,4,8,13,16,20, 21, 24, 31};
         se.createSeregenttiSubFoodweb(fwName, nodeList, true);
        
     }
    
     public void createLevel3FW_2(SimulationEngine se)
     {
         String fwName = "Serengeti_level3_Foodweb_2";
         int nodeList[] = { 1,2,3,4,5,8,13,14,15,16,17,20, 21, 24, 25,31,33,34,28,42,44};
         String networkId =  se.createSeregenttiSubFoodweb(fwName, nodeList, true);
         se.run(0, 300, networkId, true);
        
     }    
    
    
     public void nodeInfoTest(SimulationEngine se)
     {
         try
         {
            NetworkInfoRequest nir = new NetworkInfoRequest();
            String keyword = "Serengeti";
            nir.setTextSearch(true);
            nir.setTextSearchMode(0);
     
            Object[] sps = new Object[1];
            sps[0] = keyword;
//      nir.setWhereClause("name == @0");
//            nir.setSearchParameters(sps);
            nir.setWhereClause(keyword);
           
           
   
            NetworkInfoResponse ns = (NetworkInfoResponse)se.getN3DService().executeRequest(nir);        
      String errMsg = ns.getMessage();
      if(errMsg != null)
        System.out.print("msg:"+errMsg);
      NetworkInfo[] nets = ns.getNetworkInfo();
      for(NetworkInfo net : nets)
      {
        System.out.print("node:"+net.getNetworkName());
      }
//         NodeInfoRequest nir = new NodeInfoRequest();
         }
  catch(Exception e)
  {
            System.out.println("error:"+e.getMessage());     
  }      
        
     }
    
     public void testMay24_1(SimulationEngine se)
     {
           int nodeList[] = {4,73,80};
            int halfSDtoPlant = 200;
            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "testMay24_1", 0, 1, true);
                   
           List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(4);
            node.setBeginingBiomass(1);
            node.setHasLinks(false);
            nodes.add(node);
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(73);
            node.setBeginingBiomass(0.5);
            node.setHasLinks(false);
            nodes.add(node);
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_PROLIFERATION.getManipulationActionType()); // proliferation
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(80);
            node.setBeginingBiomass(0.01);
            node.setHasLinks(false);
            nodes.add(node);           
           
            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
           
//            se.setNodeParameter(4, ManipulatingParameterName.x.getManipulatingParameterIndex(), 4000, 1, sParams);          
            se.setNodeParameter(73, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.01, 1, sParams);          
            se.setNodeParameter(80, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.01, 1, sParams);                      
            se.updateSystemParameters(1, false, manpId, sParams, nodes);
            se.run(2, 400, manpId);
            se.saveBiomassCSVFile(manpId);
           
      
     }
    
    
    public void testMay26_1(SimulationEngine se)
     {
           int nodeList[] = {34,10,11,13,14,15};
            int halfSDtoPlant = 200;
            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "testMay26_1", 0, 1, true);
                   
           List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();
            ManipulatingNode node = new ManipulatingNode();
            nodes = new ArrayList<ManipulatingNode>();
            node = new ManipulatingNode();
            node.setTimestepIdx(1);
            node.setManipulationActionType(ManipulationActionType.SPECIES_INVASION.getManipulationActionType()); // invasion
            node.setModelType(ModelType.CASCADE_MODEL.getModelType()); // cascading model
            node.setNodeIdx(15);
            node.setBeginingBiomass(1);
            node.setHasLinks(false);
            node.setGameMode(true);           
            node.setOriginFoodwebId(se.getProperties().getProperty("serengetiNetworkId"));           
            nodes.add(node);            

            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setLinkParameter(14, 1, ManipulatingParameterName.b0.getManipulatingParameterIndex(), halfSDtoPlant, 6, sParams);           
            se.updateSystemParameters(1, false, manpId, sParams, nodes);                         
           
//            se.setNodeParameter(4, ManipulatingParameterName.x.getManipulatingParameterIndex(), 4000, 1, sParams);          
//            se.setNodeParameter(14, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.91, 1, sParams);          
//            se.setNodeParameter(20, ManipulatingParameterName.x.getManipulatingParameterIndex(), 0.9, 1, sParams);                      
//            se.updateSystemParameters(1, false, manpId, sParams, nodes);
            se.run(2, 10, manpId);
            se.saveBiomassCSVFile(manpId);
           
      
     }    
    
    public void testJun3(SimulationEngine se)
     {
           int nodeList[] = {34,10,11,13,14,15};
            int halfSDtoPlant = 200;
            String manpId = se.createAndRunSeregenttiSubFoodweb(nodeList, "testJun3", 0, 1, true);
                   
           List<ManipulatingNode> nodes = new ArrayList<ManipulatingNode>();

            List<ManipulatingParameter> sParams = new ArrayList<ManipulatingParameter>();
            se.setLinkParameter(34, 10, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.6, 6, sParams);           
            se.setLinkParameter(34, 11, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.1, 6, sParams);           
            se.setLinkParameter(34, 13, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.1, 6, sParams);           
            se.setLinkParameter(34, 14, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.1, 6, sParams);                       
            se.setLinkParameter(34, 15, ManipulatingParameterName.a.getManipulatingParameterIndex(), 0.1, 6, sParams);                       
            se.updateSystemParameters(1, false, manpId, sParams, nodes);                         
           
            se.run(2, 10, manpId);
            se.saveBiomassCSVFile(manpId);
           
      
     }    
    
    
    
  public static void main(String args[])
  {
           
                System.out.println("simulation engine starts");
               
//               SimulationEngine se = new SimulationEngine("http://54050601f7a9427285bd6fcfd56f8679.cloudapp.net/N3DWebService.svc?wsdl");      
//                SimulationEngine se = new SimulationEngine("http://127.0.0.1:81/N3DWebService.svc?wsdl");  
    SimulationEngine se = new SimulationEngine();
              
//                SimulationEngine se = new SimulationEngine("http://localhost:41246/N3DWebService.svc?wsdl");
                SimulationEngineTest ts =  new SimulationEngineTest();
                ts.testJun3(se);
//                ts.testMay26_1(se);
//                ts.createLevel3FW_2(se);
/*              
                ts.testGetBiomass(se, "WoB-BiomassT01");
                ts.testGetBiomass(se, "WoB-BiomassT02");
                ts.testGetBiomass(se, "WoB-BiomassT03");
                ts.testGetBiomass(se, "WoB-BiomassT04");
                ts.testGetBiomass(se, "WoB-BiomassT05");
*/
//                se.saveBiomassCSVFile("C5C142D1-F3CD-4A5C-9E98-A9B0BF7A04B1");
//    SimulationEngine se = new SimulationEngine("http://localhost:41246/N3DWebService.svc?wsdl");
//                SimulationEngine se = new SimulationEngine("http://127.0.0.1:81/N3DWebService.svc?wsdl");               
//                se.runManipulationTest("20a2ad49-11a4-49f2-91c8-41a5cfe764e4",3,5);
//                se.getBiomassInfo("e5ff191e-d8f8-4a87-b385-085812116724");
//                SimulationEngine se = new SimulationEngine();               

//                test.foodwebStabilityTest10_7(se);
               
               
               
//               SimulationEngineTest test = new SimulationEngineTest();               
//                test.testInsectFoodweb4(se);
//                test.testNode4Oribi(se);
//                ts.masterTestFunction("http://127.0.0.1:81/N3DWebService.svc?wsdl");                               
//                test.masterTestFunction("http://localhost:41246/N3DWebService.svc?wsdl");
//                ts.masterTestFunction("http://54050601f7a9427285bd6fcfd56f8679.cloudapp.net/N3DWebService.svc?wsdl");
//                test.masterTestFunction("http://54050601f7a9427285bd6fcfd56f8679.cloudapp.net/N3DWebService.svc?wsdl");
//                ts.masterTestFunction("http://n3dwebservice.cloudapp.net/N3DWebService.svc?wsdl");               
               
//                String manpl = test.foodwebStabilityTest10_7(se);
//                String manpl = test.foodwebStabilityTest_4species_x73_08(se);
//                String manpl = test.foodwebStabilityTest_4species_x73_80_08(se);
//                String manpl = test.foodwebStabilityTest_4species_x73_02_80_02(se);
//                String manpl = test.foodwebStabilityTest_4species_4_R_08(se);
//                String manpl = test.foodwebStabilityTest_4species_73_4_5_PD_05(se);
//                test.testManipulationParameterInfoReqest(se);
//                se.saveBiomassCSVFile(manpl);
//                se.deleteManipulation(manpl);

       
        }
   
}
TOP

Related Classes of simulationEngine.SimulationEngineTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.