def set_runner_condition(nodenet_uid, steps=-1, monitor=None): if monitor and 'value' in monitor: monitor['value'] = float(monitor['value']) if steps: steps = int(steps) if steps < 0: steps = None return runtime.set_runner_condition(nodenet_uid, monitor, steps)
def test_register_runner_condition_monitor(test_nodenet): import time nn = micropsi.nodenets[test_nodenet] node = nn.netapi.create_node('Register', None) nn.netapi.link(node, 'gen', node, 'gen', weight=2) node.activation = 0.1 uid = micropsi.add_gate_monitor(test_nodenet, node.uid, 'gen') micropsi.set_runner_condition(test_nodenet, monitor={ 'uid': uid, 'value': 0.8 }) micropsi.start_nodenetrunner(test_nodenet) assert micropsi.nodenets[test_nodenet].is_active time.sleep(1) assert not micropsi.nodenets[test_nodenet].is_active assert micropsi.nodenets[test_nodenet].current_step == 3 assert round(nn.get_node(node.uid).get_gate('gen').activation, 4) == 0.8
def set_runner_condition(nodenet_uid, steps=-1, monitor=None): """ Register a stop-condition for the nodenet-runner, depending on the parameter: steps (int): Stop runner after having calculated this many steps monitor (dict, containing "uid", and "value"): Stop if the monitor with the given uid has the given value """ if monitor and 'value' in monitor: monitor['value'] = float(monitor['value']) if steps: steps = int(steps) if steps < 0: steps = None return runtime.set_runner_condition(nodenet_uid, monitor, steps)
def test_register_runner_condition_step(test_nodenet): import time success, data = micropsi.set_runner_condition(test_nodenet, steps=7) assert data['step'] == 7 assert data['step_amount'] == 7 micropsi.start_nodenetrunner(test_nodenet) assert micropsi.nodenets[test_nodenet].is_active time.sleep(1) assert micropsi.nodenets[test_nodenet].current_step == 7 assert not micropsi.nodenets[test_nodenet].is_active # test that the condition stays active. micropsi.start_nodenetrunner(test_nodenet) assert micropsi.nodenets[test_nodenet].is_active time.sleep(1) assert micropsi.nodenets[test_nodenet].current_step == 14 assert not micropsi.nodenets[test_nodenet].is_active
def test_runner_condition_persists(test_nodenet): micropsi.set_runner_condition(test_nodenet, steps=7) micropsi.save_nodenet(test_nodenet) micropsi.revert_nodenet(test_nodenet) assert micropsi.nodenets[test_nodenet].get_runner_condition()['step'] == 7