Esempio n. 1
0
def test_marshal_simulation():
    
    from dipde.examples.excitatory_inhibitory import get_network
    
    simulation_configuration_full = SimulationConfiguration(dt=.001, tf=.02, t0=0)
    simulation_configuration_p1 = SimulationConfiguration(dt=.001, tf=.01, t0=0)
    simulation_configuration_p2 = SimulationConfiguration(dt=.001, tf=.01, t0=0)
    
    # Run full simulation:
    simulation_full = Simulation(network=get_network(), simulation_configuration=simulation_configuration_full)
    assert simulation_full.completed == False
    simulation_full.run()
    assert simulation_full.completed == True
    
    # Run simulation, part 1: 
    simulation_p1 = Simulation(network=get_network(), simulation_configuration=simulation_configuration_p1)
    simulation_p1.run()
    s_midway = simulation_p1.to_json()

    # Run simulation, part 2:
    simulation_p2 = Simulation(**json.loads(s_midway))
    simulation_p2.simulation_configuration = simulation_configuration_p2
    simulation_p2.run()

    # Run copy half way, round trip, and then finish:

    # Compare:
    y1 = simulation_full.network.population_list[1].firing_rate_record
    y2 = simulation_p2.network.population_list[1].firing_rate_record
    
    assert len(y1) == len(y2)
    for y1i, y2i in zip(y1, y2):
        np.testing.assert_almost_equal(y1i, y2i, 12)
        
    simulation_full.to_json(StringIO.StringIO())