def test_profile_constructor(profile_example): p = ddp.Profile() assert len(p.synapse_weights) == 0 pe = profile_example p = ddp.Profile(neuron_counts=pe.neuron_counts, synapse_counts=pe.synapse_counts, synapse_weights=pe.synapse_weights, num_inputs=pe.num_inputs) assert p.neuron_counts[0][2] == 1
def test_profile_constructor(profile_example): p = ddp.Profile() assert len(p.synapse_weights) == 0 pe = profile_example p = ddp.Profile( neuron_counts=pe.neuron_counts, synapse_counts=pe.synapse_counts, synapse_weights=pe.synapse_weights, num_inputs=pe.num_inputs, ) assert np.allclose(p.neuron_counts[1].data, [2, 1, 1, 1]) assert np.allclose(p.synapse_weights[1].data, [0.1, 0.2, 0.3, 0.4, 0.5])
def test_add(profile_example): pe = profile_example p = ddp.Profile(neuron_counts=pe.neuron_counts, synapse_counts=pe.synapse_counts, synapse_weights=pe.synapse_weights, num_inputs=3) q = ddp.Profile(neuron_counts=pe.neuron_counts, synapse_counts=pe.synapse_counts, synapse_weights=pe.synapse_weights, num_inputs=4) s = p + q assert s.size == 4 assert s.total == 10 assert s.num_inputs == 7 p += p assert p.total == 10 assert p.num_inputs == 6
def test_profile_attributes(profile_example): pe = profile_example p = ddp.Profile(neuron_counts=pe.neuron_counts, synapse_counts=pe.synapse_counts, synapse_weights=pe.synapse_weights, num_inputs=3) assert p.neuron_counts == pe.neuron_counts assert p.synapse_counts == pe.synapse_counts assert p.synapse_weights == pe.synapse_weights assert p.num_inputs == 3 assert p.total == 5 assert p.size == 4 q = ddp.Profile(neuron_counts=pe.neuron_counts, synapse_counts=pe.synapse_counts, synapse_weights=pe.synapse_weights, num_inputs=3) assert p == q
def __init__(self): nc1 = { 0: sp.coo_matrix([[4], [0]]), 1: sp.coo_matrix([[1], [1], [1], [0], [1], [0]]), } nc2 = { 0: sp.coo_matrix([[5], [0]]), 1: sp.coo_matrix([[0], [1], [1], [1], [1], [1]]), } nc3 = { 0: sp.coo_matrix([[2], [2]]), 1: sp.coo_matrix([[0], [1], [0], [1], [0], [0]]), } sw1 = { 1: sp.coo_matrix([[0.1, 0], [0.2, 0], [0.3, 0], [0, 0], [0.4, 0], [0, 0]]) } sw2 = { 1: sp.coo_matrix([[0, 0], [0.1, 0], [0.3, 0], [0.5, 0], [0.7, 0], [0.9, 0]]) } sw3 = { 1: sp.coo_matrix([[0, 0], [0.5, 0.1], [0, 0], [0.7, 0.3], [0, 0], [0, 0]]) } sc1 = {1: sw1[1].astype(bool).astype(int)} sc2 = {1: sw2[1].astype(bool).astype(int)} sc3 = {1: sw3[1].astype(bool).astype(int)} self.p1 = ddp.Profile(neuron_counts=nc1, synapse_counts=sc1, synapse_weights=sw1, num_inputs=1) self.p2 = ddp.Profile(neuron_counts=nc2, synapse_counts=sc2, synapse_weights=sw2, num_inputs=1) self.p3 = ddp.Profile(neuron_counts=nc3, synapse_counts=sc3, synapse_weights=sw3, num_inputs=1)
def __init__(self): ex1 = [1, 2, 2, 3, 5] ex2 = [2, 3, 4, 5, 6] ex3 = [2, 2, 2, 4, 4] nc1 = {0: Counter([(0, )]), 1: Counter(ex1)} nc2 = {0: Counter([(0, )]), 1: Counter(ex2)} nc3 = {0: Counter([(1, )]), 1: Counter(ex3)} sc1 = {0: Counter([(0, 0)]), 1: Counter([(x, 0) for x in ex1])} sc2 = {0: Counter([(0, 0)]), 1: Counter([(x, 0) for x in ex2])} sc3 = { 0: Counter([(1, 1), (0, 0)]), 1: Counter([(x, 1) for x in ex3] + [(x, 0) for x in ex3]) } sw1 = { 0: {(0, 0, 1)}, 1: {(x[0], x[1], .1 * idx + .1) for idx, x in enumerate(sc1[1])} } sw2 = { 0: {(0, 0, 1)}, 1: {(x[0], x[1], .2 * idx + .1) for idx, x in enumerate(sc2[1])} } sw3 = { 0: {(1, 1, 1)}, 1: {(x[0], x[1], .2 * idx + .1) for idx, x in enumerate(sc3[1])} } self.p1 = ddp.Profile(neuron_counts=nc1, synapse_counts=sc1, synapse_weights=sw1, num_inputs=1) self.p2 = ddp.Profile(neuron_counts=nc2, synapse_counts=sc2, synapse_weights=sw2, num_inputs=1) self.p3 = ddp.Profile(neuron_counts=nc3, synapse_counts=sc3, synapse_weights=sw3, num_inputs=1)