Esempio n. 1
0
def test_nodetype_function_definition_overwrites_default_function_name(fixed_nodenet):
    nodenet = micropsi.get_nodenet(fixed_nodenet)
    nodetype = nodenet.get_standard_nodetype_definitions()['Concept'].copy()
    foo = Nodetype(nodenet=nodenet, **nodetype)
    assert foo.nodefunction == concept
    nodetype['nodefunction_definition'] = 'return 17'
    foo = Nodetype(nodenet=nodenet, **nodetype)
    assert foo.nodefunction != concept
    assert foo.nodefunction(nodenet, None) == 17
Esempio n. 2
0
def test_nodetype_function_definition_overwrites_default_function_name_theano(fixed_nodenet):
    nodenet = micropsi.get_nodenet(fixed_nodenet)
    nodetype = nodenet.get_standard_nodetype_definitions()['Register'].copy()
    foo = Nodetype(nodenet=nodenet, **nodetype)
    assert foo.nodefunction == register
    nodetype['nodefunction_definition'] = 'return 17'
    foo = Nodetype(nodenet=nodenet, **nodetype)
    assert foo.nodefunction != register
    assert foo.nodefunction(nodenet, None) == 17
Esempio n. 3
0
def test_nodetype_function_definition_overwrites_default_function_name_theano(runtime, test_nodenet):
    nodenet = runtime.get_nodenet(test_nodenet)
    nodetype = nodenet.get_standard_nodetype_definitions()['Neuron'].copy()
    foo = Nodetype(nodenet=nodenet, **nodetype)
    assert foo.nodefunction == neuron
    nodetype['nodefunction_definition'] = 'return 17'
    foo = Nodetype(nodenet=nodenet, **nodetype)
    assert foo.nodefunction != neuron
    assert foo.nodefunction(nodenet, None) == 17
Esempio n. 4
0
def test_nodetype_function_definition_overwrites_default_function_name(
        fixed_nodenet):
    nodenet = micropsi.get_nodenet(fixed_nodenet)
    nodetype = nodenet.get_standard_nodetype_definitions()['Concept'].copy()
    foo = Nodetype(nodenet=nodenet, **nodetype)
    assert foo.nodefunction == concept
    nodetype['nodefunction_definition'] = 'return 17'
    foo = Nodetype(nodenet=nodenet, **nodetype)
    assert foo.nodefunction != concept
    assert foo.nodefunction(nodenet, None) == 17
Esempio n. 5
0
def test_nodetype_function_definition_overwrites_default_function_name_theano(
        fixed_nodenet):
    nodenet = micropsi.get_nodenet(fixed_nodenet)
    nodetype = nodenet.get_standard_nodetype_definitions()['Register'].copy()
    foo = Nodetype(nodenet=nodenet, **nodetype)
    assert foo.nodefunction == register
    nodetype['nodefunction_definition'] = 'return 17'
    foo = Nodetype(nodenet=nodenet, **nodetype)
    assert foo.nodefunction != register
    assert foo.nodefunction(nodenet, None) == 17
Esempio n. 6
0
    def __init__(self,
                 name="",
                 worldadapter="Default",
                 world=None,
                 owner="",
                 uid=None,
                 native_modules={},
                 use_modulators=True,
                 worldadapter_instance=None):
        """Create a new MicroPsi agent.

        Arguments:
            agent_type (optional): the interface of this agent to its environment
            name (optional): the name of the agent
            owner (optional): the user that created this agent
            uid (optional): unique handle of the agent; if none is given, it will be generated
        """

        super(DictNodenet,
              self).__init__(name,
                             worldadapter,
                             world,
                             owner,
                             uid,
                             use_modulators=use_modulators,
                             worldadapter_instance=worldadapter_instance)

        self.stepoperators = [DictPropagate(), DictCalculate()]
        if self.use_modulators:
            self.stepoperators.append(DoernerianEmotionalModulators())
        self.stepoperators.sort(key=lambda op: op.priority)

        self._version = NODENET_VERSION  # used to check compatibility of the node net data
        self._step = 0

        self._nodes = {}
        self._nodespaces = {}

        self._nodetypes = {}
        for type, data in STANDARD_NODETYPES.items():
            self._nodetypes[type] = Nodetype(nodenet=self, **data)

        self._native_modules = {}
        for type, data in native_modules.items():
            self._native_modules[type] = Nodetype(nodenet=self, **data)

        self.nodegroups = {}

        self.initialize_nodenet({})
Esempio n. 7
0
 def reload_native_modules(self, native_modules):
     """ reloads the native-module definition, and their nodefunctions
     and afterwards reinstantiates the nodenet."""
     self._native_modules = {}
     for key in native_modules:
         self._native_modules[key] = Nodetype(nodenet=self,
                                              **native_modules[key])
     saved = self.export_json()
     self.clear()
     self.merge_data(saved, keep_uids=True)