コード例 #1
0
ファイル: test_set.py プロジェクト: Freiza/program-y
    def test_to_string_attribs(self):
        node1 = PatternSetNode({"name": "test1"}, "")
        self.assertEqual('SET name=[TEST1]', node1.to_string(verbose=False))
        self.assertEqual('SET [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] name=[TEST1]', node1.to_string(verbose=True))

        node2 = PatternSetNode({"name": "test1"}, "", userid="testid")
        self.assertEqual('SET name=[TEST1]', node2.to_string(verbose=False))
        self.assertEqual('SET [testid] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] name=[TEST1]', node2.to_string(verbose=True))
        pass
コード例 #2
0
    def test_equals_attribs(self):
        self._client_context.brain._sets_collection.add_set(
            "TEST1", {
                "VALUE1": [["VALUE1"]],
                "VALUE2": [["VALUE2"]],
                "VALUE3": [["VALUE3"]],
                "VALUE4": [["VALUE4"]]
            }, "teststore")

        node1 = PatternSetNode({"name": "test1"}, "")
        node2 = PatternSetNode({"name": "test1"}, "", userid="testid")
        node3 = PatternSetNode({"name": "test1"}, "", userid="testid2")

        match1 = node1.equals(self._client_context,
                              Sentence(self._client_context, 'VALUE1'), 0)
        self.assertIsNotNone(match1)
        self.assertTrue(match1.matched)

        match2 = node2.equals(self._client_context,
                              Sentence(self._client_context, 'VALUE1'), 0)
        self.assertIsNotNone(match2)
        self.assertTrue(match2.matched)

        match3 = node3.equals(self._client_context,
                              Sentence(self._client_context, 'VALUE1'), 0)
        self.assertIsNotNone(match3)
        self.assertFalse(match3.matched)
コード例 #3
0
    def test_equals_attribs(self):
        loader = SetLoader()

        self._client_context.brain._sets_collection._sets["TEST1"] = loader.load_from_text("""
                    VALUE1
                    VALUE2
                    VALUE3
                    VALUE4
                """)

        node1 = PatternSetNode({"name": "test1"}, "")
        node2 = PatternSetNode({"name": "test1"}, "", userid="testid")
        node3 = PatternSetNode({"name": "test1"}, "", userid="testid2")

        match1 = node1.equals(self._client_context, Sentence(self._client_context.brain.tokenizer, 'VALUE1'), 0)
        self.assertIsNotNone(match1)
        self.assertTrue(match1.matched)

        match2 = node2.equals(self._client_context, Sentence(self._client_context.brain.tokenizer, 'VALUE1'), 0)
        self.assertIsNotNone(match2)
        self.assertTrue(match2.matched)

        match3 = node3.equals(self._client_context, Sentence(self._client_context.brain.tokenizer, 'VALUE1'), 0)
        self.assertIsNotNone(match3)
        self.assertFalse(match3.matched)
コード例 #4
0
    def test_number(self):
        node = PatternSetNode("NUMBER")
        self.assertIsNotNone(node)

        sentence = Sentence("12 XY")

        result = node.equals(self.bot, "testid", sentence, 0)
        self.assertTrue(result.matched)

        result = node.equals(self.bot, "testid", sentence, result.word_no + 1)
        self.assertFalse(result.matched)
コード例 #5
0
    def test_words_in_set_multi_words_mismatch(self):
        self._client_context.brain._sets_collection.add_set(
            "TEST1", {"VALUE1": [["VALUE1", "VALUE2"]]}, "teststore")

        node1 = PatternSetNode({}, "TEST1")

        match = node1.words_in_set(
            self._client_context,
            Sentence(self._client_context, text="VALUE1 VALUE3"), 0)
        self.assertIsNotNone(match)
        self.assertFalse(match.matched)
コード例 #6
0
    def test_number(self):
        self._client_context.brain.dynamics.add_dynamic_set('number', "programy.dynamic.sets.numeric.IsNumeric", None)

        node = PatternSetNode([], "NUMBER")
        self.assertIsNotNone(node)

        sentence = Sentence(self._client_context.brain.tokenizer, "12 XY")

        result = node.equals(self._client_context, sentence, 0)
        self.assertTrue(result.matched)

        result = node.equals(self._client_context, sentence, result.word_no+1)
        self.assertFalse(result.matched)
コード例 #7
0
 def node_from_element(element):
     if element.tag == 'set':
         if 'name' in element.attrib:
             return PatternSetNode(element.attrib['name'])
         else:
             return PatternSetNode(TextUtils.strip_whitespace(element.text))
     elif element.tag == 'bot':
         if 'name' in element.attrib:
             return PatternBotNode(element.attrib['name'])
         else:
             return PatternBotNode(TextUtils.strip_whitespace(element.text))
     else:
         raise ParserException("Invalid parser graph node <%s>" % element.tag, xml_element=element)
コード例 #8
0
    def test_to_xml_attribs(self):
        node1 = PatternSetNode({"name": "test1"}, "")
        self.assertEqual('<set name="TEST1">\n</set>', node1.to_xml(self._client_context))
        self.assertEqual('<set userid="*" name="TEST1">\n</set>', node1.to_xml(self._client_context, include_user=True))

        node2 = PatternSetNode({"name": "test1"}, "", userid="testid")
        self.assertEqual('<set name="TEST1">\n</set>', node2.to_xml(self._client_context))
        self.assertEqual('<set userid="testid" name="TEST1">\n</set>', node2.to_xml(self._client_context, include_user=True))
コード例 #9
0
    def test_synset(self):
        self._client_context.brain.dynamics.add_dynamic_set(
            'synset', "programy.dynamic.sets.synsets.IsSynset", None)

        node = PatternSetNode({'similar': 'HACK'}, "SYNSET")
        self.assertIsNotNone(node)

        sentence = Sentence(self._client_context, "CHOP")

        result = node.equals(self._client_context, sentence, 0)
        self.assertTrue(result.matched)

        result = node.equals(self._client_context, sentence,
                             result.word_no + 1)
        self.assertFalse(result.matched)
コード例 #10
0
ファイル: test_set.py プロジェクト: Doshmaku/program-y
    def test_init(self):
        node = PatternSetNode("test1")
        self.assertIsNotNone(node)

        self.assertFalse(node.is_root())
        self.assertFalse(node.is_priority())
        self.assertFalse(node.is_wildcard())
        self.assertFalse(node.is_zero_or_more())
        self.assertFalse(node.is_one_or_more())
        self.assertIsNotNone(node.children)
        self.assertFalse(node.has_children())

        self.assertTrue(node.equivalent(PatternSetNode("test1")))
        self.assertFalse(node.is_root())
        self.assertEqual(node.to_string(), "SET [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] name=[TEST1]")
コード例 #11
0
    def test_set_node_exists(self):
        node = PatternNode()
        self.assertIsNotNone(node)

        new_node1 = PatternSetNode([], "test")

        self.assertIsNone(node._set_node_exist(new_node1))
        node.add_child(new_node1)
        self.assertIsNotNone(node._set_node_exist(new_node1))

        new_node2 = PatternSetNode([], "test", userid="testid2")

        self.assertIsNone(node._set_node_exist(new_node2))
        node.add_child(new_node2)
        self.assertIsNotNone(node._set_node_exist(new_node2))
コード例 #12
0
    def test_dump_no_caller(self):
        global str1

        node = PatternNode()
        self.assertIsNotNone(node)

        node.add_child(PatternWordNode("test"))
        node.add_child(PatternPriorityWordNode("pTest"))
        node.add_child(PatternZeroOrMoreWildCardNode("^"))
        node.add_child(PatternZeroOrMoreWildCardNode("#"))
        node.add_child(PatternOneOrMoreWildCardNode("*"))
        node.add_child(PatternOneOrMoreWildCardNode("_"))
        node.add_child(PatternTemplateNode(TemplateNode()))
        node.add_child(PatternSetNode({"name": "test"}, "testtext"))
        node.add_child(PatternISetNode({"name": "test"}, "testtext"))
        node.add_child(PatternBotNode({"name": "test"}, "testtext"))
        node.add_child(PatternRegexNode({"name": ".*"}, "testtext"))

        node.dump("", output_func1)

        self.assertEquals(
            "NODE [*] [P(1)^(1)#(1)C(5)_(1)*(1)To(0)Th(0)Te(1)]	"
            "PWORD [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] word=[pTest]	"
            "ZEROORMORE [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] wildcard=[^]	"
            "ZEROORMORE [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] wildcard=[#]	"
            "ONEORMORE [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] wildcard=[_]	"
            "ONEORMORE [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] wildcard=[*]	"
            "PTEMPLATE [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(1)]	"
            "WORD [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] word=[test]	"
            "SET [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] name=[TESTTEXT]	"
            "ISET [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] words=[TESTTEXT]	"
            "BOT [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] property=[test]	"
            "REGEX [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] pattern=[testtext]",
            str1)
コード例 #13
0
    def test_remove_set_node(self):
        node = PatternNode()
        self.assertIsNotNone(node)

        child_node = PatternSetNode({"name": "test"}, "testtext")
        node.add_child(child_node)
        self.assertTrue(node._set_node_exist(child_node))

        node._remove_node(child_node)
        self.assertFalse(node._set_node_exist(child_node))
コード例 #14
0
    def test_to_string_attribs(self):
        node1 = PatternSetNode({"name": "test1"}, "")
        self.assertEqual('SET name=[TEST1]', node1.to_string(verbose=False))
        self.assertEqual(
            'SET [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] name=[TEST1]',
            node1.to_string(verbose=True))

        node2 = PatternSetNode({"name": "test1"}, "", userid="testid")
        self.assertEqual('SET name=[TEST1]', node2.to_string(verbose=False))
        self.assertEqual(
            'SET [testid] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] name=[TEST1]',
            node2.to_string(verbose=True))
コード例 #15
0
    def test_remove_set_node(self):
        node = PatternNode()
        self.assertIsNotNone(node)

        child_node = PatternSetNode([], "test")
        node.add_child(child_node)
        self.assertEqual(1, len(node.children))

        node._remove_node(child_node)
        self.assertEqual(0, len(node.children))
コード例 #16
0
    def test_equivalent_attribs(self):
        node1 = PatternSetNode({"name": "test1"}, "")
        node2 = PatternSetNode({"name": "test1"}, "")
        node3 = PatternSetNode({"name": "test1"}, "", userid="testid")

        self.assertTrue(node1.equivalent(node2))
        self.assertFalse(node1.equivalent(node3))
コード例 #17
0
    def test_equivalent_text(self):
        node1 = PatternSetNode({}, "test1")
        node2 = PatternSetNode({}, "test1")
        node3 = PatternSetNode({}, "test1", userid="testid")

        self.assertTrue(node1.equivalent(node2))
        self.assertFalse(node1.equivalent(node3))
コード例 #18
0
 def test_init_with_attribs_with_additional(self):
     node = PatternSetNode(
         {
             "name": "test1",
             "similar": "hack",
             "pos": "word",
             "weight": "0.8"
         }, "")
     self.assertIsNotNone(node)
     self.assertEqual("TEST1", node.set_name)
     self.assertEqual("HACK", node.additional['similar'])
     self.assertEqual("WORD", node.additional['pos'])
     self.assertEqual("0.8", node.additional['weight'])
コード例 #19
0
    def test_spaces(self):
        self.bot.brain.sets.add_set(
            "TEST1", ["VALUE1 TEXT1", "VALUE2 TEXT2", "VALUE3 TEXT3"])

        node = PatternSetNode("test1")
        self.assertIsNotNone(node)

        self.assertTrue(node.equivalent(PatternSetNode("TEST1")))
        self.assertTrue(node.equals(self.bot, "testid", "VALUE1 TEXT1"))
        self.assertTrue(node.equals(self.bot, "testid", "VALUE2 TEXT2"))
        self.assertTrue(node.equals(self.bot, "testid", "VALUE3 TEXT3"))
コード例 #20
0
    def test_dump_with_caller(self):
        node = PatternNode()
        self.assertIsNotNone(node)

        node.add_child(PatternWordNode("test"))
        node.add_child(PatternPriorityWordNode("pTest"))
        node.add_child(PatternZeroOrMoreWildCardNode("^"))
        node.add_child(PatternZeroOrMoreWildCardNode("#"))
        node.add_child(PatternOneOrMoreWildCardNode("*"))
        node.add_child(PatternOneOrMoreWildCardNode("_"))
        node.add_child(PatternTemplateNode(TemplateNode()))
        node.add_child(PatternSetNode({"name": "test"}, "testtext"))
        node.add_child(PatternISetNode({"name": "test"}, "testtext"))
        node.add_child(PatternBotNode({"name": "test"}, "testtext"))
        node.add_child(PatternRegexNode({"name": ".*"}, "testtext"))

        node.dump("", YLogger.debug)
コード例 #21
0
    def test_to_xml_with_additional(self):
        node1 = PatternSetNode({"name": "test1", "similar": "hack"}, "")
        self.assertEqual('<set name="TEST1" similar="HACK">\n</set>',
                         node1.to_xml(self._client_context))
        self.assertEqual(
            '<set userid="*" name="TEST1" similar="HACK">\n</set>',
            node1.to_xml(self._client_context, include_user=True))

        node2 = PatternSetNode({
            "name": "test1",
            "similar": "hack"
        },
                               "",
                               userid="testid")
        self.assertEqual('<set name="TEST1" similar="HACK">\n</set>',
                         node2.to_xml(self._client_context))
        self.assertEqual(
            '<set userid="testid" name="TEST1" similar="HACK">\n</set>',
            node2.to_xml(self._client_context, include_user=True))
コード例 #22
0
    def test_to_string_with_additional(self):
        node1 = PatternSetNode({"name": "test1", "similar": "hack"}, "")
        self.assertEqual('SET name=[TEST1] similar=[HACK]',
                         node1.to_string(verbose=False))
        self.assertEqual(
            'SET [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] name=[TEST1] similar=[HACK]',
            node1.to_string(verbose=True))

        node2 = PatternSetNode({
            "name": "test1",
            "similar": "hack"
        },
                               "",
                               userid="testid")
        self.assertEqual('SET name=[TEST1] similar=[HACK]',
                         node2.to_string(verbose=False))
        self.assertEqual(
            'SET [testid] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] name=[TEST1] similar=[HACK]',
            node2.to_string(verbose=True))
コード例 #23
0
 def test_init_with_nothing(self):
     with self.assertRaises(ParserException) as raised:
         node = PatternSetNode({}, "")
     self.assertEqual(str(raised.exception), "Invalid set node, no name specified as attribute or text")
コード例 #24
0
    def test_equals_mixed(self):
        loader = SetLoader()

        self._client_context.brain._sets_collection._sets["TEST1"] = loader.load_from_text("""
                    VALUE1
                    VALUE2
                    VALUE3
                    VALUE4
                """)

        node1 = PatternSetNode({}, "test1")
        node2 = PatternSetNode({}, "test1", userid="testid")
        node3 = PatternSetNode({}, "test1", userid="testid2")

        node4 = PatternSetNode({"name": "test1"}, "")
        node5 = PatternSetNode({"name": "test1"}, "", userid="testid")
        node6 = PatternSetNode({"name": "test1"}, "", userid="testid2")

        self.assertTrue(node1.equivalent(node4))
        self.assertTrue(node2.equivalent(node5))
        self.assertTrue(node3.equivalent(node6))
コード例 #25
0
 def test_init_with_text(self):
     node = PatternSetNode({}, "test1")
     self.assertIsNotNone(node)
     self.assertEqual("TEST1", node.set_name)
コード例 #26
0
    def test_node_exists(self):

        node = PatternNode()
        self.assertIsNotNone(node)

        self.assert_child_node_exists(node, PatternWordNode("word"),
                                      PatternWordNode("word"))
        self.assert_child_node_exists(node,
                                      PatternPriorityWordNode("priority"),
                                      PatternPriorityWordNode("priority"))

        self.assert_child_node_exists(node, PatternOneOrMoreWildCardNode('_'),
                                      PatternOneOrMoreWildCardNode('_'))
        self.assert_child_node_exists(node, PatternOneOrMoreWildCardNode('*'),
                                      PatternOneOrMoreWildCardNode('*'))

        self.assert_child_node_exists(node, PatternZeroOrMoreWildCardNode('#'),
                                      PatternZeroOrMoreWildCardNode('#'))
        self.assert_child_node_exists(node, PatternZeroOrMoreWildCardNode('^'),
                                      PatternZeroOrMoreWildCardNode('^'))

        self.assert_child_node_exists(node, PatternSetNode({}, "setname"),
                                      PatternSetNode([], "setname"))
        self.assert_child_node_exists(node, PatternBotNode({}, "botname"),
                                      PatternBotNode([], "botname"))
        self.assert_child_node_exists(node, PatternISetNode({}, "word1 word2"),
                                      PatternISetNode([], "word1 word2"))

        self.assert_child_node_exists(
            node, PatternRegexNode({"pattern": "^LEGION$"}, None),
            PatternRegexNode({"pattern": "^LEGION$"}, None))
        self.assert_child_node_exists(
            node, PatternRegexNode({"template": "LEGION"}, None),
            PatternRegexNode({"template": "LEGION"}, None))

        topic1 = PatternTopicNode()
        topic2 = PatternTopicNode()
        self.assertIsNone(node._node_exists(topic1))
        node.add_topic(topic1)
        new_node = node._node_exists(topic1)
        self.assertIsNotNone(new_node)
        self.assertEquals(new_node, topic1)
        new_node = node.add_topic(topic2)
        self.assertIsNotNone(new_node)
        self.assertEquals(new_node, topic1)

        that1 = PatternThatNode()
        that2 = PatternThatNode()
        self.assertIsNone(node._node_exists(that1))
        node.add_that(that1)
        new_node = node._node_exists(that1)
        self.assertIsNotNone(new_node)
        self.assertEquals(new_node, that1)
        new_node = node.add_that(that2)
        self.assertIsNotNone(new_node)
        self.assertEquals(new_node, that1)

        template1 = PatternTemplateNode(None)
        template2 = PatternTemplateNode(None)
        self.assertIsNone(node._node_exists(template1))
        node.add_template(template1)
        new_node = node._node_exists(template1)
        self.assertIsNotNone(new_node)
        self.assertEquals(new_node, template1)
        new_node = node.add_template(template2)
        self.assertIsNotNone(new_node)
        self.assertEquals(new_node, template1)

        node.dump("")

        self.assertEqual(
            node.to_xml(None, None), """<priority word="priority"></priority>
<zerormore wildcard="^">
</zerormore>
<zerormore wildcard="#">
</zerormore>
<oneormore wildcard="_">
</oneormore>
<oneormore wildcard="*">
</oneormore>
<topic></topic>
<that></that>
<template></template>
<word word="word"></word>
<set name="SETNAME">
</set><bot property="botname">
</bot><iset words="WORD1 WORD2"></iset>
<regex pattern="^LEGION$"></regex>
<regex template="LEGION"></regex>
""")
コード例 #27
0
ファイル: test_set.py プロジェクト: ystanwar/program-y
    def test_init(self):
        node = PatternSetNode("test1")
        self.assertIsNotNone(node)

        self.assertFalse(node.is_root())
        self.assertFalse(node.is_priority())
        self.assertFalse(node.is_wildcard())
        self.assertFalse(node.is_zero_or_more())
        self.assertFalse(node.is_one_or_more())
        self.assertIsNotNone(node.children)
        self.assertFalse(node.has_children())

        self.assertTrue(node.equivalent(PatternSetNode("test1")))
        self.assertFalse(node.is_root())
        self.assertEqual(
            node.to_string(),
            "SET [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] name=[TEST1]")
コード例 #28
0
    def test_number(self):
        node = PatternSetNode("NUMBER")
        self.assertIsNotNone(node)

        self.assertTrue(node.equals(self.bot, "testid", "12"))
        self.assertFalse(node.equals(self.bot, "testid", "XY"))
コード例 #29
0
    def test_init(self):
        loader = SetLoader()

        self._client_context.brain._sets_collection._sets["TEST1"] = loader.load_from_text("""
            VALUE1
            VALUE2
            VALUE3
            VALUE4
        """)

        node = PatternSetNode([], "test1")
        self.assertIsNotNone(node)

        self.assertFalse(node.is_root())
        self.assertFalse(node.is_priority())
        self.assertFalse(node.is_wildcard())
        self.assertFalse(node.is_zero_or_more())
        self.assertFalse(node.is_one_or_more())
        self.assertTrue(node.is_set())
        self.assertFalse(node.is_bot())
        self.assertFalse(node.is_template())
        self.assertFalse(node.is_that())
        self.assertFalse(node.is_topic())
        self.assertFalse(node.is_wildcard())

        self.assertIsNotNone(node.children)
        self.assertFalse(node.has_children())

        sentence = Sentence(self._client_context.brain.tokenizer, "VALUE1 VALUE2 VALUE3 VALUE4")

        self.assertTrue(node.equivalent(PatternSetNode([], "TEST1")))
        result = node.equals(self._client_context, sentence, 0)
        self.assertTrue(result.matched)
        result = node.equals(self._client_context, sentence, 1)
        self.assertTrue(result.matched)
        result = node.equals(self._client_context, sentence, 2)
        self.assertTrue(result.matched)
        result = node.equals(self._client_context, sentence, 3)
        self.assertTrue(result.matched)
        self.assertEqual(node.to_string(), "SET [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] name=[TEST1]")
        self.assertEqual('<set name="TEST1">\n</set>', node.to_xml(self._client_context))
コード例 #30
0
 def test_init_with_attribs(self):
     node = PatternSetNode({"name": "test1"}, "")
     self.assertIsNotNone(node)
     self.assertEqual("TEST1", node.set_name)
コード例 #31
0
    def test_multi_node_set(self):
        loader = SetLoader()

        self._client_context.brain._sets_collection._sets["TEST1"] = loader.load_from_text("""
            Red
            Red Amber
            Red Brown
        """)

        node = PatternSetNode([], "test1")
        self.assertIsNotNone(node)

        self.assertFalse(node.is_root())
        self.assertFalse(node.is_priority())
        self.assertFalse(node.is_wildcard())
        self.assertFalse(node.is_zero_or_more())
        self.assertFalse(node.is_one_or_more())
        self.assertTrue(node.is_set())
        self.assertFalse(node.is_bot())
        self.assertFalse(node.is_template())
        self.assertFalse(node.is_that())
        self.assertFalse(node.is_topic())
        self.assertFalse(node.is_wildcard())

        self.assertTrue(node.equivalent(PatternSetNode([], "TEST1")))
        self.assertIsNotNone(node.children)
        self.assertFalse(node.has_children())

        sentence = Sentence(self._client_context.brain.tokenizer, "RED Red BROWN red AMBER")

        result = node.equals(self._client_context, sentence, 0)
        self.assertTrue(result.matched)
        self.assertEquals(result.matched_phrase, "Red")
        self.assertEquals(result.word_no, 0)

        result = node.equals(self._client_context, sentence, result.word_no+1)
        self.assertTrue(result.matched)
        self.assertEquals(result.matched_phrase, "Red Brown")

        result = node.equals(self._client_context, sentence, result.word_no+1)
        self.assertTrue(result.matched)
        self.assertEquals(result.matched_phrase, "Red Amber")

        self.assertEqual(node.to_string(), "SET [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] name=[TEST1]")
        self.assertEqual('<set name="TEST1">\n</set>', node.to_xml(self._client_context))
コード例 #32
0
    def test_init(self):
        self.bot.brain.sets.add_set("TEST1", ["VALUE1", "VALUE2", "VALUE3"])

        node = PatternSetNode("test1")
        self.assertIsNotNone(node)

        self.assertFalse(node.is_root())
        self.assertFalse(node.is_priority())
        self.assertFalse(node.is_wildcard())
        self.assertFalse(node.is_zero_or_more())
        self.assertFalse(node.is_one_or_more())
        self.assertTrue(node.is_set())
        self.assertFalse(node.is_bot())
        self.assertFalse(node.is_template())
        self.assertFalse(node.is_that())
        self.assertFalse(node.is_topic())
        self.assertFalse(node.is_wildcard())

        self.assertIsNotNone(node.children)
        self.assertFalse(node.has_children())

        self.assertTrue(node.equivalent(PatternSetNode("TEST1")))
        self.assertTrue(node.equals(self.bot, "testid", "VALUE1"))
        self.assertTrue(node.equals(self.bot, "testid", "VALUE2"))
        self.assertTrue(node.equals(self.bot, "testid", "VALUE3"))
        self.assertFalse(node.equals(self.bot, "testid", "VALUE4"))
        self.assertEqual(
            node.to_string(),
            "SET [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] words=[TEST1]")