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))
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))
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]")
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"))
def test_equivalent_mixed(self): self._client_context.brain._sets_collection.add_set( "TEST1", { "VALUE1": [["VALUE1"]], "VALUE2": [["VALUE2"]], "VALUE3": [["VALUE3"]], "VALUE4": [["VALUE4"]] }, "teststore") 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))
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))
def test_multi_word_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))
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]")
def test_multi_node_set(self): self._client_context.brain._sets_collection.add_set( "TEST1", {"RED": [["RED"], ["RED", "AMBER"], ["RED", "BROWN"]]}, "teststore") 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.assertEqual(result.matched_phrase, "RED") self.assertEqual(result.word_no, 0) result = node.equals(self._client_context, sentence, result.word_no + 1) self.assertTrue(result.matched) self.assertEqual(result.matched_phrase, "RED BROWN") result = node.equals(self._client_context, sentence, result.word_no + 1) self.assertTrue(result.matched) self.assertEqual(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))
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]")
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))
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))
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))
def test_equivalent_diff_set_names(self): node1 = PatternSetNode({}, "test1") node2 = PatternSetNode({}, "test2") self.assertFalse(node1.equivalent(node2))
def test_equivalent_diff_nodes(self): node1 = PatternSetNode({}, "test1") node2 = PatternWordNode("*") self.assertFalse(node1.equivalent(node2))