def get_before_and_after(self):
        synfire_run = SynfireRunner()
        synfire_run.do_run(n_neurons, neurons_per_core=neurons_per_core,
                           weight_to_spike=weight_to_spike, delay=delay,
                           placement_constraint=placement_constraint,
                           run_times=runtimes, get_weights=get_weights,
                           get_delays=get_delays)
        weights = synfire_run.get_weights()
        self.assertEqual(n_neurons, len(weights[0]))
        self.assertEqual(n_neurons, len(weights[1]))
        self.assertTrue(numpy.allclose(weights[0][0][2], weights[1][0][2]))

        delays = synfire_run.get_delay()
        self.assertEqual(n_neurons, len(delays[0]))
        self.assertEqual(n_neurons, len(delays[1]))
        self.assertTrue(numpy.allclose(delays[0][0][2], delays[1][0][2]))
delay = 17
run_times = [5000]
get_weights = True
synfire_run = SynfireRunner()


class SynfireIfCurr_exp(BaseTestCase):

    def test_run(self):
        synfire_run.do_run(nNeurons, neurons_per_core=neurons_per_core,
                           delay=delay, run_times=run_times,
                           get_weights=get_weights)
        spikes = synfire_run.get_output_pop_spikes_numpy()
        weights = synfire_run.get_weights()

        self.assertEqual(263, len(spikes))
        self.assertEqual(200, len(weights))
        spike_checker.synfire_spike_checker(spikes, nNeurons)


if __name__ == '__main__':
    synfire_run.do_run(nNeurons, neurons_per_core=neurons_per_core,
                       delay=delay, run_times=run_times,
                       get_weights=get_weights)
    spikes = synfire_run.get_output_pop_spikes_numpy()
    weights = synfire_run.get_weights()

    print(len(spikes))
    print(len(weights))
    plot_utils.plot_spikes(spikes)