def test_equivalent_template(self): node1 = PatternRegexNode({"template": "LEGION"}, "") node2 = PatternRegexNode({"template": "LEGION"}, "") node3 = PatternRegexNode({"template": "LEGION"}, "", userid="testuser") self.assertTrue(node1.equivalent(node2)) self.assertFalse(node1.equivalent(node3))
def test_equivalent_from(self): node1 = PatternRegexNode({"form": "今[はわ]何時"}, "") node2 = PatternRegexNode({"form": "今[はわ]何時"}, "") node3 = PatternRegexNode({"form": "今[はわ]何時"}, "", userid="testuser") self.assertTrue(node1.equivalent(node2)) self.assertFalse(node1.equivalent(node3))
def test_equivalent_pattern(self): node1 = PatternRegexNode({}, "^LEGION$") node2 = PatternRegexNode({}, "^LEGION$") node3 = PatternRegexNode({}, "^LEGION$", userid="testuser") self.assertTrue(node1.equivalent(node2)) self.assertFalse(node1.equivalent(node3))
def test_equivalent_mixed(self): node1 = PatternRegexNode({}, "^LEGION$") node2 = PatternRegexNode({}, "^LEGION$", userid="testid") node3 = PatternRegexNode({}, "^LEGION$", userid="testid2") self._client_context.brain.regex_templates.add_regex("LEGION", re.compile("^LEGION$", re.IGNORECASE)) node4 = PatternRegexNode({"template": "LEGION"}, "") node5 = PatternRegexNode({"template": "LEGION"}, "", userid="testid") node6 = PatternRegexNode({"template": "LEGION"}, "", userid="testid2") self.assertFalse(node1.equivalent(node4)) self.assertFalse(node2.equivalent(node5)) self.assertFalse(node3.equivalent(node6))
def test_equivalent_mixed(self): node1 = PatternRegexNode({}, "^LEGION$") node2 = PatternRegexNode({}, "^LEGION$", userid="testid") node3 = PatternRegexNode({}, "^LEGION$", userid="testid2") self._client_context.brain.regex_templates["LEGION"] = re.compile("^LEGION$", re.IGNORECASE) node4 = PatternRegexNode({"template": "LEGION"}, "") node5 = PatternRegexNode({"template": "LEGION"}, "", userid="testid") node6 = PatternRegexNode({"template": "LEGION"}, "", userid="testid2") self.assertFalse(node1.equivalent(node4)) self.assertFalse(node2.equivalent(node5)) self.assertFalse(node3.equivalent(node6))
def test_init_template(self): node = PatternRegexNode({"template": "LEGION"}, "") 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.assertFalse(node.is_bot()) self.assertTrue(node.is_regex()) 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(PatternRegexNode({"template": "LEGION"}, ""))) self.assertEqual( node.to_string(), "REGEX [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] template=[LEGION]" ) self.assertEqual('<regex template="LEGION"></regex>\n', node.to_xml(self._bot, self._clientid))
def test_init_template(self): node = PatternRegexNode({"template": "LEGION"}, "") 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.assertFalse(node.is_bot()) self.assertTrue(node.is_regex()) self.assertFalse(node.is_template()) self.assertFalse(node.is_that()) self.assertFalse(node.is_topic()) self.assertFalse(node.is_wildcard()) self.assertFalse(node._is_form) self.assertIsNotNone(node.children) self.assertFalse(node.has_children()) self.assertTrue( node.equivalent(PatternRegexNode({"template": "LEGION"}, "")))
def test_init_pattern(self): node = PatternRegexNode({}, "^LEGION$") 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.assertFalse(node.is_bot()) self.assertTrue(node.is_regex()) 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(PatternRegexNode({}, "^LEGION$"))) self.assertEqual( node.to_string(), "REGEX [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] pattern=[^LEGION$]" )
def test_not_at_equivalent_at_template_level(self): node1 = PatternRegexNode({}, "^LEGION$") template1 = TemplateNode() template1.append(TemplateWordNode("test1")) node1.add_template(template1) node2 = PatternRegexNode({}, "^LEGION$") template2 = TemplateNode() template2.append(TemplateWordNode("test2")) node1.add_template(template2) self.assertTrue(node1.equivalent(node2))
def test_init_template(self): node = PatternRegexNode({"template": "LEGION"}, "") 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.assertFalse(node.is_bot()) self.assertTrue(node.is_regex()) 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(PatternRegexNode({"template": "LEGION"}, "")))
def test_equivalent_at_pattern_template_missing_rhs(self): node1 = PatternRegexNode({"template": "[A-Z]"}, "^LEGION$") node2 = PatternRegexNode({}, "^LEGION$") self.assertFalse(node1.equivalent(node2))
def test_not_equivalent_at_pattern_template_level(self): node1 = PatternRegexNode({"template": ".*"}, "^LEGION$") node2 = PatternRegexNode({"template": "[A-Z]"}, "^LEGION$") self.assertFalse(node1.equivalent(node2))
def test_equivalent_none_regex(self): node1 = PatternRegexNode({}, "^LEGION$") node2 = PatternWordNode("test") self.assertFalse(node1.equivalent(node2))