def test_run(self): ww = WongWangNetwork(self.SC, self.DELAYS, exc_seed=SEED, inh_seed=SEED) all_results = [] for backend, noise_func in BACKENDS_TO_TEST.items(): result = ww.run( DURATION, DT, noise_func(ZeroInput(ww.num_noise_variables), DURATION, DT), backend=backend, ) self.assertTrue(isinstance(result, xr.Dataset)) self.assertEqual(len(result), ww.num_state_variables / ww.num_nodes) self.assertTrue( all(result[result_].shape == (int(DURATION / DT), ww.num_nodes) for result_ in result)) all_results.append(result) # test results are the same from different backends for state_var in all_results[0]: corr_mat = np.corrcoef( np.vstack([ result[state_var].values.flatten().astype(float) for result in all_results ])) self.assertTrue(np.greater(corr_mat, CORR_THRESHOLD).all())
def test_init(self): ww = WongWangNetwork(self.SC, self.DELAYS) self.assertTrue(isinstance(ww, WongWangNetwork)) self.assertEqual(len(ww), self.SC.shape[0]) self.assertEqual(ww.initial_state.shape[0], ww.num_state_variables) self.assertEqual(ww.default_output, f"S_{EXC}")