def test_calculate_output_matrix(self): analysis = NetworkAnalysis({ "input_times": [[0.0, 0.0], [0.0], [0.0, 0.0, 0.0]], "input_indices": [[0, 1], [2], [3, 4, 5]], "output_times": [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0], [0.0, 0.0, 0.0]], "output_indices": [[0, 1, 1, 2], [0, 3, 2], [4, 4], [0, 1, 5]], "data_params": { "n_bits_in": 3, "n_bits_out": 4, "n_ones_in": 1, "n_ones_out": 1, "n_samples": 6 } }) mat_out = analysis.calculate_output_matrix( output_params={"burst_size": 2}) np.testing.assert_almost_equal( [[0.5, 0.5, 0., 0.5], [1., 0., 0., 0.5], [0.5, 0.5, 0., 0.], [0., 0.5, 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 0.5]], mat_out) analysis["topology_params"] = TopologyParameters({"multiplicity": 2}) analysis["data_params"]["n_bits_out"] = 2 mat_out = analysis.calculate_output_matrix( output_params={"burst_size": 2}) np.testing.assert_almost_equal([[0.5, 0.25], [0.5, 0.25], [0.5, 0.], [0.25, 0.], [0., 0.5], [0., 0.25]], mat_out)
def test_calculate_latency(self): analysis = NetworkAnalysis({ "input_times": [[1.0, 2.0], [3.0], [4.0, 5.0, 6.0]], "input_indices": [[0, 1], [2], [3, 4, 5]], "output_times": [[1.75, 2.5], [4.5, 4.75], [5.1, 5.2, 6.3], [6.4]], "output_indices": [[0, 1], [3, 3], [4, 4, 5], [5]], "data_params": { "n_bits_in": 3, "n_bits_out": 4, "n_ones_in": 1, "n_ones_out": 1, "n_samples": 6 } }) latency = analysis.calculate_latencies() latency[latency == np.inf] = -1 # almost_equal and inf is buggy np.testing.assert_almost_equal([0.75, 0.5, -1, 0.75, 0.2, 0.4], latency)
def test_calculate_output_matrix(self): analysis = NetworkAnalysis({ "input_times": [[0.0, 0.0], [0.0], [0.0, 0.0, 0.0]], "input_indices": [[0, 1], [2], [3, 4, 5]], "output_times": [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0], [0.0, 0.0, 0.0]], "output_indices": [[0, 1, 1, 2], [0, 3, 2], [4, 4], [0, 1, 5]], "data_params": { "n_bits_in": 3, "n_bits_out": 4, "n_ones_in": 1, "n_ones_out": 1, "n_samples": 6 } }) mat_out = analysis.calculate_output_matrix( output_params={"burst_size": 2}) np.testing.assert_almost_equal([ [ 0.5, 0.5, 0., 0.5], [ 1., 0., 0., 0.5], [ 0.5, 0.5, 0., 0. ], [ 0., 0.5, 0., 0. ], [ 0., 0., 1., 0. ], [ 0., 0., 0., 0.5]], mat_out) analysis["topology_params"] = TopologyParameters({ "multiplicity": 2 }) analysis["data_params"]["n_bits_out"] = 2 mat_out = analysis.calculate_output_matrix( output_params={"burst_size": 2}) np.testing.assert_almost_equal([ [ 0.5, 0.25], [ 0.5, 0.25], [ 0.5, 0.], [ 0.25, 0.], [ 0., 0.5], [ 0., 0.25]], mat_out)