Esempio n. 1
0
 def testConceptNetworkAddNodeTwice(self):
     "One node added twice implies an incremented occ"
     cn = ConceptNetwork()
     node = Node("Salut")
     cn.addNode(node)
     cn.addNode(node)
     self.assertEqual(2, node.getOcc())
Esempio n. 2
0
    def testDumpLoad(self):
        "Test the saving of the Concept Network"
        conceptNetwork = ConceptNetwork()
        nodeFrom = Node("From")
        nodeTo1 = Node("To1")
        conceptNetwork.addNode(nodeFrom)
        conceptNetwork.addNode(nodeTo1)
        conceptNetwork.addLink(nodeFrom, nodeTo1)
        state = State(1)
        conceptNetwork.addState(state)
        state.setNodeActivationValue(100, "From")
        conceptNetwork.fastPropagateActivations(state, 2)
        av = state.getNodeActivationValue("To1")

        f = open("cntest.data", "w")
        try:
            conceptNetwork.dump(f, 0)
        finally:
            f.close()

        f = open("cntest.data")
        try:
            cnLoaded = pickle.load(f)
        finally:
            f.close()

        import os
        os.remove("cntest.data")

        # No state is dumped!
        self.assertRaises(KeyError, cnLoaded.getState, 1)

        nodeLoaded = cnLoaded.getNode("To1")
        self.assertTrue(nodeLoaded)
Esempio n. 3
0
 def testGetNodeStateTyped(self):
     "Test getting a node state with a type"
     cn = ConceptNetwork()
     node1 = Node("Salut.")
     cn.addNode(node1)
     state = State(1)
     cn.addState(state)
     state.setNodeActivationValue(100, "Salut.", "basic")
     self.assertEqual(100, state.getNodeActivationValue("Salut.", "basic"))
Esempio n. 4
0
 def testLinkWeight(self):
     "Test the weight of a link"
     cn = ConceptNetwork()
     state = State(1)
     cn.addState(state)
     nodeFrom = Node("From")
     nodeTo = Node("To")
     link = cn.addLink(nodeFrom, nodeTo)
     self.assertEqual(1, link.getWeight())
Esempio n. 5
0
 def testRemoveState(self):
     "Test ConceptNetwork.removeStatesExcept()"
     conceptNetwork = ConceptNetwork()
     state1 = State(1)
     state2 = State(2)
     conceptNetwork.addState(state1)
     conceptNetwork.addState(state2)
     conceptNetwork.removeStatesExcept(2)
     self.assertEqual(state2, conceptNetwork.getState(2))
Esempio n. 6
0
 def __init__(self, botname="Ector", username="******"):
     self.botname = botname
     self.username = username
     if os.path.exists("cn.pkl"):
         f = open("cn.pkl", "r")
         self.cn = pickle.load(f)
         f.close()
     else:
         self.cn = ConceptNetwork()
     self.loadUserState()
Esempio n. 7
0
 def testCoOccLink(self):
     "Twice the same link -> its co-occurrence is incremented"
     conceptNetwork = ConceptNetwork()
     nodeFrom = Node("from")
     nodeTo = Node("to")
     conceptNetwork.addNode(nodeFrom)
     conceptNetwork.addNode(nodeTo)
     conceptNetwork.addLink(nodeFrom, nodeTo)
     link = conceptNetwork.addLink(nodeFrom, nodeTo)
     self.assertEqual(2, link.getCoOcc())
Esempio n. 8
0
 def testConceptNetworkGetLinksTo(self):
     "Get links to a node"
     cn = ConceptNetwork()
     nodeFrom = Node("From")
     nodeTo1 = Node("To1")
     nodeTo2 = Node("To2")
     nodeLabel = Node("Label")
     cn.addLink(nodeFrom, nodeTo1)
     cn.addLink(nodeFrom, nodeTo2)
     cn.addLink(nodeFrom, nodeTo2, nodeLabel)
     links = cn.getLinksTo(nodeTo2)
     self.assertEqual(2, len(links))
Esempio n. 9
0
 def testConceptNetworkGetLinksLabeledOrTo(self):
     "Get links with a label or to that label"
     cn = ConceptNetwork()
     nodeFrom = Node("From")
     nodeTo1 = Node("To1")
     nodeTo2 = Node("To2")
     nodeLabel = Node("Label")
     cn.addLink(nodeFrom, nodeTo1)
     cn.addLink(nodeFrom, nodeLabel)
     cn.addLink(nodeFrom, nodeTo2, nodeLabel)
     links = cn.getLinksLabeledOrTo(nodeLabel)
     self.assertEqual(2, len(links))
Esempio n. 10
0
 def testConceptNetworkGetLinksFrom(self):
     "Get links from a node"
     cn = ConceptNetwork()
     nodeFrom = Node("From")
     nodeTo1 = Node("To1")
     nodeTo2 = Node("To2")
     nodeTo3 = Node("To3")
     nodeLabel = Node("Label")
     cn.addLink(nodeFrom, nodeTo1)
     cn.addLink(nodeFrom, nodeTo2)
     cn.addLink(nodeFrom, nodeTo3, nodeLabel)
     links = cn.getLinksFrom(nodeFrom)
     self.assertEqual(3, len(links))
Esempio n. 11
0
 def testFastPropagation(self):
     "Test the propagation"
     conceptNetwork = ConceptNetwork()
     nodeFrom = Node("From")
     nodeTo1 = Node("To1")
     conceptNetwork.addNode(nodeFrom)
     conceptNetwork.addNode(nodeTo1)
     conceptNetwork.addLink(nodeFrom, nodeTo1)
     state = State(1)
     conceptNetwork.addState(state)
     state.setNodeActivationValue(100, "From", "basic")
     conceptNetwork.fastPropagateActivations(state, 2)
     self.assertEqual(True, state.getNodeActivationValue("To1") > 50)
Esempio n. 12
0
    def testAging(self):
        """See if a old node state is removed when too old.

        When a NodeState has more than 50 propagations, and that it is set to zero,
        it has to disappear from the state of the ConceptNetwork."""
        conceptNetwork = ConceptNetwork()
        nodeFrom = Node("From")
        nodeTo1 = Node("To1")
        conceptNetwork.addNode(nodeFrom)
        conceptNetwork.addNode(nodeTo1)
        conceptNetwork.addLink(nodeFrom, nodeTo1)
        state = State(1)
        conceptNetwork.addState(state)
        state.setNodeActivationValue(100, "From", "basic")
        for i in range(0, 51):
            conceptNetwork.fastPropagateActivations(state, 2)
        state.setNodeActivationValue(0, "From", "basic")
        self.assertRaises(KeyError, state.nodeState.__getitem__,
                          ("From", "basic"))
Esempio n. 13
0
    def testConceptNetworkGetNodeTyped(self):
        "Test getting a node with a type"

        class TestNode(Node):
            __type = "test"
            __decay = 35

            def __init__(self, symbol, occ=1):
                Node.__init__(self, symbol, occ=occ)

            def getTypeName(self):
                return self.__type

            def getDecay(self):
                return self.__decay

        cn = ConceptNetwork()
        node1 = TestNode("Salut.")
        cn.addNode(node1)
        self.assertEqual(node1, cn.getNode("Salut.", "test"))
        self.assertEqual("test", node1.getTypeName())
Esempio n. 14
0
 def testConceptNetworkGetBadLink(self):
     "A link has at least 2 nodes"
     cn = ConceptNetwork()
     self.assertRaises(ConceptNetworkIncompleteLink, cn.getLink, None, None)
Esempio n. 15
0
 def testConceptNetworkGetUnkownNode(self):
     "Test whether an unknown node raises an exception"
     cn = ConceptNetwork()
     self.assertRaises(ConceptNetworkUnknownNode, cn.getNode, "Nimp")
Esempio n. 16
0
 def testConceptNetworkGetNode(self):
     "Test getting a node from a Concept Network after adding it"
     cn = ConceptNetwork()
     node1 = Node("Salut")
     cn.addNode(node1)
     self.assertEqual(node1, cn.getNode("Salut", "basic"))