예제 #1
0
 def testPythonRules(self):
     rulesParser = RulesParser()
     rules = rulesParser.getRules()
     for rule in rules:
         mathIdentifiers = rule.getIdentifiers()
         rule.math = None
         pythonIdentifiers = rule.getIdentifiers()
         self.assertEquals(mathIdentifiers, pythonIdentifiers)
예제 #2
0
 def testDelRules(self):
     rulesParser = RulesParser()
     rulesParser.delRules = set([Rule("nltcsRuleT02", None)])
     ver = Verification("test/moleculeH2O.IN.xml", rulesParser.getRules())
     tree = ver.run()
     xsd.assertValid(tree)
     numberElements = tree.xpath('//xsams:NumberOfVerificationByRule',
                                 namespaces={"xsams": XSAMS_NS})
     self.assertEquals(3, len(numberElements))
예제 #3
0
 def testRunRulesTransition3MaxOK(self):
     rulesParser = RulesParser()
     rulesParser.useRules = set(
         [Rule("atomRuleT01", None),
          Rule("atomRuleT02", None)])
     ver = Verification("test/transition3OK.IN.xml", rulesParser.getRules())
     tree = ver.run(report=True, bad=None)
     xsd.assertValid(tree)
     self.assertEquals(
         etree.tostring(objectify.fromstring(
             open("test/transition3OK.OUT.MAX.xml").read()),
                        pretty_print=True),
         etree.tostring(tree, pretty_print=True))
예제 #4
0
 def testAddRules(self):
     rulesParser = RulesParser()
     rulesParser.addRules = set([Rule("a", "nltcs:J < 9")])
     ver = Verification("test/moleculeH2O.IN.xml", rulesParser.getRules())
     tree = ver.run()
     xsd.assertValid(tree)
     numberElements = tree.xpath(
         '//xsams:NumberOfVerificationByRule[@name = "aRuleS01"]',
         namespaces={"xsams": XSAMS_NS})
     self.assertEquals(1, len(numberElements))
     for numberElement in numberElements:
         self.assertEquals("5", numberElement.attrib["correct"])
         self.assertEquals("3", numberElement.attrib["incorrect"])
예제 #5
0
 def testRunRulesTransition1MinOK(self):
     rulesParser = RulesParser()
     ruleT02 = rulesParser.getRule("atomRuleT02").copy()
     ruleT02.name = "atomRuleT02F"
     ruleT02.forInChIList = [re.escape("InChI=1S/Fe/q+3/")]
     rulesParser.useRules.add(ruleT02)
     ver = Verification("test/transition1OK.IN.xml", rulesParser.getRules())
     #printRules(ver.rules)
     tree = ver.run(report=False, bad=True)
     #with self.assertRaisesRegexp(etree.DocumentInvalid, "Element '{%s}atomRuleT02F': This element is not expected." % XSAMS_NS):
     xsd.assertValid(tree)
     #etree.parse("test/transition1OK.OUT.MIN.xml", etree.XMLParser(remove_blank_text=True))
     #objectify.fromstring(open("test/transition1OK.OUT.MIN.xml").read())
     self.assertEquals(
         etree.tostring(objectify.fromstring(
             open("test/transition1OK.OUT.MIN.xml").read()),
                        pretty_print=True),
         etree.tostring(tree, pretty_print=True))
예제 #6
0
 def testGetRules(self):
     rules = RulesParser().getRules()
     for rule in rules:
         self.assertNotEquals(rule.name.find("Rule"), -1)
         self.assertTrue(rule.python.find('#UpperStateRef'))