def test_init(self): self.bot.brain.properties.add_property("test1", "value1") node = PatternBotNode("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.assertFalse(node.is_set()) self.assertTrue(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(PatternBotNode("test1"))) self.assertFalse(node.equivalent(PatternBotNode("test2"))) sentence = Sentence("value1 value2") result = node.equals(self.bot, "testid", sentence, 0) self.assertTrue(result.matched) self.assertEquals(0, result.word_no) result = node.equals(self.bot, "testid", sentence, 1) self.assertFalse(result.matched) self.assertEquals(1, result.word_no) self.assertEqual( node.to_string(), "BOT [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] property=[test1]")
def test_init(self): self._client_context.brain.properties.add_property("test1", "value1") node = PatternBotNode({}, "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.assertFalse(node.is_set()) self.assertTrue(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(PatternBotNode([], "test1"))) self.assertFalse(node.equivalent(PatternBotNode([], "test2"))) sentence = Sentence(self._client_context.brain.tokenizer, "value1 value2") result = node.equals(self._client_context, sentence, 0) self.assertTrue(result.matched) self.assertEqual(0, result.word_no) result = node.equals(self._client_context, sentence, 1) self.assertFalse(result.matched) self.assertEqual(1, result.word_no) self.assertEqual(node.to_string(), "BOT [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] property=[test1]") self.assertEqual('<bot property="test1">\n</bot>', node.to_xml(self._client_context))
def test_init(self): self.bot.brain.properties.set_property("test1", "value1") node = PatternBotNode("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.assertFalse(node.is_set()) self.assertTrue(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(PatternBotNode("test1"))) self.assertFalse(node.equivalent(PatternBotNode("test2"))) self.assertTrue(node.equals(self.bot, "testid", "value1")) self.assertFalse(node.equals(self.bot, "testid", "value2")) self.assertEqual( node.to_string(), "BOT [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] property=[test1]")
def test_equals(self): node = PatternBotNode({}, "test1") self.assertIsNotNone(node) self._client_context.brain.properties.add_property("test1", "value1") sentence = Sentence(self._client_context, "value1 value2") result = node.equals(self._client_context, sentence, 0) self.assertTrue(result.matched) self.assertEqual(0, result.word_no) result = node.equals(self._client_context, sentence, 1) self.assertFalse(result.matched) self.assertEqual(1, result.word_no)
def test_not_equals(self): node = PatternBotNode({}, "test1") self.assertIsNotNone(node) sentence = Sentence(self._client_context, "value1 value2") result = node.equals(self._client_context, sentence, 0) self.assertFalse(result.matched)
def test_equivalent_property(self): self._client_context.brain.properties.add_property("test1", "value1") bot1 = PatternBotNode({"property": "test1"}, None) bot2 = PatternBotNode({"property": "test1"}, None, userid="testid") bot3 = PatternBotNode({"property": "test1"}, None, userid="testid2") match1 = bot1.equals(self._client_context, Sentence(self._client_context.brain.tokenizer, 'value1'), 0) self.assertIsNotNone(match1) self.assertTrue(match1.matched) match2 = bot2.equals(self._client_context, Sentence(self._client_context.brain.tokenizer, 'value1'), 0) self.assertIsNotNone(match2) self.assertTrue(match2.matched) match3 = bot3.equals(self._client_context, Sentence(self._client_context.brain.tokenizer, 'value1'), 0) self.assertIsNotNone(match3) self.assertFalse(match3.matched)
def test_equivalent_name_jp(self): self._client_context.brain.properties.add_property("test1", "ボットくん") bot1 = PatternBotNode({"name": "test1"}, None) bot2 = PatternBotNode({"name": "test1"}, None, userid="testid") bot3 = PatternBotNode({"name": "test1"}, None, userid="testid2") match1 = bot1.equals( self._client_context, Sentence(self._client_context.brain.tokenizer, 'ボットくん'), 0) self.assertIsNotNone(match1) self.assertTrue(match1.matched) match2 = bot2.equals( self._client_context, Sentence(self._client_context.brain.tokenizer, 'ボットくん'), 0) self.assertIsNotNone(match2) self.assertTrue(match2.matched) match3 = bot3.equals( self._client_context, Sentence(self._client_context.brain.tokenizer, 'ボットくん'), 0) self.assertIsNotNone(match3) self.assertFalse(match3.matched) match4 = bot1.equals( self._client_context, Sentence(self._client_context.brain.tokenizer, 'ボット'), 0) self.assertIsNotNone(match4) match5 = bot1.equals( self._client_context, Sentence(self._client_context.brain.tokenizer, 'ボットく'), 0) self.assertIsNotNone(match5) match6 = bot1.equals( self._client_context, Sentence(self._client_context.brain.tokenizer, 'ボットくんへ'), 0) self.assertIsNotNone(match6)