Package ca.nengo.sim.impl

Source Code of ca.nengo.sim.impl.WriteToDiskSimulatorListenerTest

/*
* Created on 16-Dec-2010
*/
package ca.nengo.sim.impl;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

import junit.framework.TestCase;

import ca.nengo.model.Network;
import ca.nengo.model.SimulationException;
import ca.nengo.model.StructuralException;
import ca.nengo.model.impl.NetworkImpl;
import ca.nengo.model.nef.NEFEnsemble;
import ca.nengo.model.nef.NEFEnsembleFactory;
import ca.nengo.model.nef.impl.NEFEnsembleFactoryImpl;
import ca.nengo.util.Probe;

/**
* Unit tests for WriteToDiskSimulatorListener.
*
* @author Trevor Bekolay
*/
public class WriteToDiskSimulatorListenerTest extends TestCase {

  /*
   * Test method for 'ca.nengo.sim.impl.WriteToDiskSimulatorListener'
   */
  public void testBasicWriting() throws StructuralException, SimulationException {
    Network network = new NetworkImpl();
    NEFEnsembleFactory factory = new NEFEnsembleFactoryImpl();
    NEFEnsemble ensemble = factory.make("Ensemble",100,2);
    File file = new File("testWTDSL.csv");
   
    network.addNode(ensemble);
   
    Probe probe = network.getSimulator().addProbe("Ensemble", "X", true);
    WriteToDiskSimulatorListener listener = new WriteToDiskSimulatorListener(file,probe,0.005f);
   
    network.getSimulator().addSimulatorListener(listener);
    network.getSimulator().run(0.0f, 1.0f, 0.001f);
   
    assertTrue(file.exists());
    assertTrue(file.length() > 0);
    assertTrue(file.delete());
  }
 
  /*
   * Test method for 'ca.nengo.sim.impl.WriteToDiskSimulatorListener'
   */
  public void testInterval() throws StructuralException, SimulationException, FileNotFoundException {
    Network network = new NetworkImpl();
    NEFEnsembleFactory factory = new NEFEnsembleFactoryImpl();
    NEFEnsemble ensemble = factory.make("Ensemble",100,2);
    File file = new File("testWTDSL.csv");
   
    network.addNode(ensemble);
   
    float interval = 0.005f;
    float simLength = 1.0f;
    int numIntervals = (int)(simLength / interval);
    Probe probe = network.getSimulator().addProbe("Ensemble", "X", true);
    WriteToDiskSimulatorListener listener = new WriteToDiskSimulatorListener(file,probe,interval);
       
    network.getSimulator().addSimulatorListener(listener);
    network.getSimulator().run(0.0f, simLength, 0.001f);
   
        Scanner fileReader = new Scanner(file);
        int lineCount = 0;
     
        while (fileReader.hasNextLine()) {
          fileReader.nextLine();
          lineCount++;
        }
       
        assertEquals(numIntervals,lineCount);
        fileReader.close();
        network.getSimulator().removeSimulatorListener(listener);
       
        // Also tests multiple runs
        interval = 0.0f;
    numIntervals = 1000;
    listener = new WriteToDiskSimulatorListener(file,probe,interval);
   
    network.getSimulator().addSimulatorListener(listener);
    network.getSimulator().run(0.0f, simLength, 0.001f);
   
        fileReader = new Scanner(file);
        lineCount = 0;
     
        while (fileReader.hasNextLine()) {
          fileReader.nextLine();
          lineCount++;
        }
       
        assertEquals(numIntervals,lineCount);
        fileReader.close();
        assertTrue(file.delete());
  }
}
TOP

Related Classes of ca.nengo.sim.impl.WriteToDiskSimulatorListenerTest

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.