Example #1
0
    def test_build_topology(self):
        mat_in, mat_out = test_data()
        net = NetworkBuilder(mat_in, mat_out)
        topo = net.build_topology(topology_params={"params": {"cm": 0.2}})
        self.assertEqual(
            set(topo["connections"]),
            set([((0, 0), (1, 1), 0.03, 0.0), ((0, 0), (1, 4), 0.03, 0.0),
                 ((0, 1), (1, 1), 0.03, 0.0), ((0, 1), (1, 4), 0.03, 0.0),
                 ((0, 2), (1, 0), 0.03, 0.0), ((0, 2), (1, 1), 0.03, 0.0),
                 ((0, 2), (1, 2), 0.03, 0.0), ((0, 2), (1, 3), 0.03, 0.0),
                 ((0, 3), (1, 0), 0.03, 0.0), ((0, 3), (1, 1), 0.03, 0.0),
                 ((0, 4), (1, 2), 0.03, 0.0), ((0, 4), (1, 3), 0.03, 0.0)]))
        self.assertEqual(topo["populations"], [{
            'count': 5,
            'params': [{}] * 5,
            'type': 'SpikeSourceArray',
            'record': []
        }, {
            'count':
            5,
            'params': [{
                'tau_refrac': 0.1,
                'tau_m': 20.0,
                'e_rev_E': 0.0,
                'i_offset': 0.0,
                'cm': 0.2,
                'e_rev_I': -70.0,
                'v_thresh': -50.0,
                'tau_syn_E': 5.0,
                'v_rest': -65.0,
                'tau_syn_I': 5.0,
                'v_reset': -65.0
            }] * 5,
            'record': ['spikes'],
            'type':
            'IF_cond_exp'
        }])

        net = NetworkBuilder(mat_in, mat_out)
        topo = net.build_topology(topology_params={
            "multiplicity": 2,
            "w": 0.1
        })
        self.assertEqual(
            set(topo["connections"]),
            set([((0, 0), (1, 2), 0.1, 0.0), ((0, 0), (1, 3), 0.1, 0.0),
                 ((0, 1), (1, 2), 0.1, 0.0), ((0, 1), (1, 3), 0.1, 0.0),
                 ((0, 0), (1, 8), 0.1, 0.0), ((0, 0), (1, 9), 0.1, 0.0),
                 ((0, 1), (1, 8), 0.1, 0.0), ((0, 1), (1, 9), 0.1, 0.0),
                 ((0, 2), (1, 2), 0.1, 0.0), ((0, 2), (1, 3), 0.1, 0.0),
                 ((0, 3), (1, 2), 0.1, 0.0), ((0, 3), (1, 3), 0.1, 0.0),
                 ((0, 2), (1, 8), 0.1, 0.0), ((0, 2), (1, 9), 0.1, 0.0),
                 ((0, 3), (1, 8), 0.1, 0.0), ((0, 3), (1, 9), 0.1, 0.0),
                 ((0, 4), (1, 0), 0.1, 0.0), ((0, 4), (1, 1), 0.1, 0.0),
                 ((0, 5), (1, 0), 0.1, 0.0), ((0, 5), (1, 1), 0.1, 0.0),
                 ((0, 4), (1, 2), 0.1, 0.0), ((0, 4), (1, 3), 0.1, 0.0),
                 ((0, 5), (1, 2), 0.1, 0.0), ((0, 5), (1, 3), 0.1, 0.0),
                 ((0, 4), (1, 4), 0.1, 0.0), ((0, 4), (1, 5), 0.1, 0.0),
                 ((0, 5), (1, 4), 0.1, 0.0), ((0, 5), (1, 5), 0.1, 0.0),
                 ((0, 4), (1, 6), 0.1, 0.0), ((0, 4), (1, 7), 0.1, 0.0),
                 ((0, 5), (1, 6), 0.1, 0.0), ((0, 5), (1, 7), 0.1, 0.0),
                 ((0, 6), (1, 0), 0.1, 0.0), ((0, 6), (1, 1), 0.1, 0.0),
                 ((0, 7), (1, 0), 0.1, 0.0), ((0, 7), (1, 1), 0.1, 0.0),
                 ((0, 6), (1, 2), 0.1, 0.0), ((0, 6), (1, 3), 0.1, 0.0),
                 ((0, 7), (1, 2), 0.1, 0.0), ((0, 7), (1, 3), 0.1, 0.0),
                 ((0, 8), (1, 4), 0.1, 0.0), ((0, 8), (1, 5), 0.1, 0.0),
                 ((0, 9), (1, 4), 0.1, 0.0), ((0, 9), (1, 5), 0.1, 0.0),
                 ((0, 8), (1, 6), 0.1, 0.0), ((0, 8), (1, 7), 0.1, 0.0),
                 ((0, 9), (1, 6), 0.1, 0.0), ((0, 9), (1, 7), 0.1, 0.0)]))
Example #2
0
    def test_build_topology(self):
        mat_in, mat_out = test_data()
        net = NetworkBuilder(mat_in, mat_out)
        topo = net.build_topology(topology_params={"params": {"cm": 0.2}})
        self.assertEqual(set(topo["connections"]), set([
            ((0, 0), (1, 1), 0.03, 0.0),
            ((0, 0), (1, 4), 0.03, 0.0),
            ((0, 1), (1, 1), 0.03, 0.0),
            ((0, 1), (1, 4), 0.03, 0.0),
            ((0, 2), (1, 0), 0.03, 0.0),
            ((0, 2), (1, 1), 0.03, 0.0),
            ((0, 2), (1, 2), 0.03, 0.0),
            ((0, 2), (1, 3), 0.03, 0.0),
            ((0, 3), (1, 0), 0.03, 0.0),
            ((0, 3), (1, 1), 0.03, 0.0),
            ((0, 4), (1, 2), 0.03, 0.0),
            ((0, 4), (1, 3), 0.03, 0.0)]))
        self.assertEqual(topo["populations"], [
                {'count': 5,
                 'params': [{}] * 5,
                 'type': 'SpikeSourceArray',
                 'record': []
                },
                {'count': 5,
                 'params': [{
                    'tau_refrac': 0.1,
                    'tau_m': 20.0,
                    'e_rev_E': 0.0,
                    'i_offset': 0.0,
                    'cm': 0.2,
                    'e_rev_I': -70.0,
                    'v_thresh': -50.0,
                    'tau_syn_E': 5.0,
                    'v_rest': -65.0,
                    'tau_syn_I': 5.0,
                    'v_reset': -65.0
                }] * 5,
                'record': ['spikes'],
                'type': 'IF_cond_exp'
                }
            ])

        net = NetworkBuilder(mat_in, mat_out)
        topo = net.build_topology(topology_params={"multiplicity": 2, "w": 0.1})
        self.assertEqual(set(topo["connections"]), set([
            ((0, 0), (1, 2), 0.1, 0.0),
            ((0, 0), (1, 3), 0.1, 0.0),
            ((0, 1), (1, 2), 0.1, 0.0),
            ((0, 1), (1, 3), 0.1, 0.0),
            ((0, 0), (1, 8), 0.1, 0.0),
            ((0, 0), (1, 9), 0.1, 0.0),
            ((0, 1), (1, 8), 0.1, 0.0),
            ((0, 1), (1, 9), 0.1, 0.0),
            ((0, 2), (1, 2), 0.1, 0.0),
            ((0, 2), (1, 3), 0.1, 0.0),
            ((0, 3), (1, 2), 0.1, 0.0),
            ((0, 3), (1, 3), 0.1, 0.0),
            ((0, 2), (1, 8), 0.1, 0.0),
            ((0, 2), (1, 9), 0.1, 0.0),
            ((0, 3), (1, 8), 0.1, 0.0),
            ((0, 3), (1, 9), 0.1, 0.0),
            ((0, 4), (1, 0), 0.1, 0.0),
            ((0, 4), (1, 1), 0.1, 0.0),
            ((0, 5), (1, 0), 0.1, 0.0),
            ((0, 5), (1, 1), 0.1, 0.0),
            ((0, 4), (1, 2), 0.1, 0.0),
            ((0, 4), (1, 3), 0.1, 0.0),
            ((0, 5), (1, 2), 0.1, 0.0),
            ((0, 5), (1, 3), 0.1, 0.0),
            ((0, 4), (1, 4), 0.1, 0.0),
            ((0, 4), (1, 5), 0.1, 0.0),
            ((0, 5), (1, 4), 0.1, 0.0),
            ((0, 5), (1, 5), 0.1, 0.0),
            ((0, 4), (1, 6), 0.1, 0.0),
            ((0, 4), (1, 7), 0.1, 0.0),
            ((0, 5), (1, 6), 0.1, 0.0),
            ((0, 5), (1, 7), 0.1, 0.0),
            ((0, 6), (1, 0), 0.1, 0.0),
            ((0, 6), (1, 1), 0.1, 0.0),
            ((0, 7), (1, 0), 0.1, 0.0),
            ((0, 7), (1, 1), 0.1, 0.0),
            ((0, 6), (1, 2), 0.1, 0.0),
            ((0, 6), (1, 3), 0.1, 0.0),
            ((0, 7), (1, 2), 0.1, 0.0),
            ((0, 7), (1, 3), 0.1, 0.0),
            ((0, 8), (1, 4), 0.1, 0.0),
            ((0, 8), (1, 5), 0.1, 0.0),
            ((0, 9), (1, 4), 0.1, 0.0),
            ((0, 9), (1, 5), 0.1, 0.0),
            ((0, 8), (1, 6), 0.1, 0.0),
            ((0, 8), (1, 7), 0.1, 0.0),
            ((0, 9), (1, 6), 0.1, 0.0),
            ((0, 9), (1, 7), 0.1, 0.0)]))