def test_neuron_bayesian(self): neuron = lola.AtomicNeuron() self.assertEqual(neuron.bayesian.enable, False) neuron.bayesian.enable = True self.assertEqual(neuron.bayesian.enable, True) self.assertEqual(neuron.bayesian.connect_fire_vertical, False) neuron.bayesian.connect_fire_vertical = True self.assertEqual(neuron.bayesian.connect_fire_vertical, True) self.assertEqual(neuron.bayesian.connect_fire_to_right, False) neuron.bayesian.connect_fire_to_right = True self.assertEqual(neuron.bayesian.connect_fire_to_right, True) self.assertEqual(neuron.bayesian.connect_fire_from_right, False) neuron.bayesian.connect_fire_from_right = True self.assertEqual(neuron.bayesian.connect_fire_from_right, True) self.assertEqual(neuron.bayesian.enable_master, True) neuron.bayesian.enable_master = False self.assertEqual(neuron.bayesian.enable_master, False) self.assertEqual(neuron.bayesian.enable_slave, False) neuron.bayesian.enable_slave = True self.assertEqual(neuron.bayesian.enable_slave, True) self.assertEqual(neuron.bayesian.enable_0, False) neuron.bayesian.enable_0 = True self.assertEqual(neuron.bayesian.enable_0, True) self.assertEqual(neuron.bayesian.enable_1, False) neuron.bayesian.enable_1 = True self.assertEqual(neuron.bayesian.enable_1, True)
def test_neuron_multicompartment(self): neuron = lola.AtomicNeuron() self.assertEqual(neuron.multicompartment.connect_soma, False) neuron.multicompartment.connect_soma = True self.assertEqual(neuron.multicompartment.connect_soma, True) self.assertEqual(neuron.multicompartment.connect_soma_right, False) neuron.multicompartment.connect_soma_right = True self.assertEqual(neuron.multicompartment.connect_soma_right, True) self.assertEqual(neuron.multicompartment.connect_right, False) neuron.multicompartment.connect_right = True self.assertEqual(neuron.multicompartment.connect_right, True) self.assertEqual(neuron.multicompartment.connect_vertical, False) neuron.multicompartment.connect_vertical = True self.assertEqual(neuron.multicompartment.connect_vertical, True) self.assertEqual(neuron.multicompartment.enable_conductance_division, False) neuron.multicompartment.enable_conductance_division = True self.assertEqual(neuron.multicompartment.enable_conductance_division, True) self.assertEqual( neuron.multicompartment.enable_conductance_multiplication, False) neuron.multicompartment.enable_conductance_multiplication = True self.assertEqual( neuron.multicompartment.enable_conductance_multiplication, True)
def test_neuron_event_routing(self): neuron = lola.AtomicNeuron() self.assertEqual(neuron.event_routing.enable_analog, False) neuron.event_routing.enable_analog = True self.assertEqual(neuron.event_routing.enable_analog, True) self.assertEqual(neuron.event_routing.enable_digital, False) neuron.event_routing.enable_digital = True self.assertEqual(neuron.event_routing.enable_digital, True) self.assertEqual(neuron.event_routing.enable_bypass_excitatory, False) neuron.event_routing.enable_bypass_excitatory = True self.assertEqual(neuron.event_routing.enable_bypass_excitatory, True) self.assertEqual(neuron.event_routing.enable_bypass_inhibitory, False) neuron.event_routing.enable_bypass_inhibitory = True self.assertEqual(neuron.event_routing.enable_bypass_inhibitory, True) self.assertEqual(neuron.event_routing.enable_post_overwrite, False) neuron.event_routing.enable_post_overwrite = True self.assertEqual(neuron.event_routing.enable_post_overwrite, True) self.assertEqual(neuron.event_routing.address, 0) value = random_ranged(lola.AtomicNeuron.EventRouting.Address) neuron.event_routing.address = value self.assertEqual(neuron.event_routing.address, value)
def test_neuron_adaptation(self): neuron = lola.AtomicNeuron() self.assertEqual(neuron.adaptation.enable, False) neuron.adaptation.enable = True self.assertEqual(neuron.adaptation.enable, True) self.assertEqual(neuron.adaptation.enable_capacitor, False) neuron.adaptation.enable_capacitor = True self.assertEqual(neuron.adaptation.enable_capacitor, True) self.assertEqual(neuron.adaptation.invert_a, False) neuron.adaptation.invert_a = True self.assertEqual(neuron.adaptation.invert_a, True) self.assertEqual(neuron.adaptation.invert_b, False) neuron.adaptation.invert_b = True self.assertEqual(neuron.adaptation.invert_b, True) self.assertEqual(neuron.adaptation.i_w, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.adaptation.i_w = value self.assertEqual(neuron.adaptation.i_w, value) self.assertEqual(neuron.adaptation.i_bias_sd, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.adaptation.i_bias_sd = value self.assertEqual(neuron.adaptation.i_bias_sd, value) self.assertEqual(neuron.adaptation.i_bias_res, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.adaptation.i_bias_res = value self.assertEqual(neuron.adaptation.i_bias_res, value)
def test_neuron_exponential(self): neuron = lola.AtomicNeuron() self.assertEqual(neuron.exponential.enable, False) neuron.exponential.enable = True self.assertEqual(neuron.exponential.enable, True) self.assertEqual(neuron.exponential.strength, 0) value = random_ranged(lola.AtomicNeuron.Exponential.Strength) neuron.exponential.strength = value self.assertEqual(neuron.exponential.strength, value)
def test_neuron_constant(self): neuron = lola.AtomicNeuron() self.assertEqual(neuron.constant_current.i_offset, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.constant_current.i_offset = value self.assertEqual(neuron.constant_current.i_offset, value) self.assertEqual(neuron.constant_current.enable, False) neuron.constant_current.enable = True self.assertEqual(neuron.constant_current.enable, True)
def test_neuron_threshold(self): neuron = lola.AtomicNeuron() self.assertEqual(neuron.threshold.v_threshold, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.threshold.v_threshold = value self.assertEqual(neuron.threshold.v_threshold, value) self.assertEqual(neuron.threshold.enable, False) neuron.threshold.enable = True self.assertEqual(neuron.threshold.enable, True)
def test_neuron_membrane(self): neuron = lola.AtomicNeuron() self.assertEqual(neuron.membrane_capacitance.enable_merge, False) neuron.membrane_capacitance.enable_merge = True self.assertEqual(neuron.membrane_capacitance.enable_merge, True) self.assertEqual(neuron.membrane_capacitance.capacitance, 0) value = random_ranged( lola.AtomicNeuron.MembraneCapacitance.CapacitorSize) neuron.membrane_capacitance.capacitance = value self.assertEqual(neuron.membrane_capacitance.capacitance, value)
def test_neuron_readout(self): neuron = lola.AtomicNeuron() self.assertEqual(neuron.readout.enable_buffered_access, False) neuron.readout.enable_buffered_access = True self.assertEqual(neuron.readout.enable_buffered_access, True) self.assertEqual(neuron.readout.enable_amplifier, False) neuron.readout.enable_amplifier = True self.assertEqual(neuron.readout.enable_amplifier, True) self.assertEqual(neuron.readout.enable_unbuffered_access, False) neuron.readout.enable_unbuffered_access = True self.assertEqual(neuron.readout.enable_unbuffered_access, True) self.assertEqual(neuron.readout.source, neuron.Readout.Source.membrane) value = lola.AtomicNeuron.Readout.Source.adaptation neuron.readout.source = value self.assertEqual(neuron.readout.source, value)
def test_neuron_synaptic_inputs(self): neuron = lola.AtomicNeuron() # excitatory self.assertEqual(neuron.excitatory_input.enable, False) neuron.excitatory_input.enable = True self.assertEqual(neuron.excitatory_input.enable, True) self.assertEqual(neuron.excitatory_input.i_bias_res, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.excitatory_input.i_bias_res = value self.assertEqual(neuron.excitatory_input.i_bias_res, value) self.assertEqual(neuron.excitatory_input.i_bias_gm, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.excitatory_input.i_bias_gm = value self.assertEqual(neuron.excitatory_input.i_bias_gm, value) self.assertEqual(neuron.excitatory_input.v_syn, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.excitatory_input.v_syn = value self.assertEqual(neuron.excitatory_input.v_syn, value) # inhibitory self.assertEqual(neuron.inhibitory_input.enable, False) neuron.inhibitory_input.enable = True self.assertEqual(neuron.inhibitory_input.enable, True) self.assertEqual(neuron.inhibitory_input.i_bias_res, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.inhibitory_input.i_bias_res = value self.assertEqual(neuron.inhibitory_input.i_bias_res, value) self.assertEqual(neuron.inhibitory_input.i_bias_gm, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.inhibitory_input.i_bias_gm = value self.assertEqual(neuron.inhibitory_input.i_bias_gm, value) self.assertEqual(neuron.inhibitory_input.v_syn, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.inhibitory_input.v_syn = value self.assertEqual(neuron.inhibitory_input.v_syn, value)
def test_neuron_refractory_period(self): neuron = lola.AtomicNeuron() self.assertEqual(neuron.refractory_period.refractory_time, neuron.RefractoryPeriod.RefractoryTime()) value = random_ranged( lola.AtomicNeuron.RefractoryPeriod.RefractoryTime) neuron.refractory_period.refractory_time = value self.assertEqual(neuron.refractory_period.refractory_time, value) self.assertEqual(neuron.refractory_period.reset_holdoff, neuron.RefractoryPeriod.ResetHoldoff()) value = random_ranged(lola.AtomicNeuron.RefractoryPeriod.ResetHoldoff) neuron.refractory_period.reset_holdoff = value self.assertEqual(neuron.refractory_period.reset_holdoff, value) self.assertEqual(neuron.refractory_period.input_clock, lola.AtomicNeuron.RefractoryPeriod.InputClock()) value = random_ranged(lola.AtomicNeuron.RefractoryPeriod.InputClock) neuron.refractory_period.input_clock = value self.assertEqual(neuron.refractory_period.input_clock, value)
def test_neuron_reset(self): neuron = lola.AtomicNeuron() self.assertEqual(neuron.leak_reset.reset.v_reset, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.leak_reset.reset.v_reset = value self.assertEqual(neuron.leak_reset.reset.v_reset, value) self.assertEqual(neuron.leak_reset.reset.i_bias, 0) value = random_ranged(lola.AtomicNeuron.AnalogValue) neuron.leak_reset.reset.i_bias = value self.assertEqual(neuron.leak_reset.reset.i_bias, value) self.assertEqual(neuron.leak_reset.reset.enable_degeneration, False) neuron.leak_reset.reset.enable_degeneration = True self.assertEqual(neuron.leak_reset.reset.enable_degeneration, True) self.assertEqual(neuron.leak_reset.reset.enable_division, False) neuron.leak_reset.reset.enable_division = True self.assertEqual(neuron.leak_reset.reset.enable_division, True) self.assertEqual(neuron.leak_reset.reset.enable_multiplication, False) neuron.leak_reset.reset.enable_multiplication = True self.assertEqual(neuron.leak_reset.reset.enable_multiplication, True)