|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SaxDefaultHandler | Line # 44 | 103 | 37 | 67,2% |
0.67153287
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
(134) | |||
Result | |||
0.67153287
|
org.qedeq.kernel.bo.module.VisitorContextTest.testContext org.qedeq.kernel.bo.module.VisitorContextTest.testContext | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.ExtendedGenerateLatexTest.testGeneration org.qedeq.kernel.bo.latex.ExtendedGenerateLatexTest.testGeneration | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.control.QedeqBoFactoryTest.testCreateStringQedeq5 org.qedeq.kernel.bo.control.QedeqBoFactoryTest.testCreateStringQedeq5 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.control.QedeqBoFactoryTest.testCreateStringQedeq4 org.qedeq.kernel.bo.control.QedeqBoFactoryTest.testCreateStringQedeq4 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration | 1 PASS | |
0.67153287
|
org.qedeq.kernel.xml.parser.CharsetParserTest.testParse2 org.qedeq.kernel.xml.parser.CharsetParserTest.testParse2 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative02 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative02 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative02 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative02 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative03 org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative03 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.xml.dao.GenerateXmlTest.testGeneration org.qedeq.kernel.xml.dao.GenerateXmlTest.testGeneration | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.control.QedeqBoFactoryTest.testCreateStringQedeq6 org.qedeq.kernel.bo.control.QedeqBoFactoryTest.testCreateStringQedeq6 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative02 org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative02 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.xml.parser.CharsetParserTest.testParse1 org.qedeq.kernel.xml.parser.CharsetParserTest.testParse1 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative04 org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative04 | 1 PASS | |
0.67153287
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08 | 1 PASS | |
0.6569343
|
org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_06 org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_06 | 1 PASS | |
0.6569343
|
org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_05 org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_05 | 1 PASS | |
0.6569343
|
org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_03 org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_03 | 1 PASS | |
0.6569343
|
org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_01 org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_01 | 1 PASS | |
0.6569343
|
org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_09 org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_09 | 1 PASS | |
0.6569343
|
org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_04 org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_04 | 1 PASS | |
0.6569343
|
org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_02 org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_02 | 1 PASS | |
0.6569343
|
org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_08 org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_08 | 1 PASS | |
0.6569343
|
org.qedeq.kernel.bo.control.QedeqBoFactoryTest.testCreateStringQedeq3 org.qedeq.kernel.bo.control.QedeqBoFactoryTest.testCreateStringQedeq3 | 1 PASS | |
0.6569343
|
org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_07 org.qedeq.kernel.bo.control.LoadRequiredModulesTest.testLoadRequiredModules_07 | 1 PASS | |
0.6569343
|
org.qedeq.kernel.bo.control.QedeqBoFactoryTest.testCreateStringQedeq2 org.qedeq.kernel.bo.control.QedeqBoFactoryTest.testCreateStringQedeq2 | 1 PASS | |
0.620438
|
org.qedeq.kernel.xml.parser.QedeqParserTest.testParse2 org.qedeq.kernel.xml.parser.QedeqParserTest.testParse2 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm09 org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm09 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm48 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm48 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm38 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm38 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm37 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm37 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm47 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm47 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm21 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm21 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm07 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm07 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm03 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm03 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm07 org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm07 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm13 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm13 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm50 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm50 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm01 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm01 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm43 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm43 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm49 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm49 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm44 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm44 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm30 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm30 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm12 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm12 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm16 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm16 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm33 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm33 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm39 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm39 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm40 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm40 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm01 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm01 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm28 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm28 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm11 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm11 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm05 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm05 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm04 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm04 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm26 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm26 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm22 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm22 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm02 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm02 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm04 org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm04 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm03 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm03 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm20 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm20 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm09 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm09 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm45 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm45 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm20 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm20 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm27 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm27 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm00 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm00 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm02 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm02 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm31 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm31 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm27 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm27 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm06 org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm06 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm06 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm06 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm17 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm17 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm03 org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm03 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm04 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm04 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm41 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm41 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm19 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm19 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm14 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm14 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm23 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm23 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm02 org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm02 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm24 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm24 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm34 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm34 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm35 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm35 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm07 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm07 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm46 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm46 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm15 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm15 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm05 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm05 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm05 org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm05 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm11 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm11 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm06 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm06 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm22 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm22 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm18 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm18 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm23 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm23 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm08 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm08 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm26 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm26 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm32 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm32 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm24 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm24 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm17 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm17 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm08 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm08 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm00 org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm00 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm28 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm28 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm01 org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm01 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm10 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm10 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm29 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm29 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm36 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm36 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm15 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm15 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm00 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm00 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm12 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm12 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm21 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm21 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm16 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm16 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm14 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm14 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm10 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm10 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm25 org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm25 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm08 org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm08 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm09 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm09 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm42 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm42 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm13 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm13 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm19 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm19 | 1 PASS | |
0.5182482
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm18 org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm18 | 1 PASS | |
0.48175183
|
org.qedeq.kernel.xml.parser.QedeqParserTest.testParse1 org.qedeq.kernel.xml.parser.QedeqParserTest.testParse1 | 1 PASS | |
0.05109489
|
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative00 org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative00 | 1 PASS | |
0.05109489
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative04 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative04 | 1 PASS | |
0.05109489
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative03 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative03 | 1 PASS | |
0.05109489
|
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative01 org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative01 | 1 PASS | |
0.05109489
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative03 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative03 | 1 PASS | |
0.05109489
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative04 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative04 | 1 PASS | |
1 | /* $Id: SaxDefaultHandler.java,v 1.1 2008/07/26 08:00:50 m31 Exp $ | |
2 | * | |
3 | * This file is part of the project "Hilbert II" - http://www.qedeq.org | |
4 | * | |
5 | * Copyright 2000-2008, Michael Meyling <mime@qedeq.org>. | |
6 | * | |
7 | * "Hilbert II" is free software; you can redistribute | |
8 | * it and/or modify it under the terms of the GNU General Public | |
9 | * License as published by the Free Software Foundation; either | |
10 | * version 2 of the License, or (at your option) any later version. | |
11 | * | |
12 | * This program is distributed in the hope that it will be useful, | |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | * GNU General Public License for more details. | |
16 | */ | |
17 | package org.qedeq.kernel.xml.parser; | |
18 | ||
19 | import java.util.Stack; | |
20 | ||
21 | import org.qedeq.base.trace.Trace; | |
22 | import org.qedeq.kernel.common.DefaultSourceFileExceptionList; | |
23 | import org.qedeq.kernel.common.SourceArea; | |
24 | import org.qedeq.kernel.common.SourceFileException; | |
25 | import org.qedeq.kernel.common.SourcePosition; | |
26 | import org.qedeq.kernel.xml.common.XmlSyntaxException; | |
27 | import org.xml.sax.Attributes; | |
28 | import org.xml.sax.SAXException; | |
29 | import org.xml.sax.SAXParseException; | |
30 | ||
31 | ||
32 | /** | |
33 | * Default SAX handler. Delegates SAX events to a | |
34 | * {@link org.qedeq.kernel.xml.parser.AbstractSimpleHandler} | |
35 | * which could also delegate events to other | |
36 | * {@link org.qedeq.kernel.xml.parser.AbstractSimpleHandler}s. | |
37 | * <p> | |
38 | * Before anything is parsed the method {@link #setExceptionList(DefaultSourceFileExceptionList)} | |
39 | * must be called. | |
40 | * | |
41 | * @version $Revision: 1.1 $ | |
42 | * @author Michael Meyling | |
43 | */ | |
44 | public class SaxDefaultHandler extends SimpleHandler { | |
45 | ||
46 | /** This class. */ | |
47 | private static final Class CLASS = SaxDefaultHandler.class; | |
48 | ||
49 | /** Delegate currently to this handler. */ | |
50 | private AbstractSimpleHandler currentHandler; | |
51 | ||
52 | /** Stack of previous {@link AbstractSimpleHandler}s. */ | |
53 | private Stack handlerStack = new Stack(); | |
54 | ||
55 | /** Top level handler. This handler is activated after the begin of the document. */ | |
56 | private AbstractSimpleHandler basisHandler; | |
57 | ||
58 | /** Collect errors in this object. */ | |
59 | private DefaultSourceFileExceptionList errorList; | |
60 | ||
61 | /** Buffer for combining character events. */ | |
62 | private StringBuffer buffer = new StringBuffer(2000); | |
63 | ||
64 | /** Tag level for current handler. */ | |
65 | private int level; | |
66 | ||
67 | /** Tag level for previous handlers. */ | |
68 | private Stack levelStack = new Stack(); | |
69 | ||
70 | /** Current tag name. Could be <code>null</code>. */ | |
71 | private String currentElementName; | |
72 | ||
73 | /** | |
74 | * Constructor. | |
75 | */ | |
76 | 371 | public SaxDefaultHandler() { |
77 | 371 | super(); |
78 | } | |
79 | ||
80 | /** | |
81 | * Set parse exception list. This list collects occurring parsing errors. | |
82 | * | |
83 | * @param errorList Collect errors here. | |
84 | */ | |
85 | 363 | public void setExceptionList(final DefaultSourceFileExceptionList errorList) { |
86 | 363 | this.errorList = errorList; |
87 | } | |
88 | ||
89 | /** | |
90 | * Set basis handler for documents. | |
91 | * | |
92 | * @param handler Basis handler for documents. This handler might also pass control to | |
93 | * another handler via the | |
94 | * {@link AbstractSimpleHandler#changeHandler(AbstractSimpleHandler, String, SimpleAttributes)} | |
95 | * method. | |
96 | */ | |
97 | 371 | public final void setBasisDocumentHandler(final AbstractSimpleHandler handler) { |
98 | 371 | basisHandler = handler; |
99 | 371 | currentHandler = handler; |
100 | 371 | handlerStack.clear(); |
101 | 371 | level = 0; |
102 | } | |
103 | ||
104 | /* (non-Javadoc) | |
105 | * @see org.xml.sax.helpers.DefaultHandler#startDocument() | |
106 | */ | |
107 | 363 | public final void startDocument() throws SAXException { |
108 | 363 | sendCharacters(); |
109 | 363 | currentHandler = basisHandler; |
110 | 363 | handlerStack.clear(); |
111 | 363 | level = 0; |
112 | 363 | currentElementName = null; |
113 | } | |
114 | ||
115 | /* (non-Javadoc) | |
116 | * @see org.xml.sax.helpers.DefaultHandler#endDocument() | |
117 | */ | |
118 | 363 | public final void endDocument() throws SAXException { |
119 | 363 | sendCharacters(); |
120 | 363 | currentElementName = null; |
121 | } | |
122 | ||
123 | /* (non-Javadoc) | |
124 | * @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String, java.lang.String, | |
125 | * java.lang.String, org.xml.sax.Attributes) | |
126 | */ | |
127 | 42520 | public final void startElement(final String uri, final String localName, final String qName, |
128 | final Attributes amap) throws SAXException { | |
129 | 42520 | final String method = "startElement"; |
130 | 42520 | try { |
131 | 42520 | Trace.param(CLASS, this, method, "currentHandler", currentHandler.getClass().getName()); |
132 | 42520 | Trace.param(CLASS, this, method, "localName", localName); |
133 | 42520 | Trace.param(CLASS, this, method, "qName", qName); |
134 | 42520 | if (handlerStack.empty() && level == 0) { |
135 | 363 | currentHandler.init(); |
136 | } | |
137 | 42520 | level++; |
138 | 42520 | Trace.param(CLASS, this, method, "level", level); |
139 | 42520 | sendCharacters(); |
140 | 42520 | currentElementName = localName; |
141 | 42520 | final SimpleAttributes attributes = new SimpleAttributes(); |
142 | 77924 | for (int i = 0; i < amap.getLength(); i++) { |
143 | 35404 | attributes.add(amap.getQName(i), amap.getValue(i)); |
144 | } | |
145 | 42520 | Trace.param(CLASS, this, method, "attributes", attributes); |
146 | 42520 | currentHandler.startElement(qName, attributes); |
147 | } catch (XmlSyntaxException e) { | |
148 | 0 | Trace.trace(CLASS, this, method, e); |
149 | 0 | setLocationInformation(e); |
150 | 0 | errorList.add(new SourceFileException(e, createSourceArea(), null)); |
151 | } catch (RuntimeException e) { | |
152 | 0 | Trace.trace(CLASS, this, method, e); |
153 | 0 | final XmlSyntaxException ex = XmlSyntaxException.createByRuntimeException(e); |
154 | 0 | setLocationInformation(ex); |
155 | 0 | final SourceFileException sfe = new SourceFileException(ex.getErrorCode(), |
156 | ex.getMessage(), ex, | |
157 | createSourceArea(), | |
158 | null); | |
159 | 0 | errorList.add(sfe); |
160 | } | |
161 | } | |
162 | ||
163 | /* (non-Javadoc) | |
164 | * @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String, java.lang.String, | |
165 | * java.lang.String) | |
166 | */ | |
167 | 42520 | public final void endElement(final String uri, final String localName, final String qName) |
168 | throws SAXException { | |
169 | 42520 | sendCharacters(); |
170 | 42520 | final String method = "endElement"; |
171 | 42520 | try { |
172 | 42520 | Trace.param(CLASS, this, method, "currentHandler", currentHandler.getClass().getName()); |
173 | 42520 | Trace.param(CLASS, this, method, "localName", localName); |
174 | 42520 | currentHandler.endElement(localName); |
175 | } catch (XmlSyntaxException e) { | |
176 | 0 | Trace.trace(CLASS, this, method, e); |
177 | 0 | setLocationInformation(e); |
178 | 0 | errorList.add(new SourceFileException(e, createSourceArea(), null)); |
179 | } catch (RuntimeException e) { | |
180 | 0 | Trace.trace(CLASS, this, method, e); |
181 | 0 | final XmlSyntaxException ex = XmlSyntaxException.createByRuntimeException(e); |
182 | 0 | setLocationInformation(ex); |
183 | 0 | errorList.add(new SourceFileException(ex, createSourceArea(), null)); |
184 | } | |
185 | 42520 | try { |
186 | 42520 | currentElementName = null; |
187 | 42520 | level--; |
188 | 42520 | Trace.param(CLASS, this, method, "level", level); |
189 | 42520 | if (level <= 0) { |
190 | 12564 | restoreHandler(localName); |
191 | } | |
192 | } catch (XmlSyntaxException e) { | |
193 | 0 | Trace.trace(CLASS, this, method, e); |
194 | 0 | setLocationInformation(e); |
195 | 0 | final SourceFileException sfe = new SourceFileException(e.getErrorCode(), |
196 | e.getMessage(), e, | |
197 | createSourceArea(), | |
198 | null); | |
199 | 0 | errorList.add(sfe); |
200 | } catch (RuntimeException e) { | |
201 | 0 | Trace.trace(CLASS, this, method, e); |
202 | 0 | final XmlSyntaxException ex = XmlSyntaxException.createByRuntimeException(e); |
203 | 0 | setLocationInformation(ex); |
204 | 0 | errorList.add(new SourceFileException(ex, createSourceArea(), null)); |
205 | } | |
206 | } | |
207 | ||
208 | /* (non-Javadoc) | |
209 | * @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int) | |
210 | */ | |
211 | 102377 | public final void characters(final char[] ch, final int start, final int length) { |
212 | 102377 | buffer.append(ch, start, length); |
213 | } | |
214 | ||
215 | /** | |
216 | * Sends <code>characters</code> event to current handler. | |
217 | */ | |
218 | 85766 | private void sendCharacters() { |
219 | 85766 | try { |
220 | 85766 | if (buffer.length() > 0) { |
221 | 72544 | final String str = buffer.toString().trim(); |
222 | 72544 | buffer.setLength(0); |
223 | 72544 | if (str.length() > 0) { |
224 | 9345 | currentHandler.characters(currentElementName, str); |
225 | } | |
226 | } | |
227 | } catch (XmlSyntaxException e) { | |
228 | 0 | Trace.trace(CLASS, this, "sendCharacters", e); |
229 | 0 | setLocationInformation(e); |
230 | 0 | errorList.add(new SourceFileException(e, createSourceArea(), null)); |
231 | } catch (RuntimeException e) { | |
232 | 0 | Trace.trace(CLASS, this, "sendCharacters", e); |
233 | 0 | final XmlSyntaxException ex = XmlSyntaxException.createByRuntimeException(e); |
234 | 0 | setLocationInformation(ex); |
235 | 0 | errorList.add(new SourceFileException(ex, createSourceArea(), null)); |
236 | } | |
237 | } | |
238 | ||
239 | /** | |
240 | * Change current handler to new one. The new handler is initialized by calling | |
241 | * {@link AbstractSimpleHandler#init()}. | |
242 | * The new handler also gets a {@link AbstractSimpleHandler#startElement(String, | |
243 | * SimpleAttributes)} event. | |
244 | * The current handler is stacked. After the new handler gets the appropriate endElement | |
245 | * event, the control is switched back to the old handler. | |
246 | * <p> | |
247 | * The switch back is also done, if the tag level gets back to the same number. That means | |
248 | * if for example the new handler starts with the <code><banana></code> tag, the | |
249 | * old handler is restored when the misspelled <code></bnana></code> tag occurs: | |
250 | * <p> | |
251 | * <pre> | |
252 | * <banana> | |
253 | * <one /> | |
254 | * <two > | |
255 | * <one /> | |
256 | * <one /> | |
257 | * </two > | |
258 | * </bnana> | |
259 | * </pre> | |
260 | * | |
261 | * @param newHandler This handler gets the new events. | |
262 | * @param elementName Element name. | |
263 | * @param attributes Element attributes. | |
264 | * @throws XmlSyntaxException New Handler detected a semantic problem. | |
265 | */ | |
266 | 12384 | public final void changeHandler(final AbstractSimpleHandler newHandler, |
267 | final String elementName, final SimpleAttributes attributes) | |
268 | throws XmlSyntaxException { | |
269 | 12384 | handlerStack.push(currentHandler); |
270 | 12384 | levelStack.push(new Integer(level)); |
271 | 12384 | currentHandler = newHandler; |
272 | 12384 | level = 0; |
273 | 12384 | level++; |
274 | 12384 | Trace.param(CLASS, this, "changeHandler", "level", level); |
275 | 12384 | currentHandler.init(); |
276 | 12384 | currentHandler.startElement(elementName, attributes); |
277 | } | |
278 | ||
279 | /** | |
280 | * Restore previous handler if there is any. An endElement event is also send to the restored | |
281 | * handler. | |
282 | * | |
283 | * @param elementName | |
284 | * @throws XmlSyntaxException | |
285 | */ | |
286 | 12564 | private final void restoreHandler(final String elementName) throws XmlSyntaxException { |
287 | 24948 | while (level <= 0 && !handlerStack.empty()) { |
288 | 12384 | currentHandler = (AbstractSimpleHandler) handlerStack.pop(); |
289 | 12384 | Trace.param(CLASS, this, "restoreHandler", "currentHandler", currentHandler); |
290 | 12384 | level = ((Integer) levelStack.pop()).intValue(); |
291 | 12384 | currentHandler.endElement(elementName); |
292 | 12384 | level--; |
293 | 12384 | Trace.param(CLASS, this, "restoreHandler", "level", level); |
294 | } | |
295 | 12564 | if (handlerStack.empty()) { |
296 | 816 | Trace.trace(CLASS, this, "restoreHandler", "no handler to restore"); |
297 | } | |
298 | } | |
299 | ||
300 | /** | |
301 | * Get current level. | |
302 | * | |
303 | * @return Current level. | |
304 | */ | |
305 | 3028 | public final int getLevel() { |
306 | 3028 | return level; |
307 | } | |
308 | ||
309 | /** | |
310 | * Wraps exception in new {@link SAXParseException} including parsing position information. | |
311 | * | |
312 | * @param e Exception to wrap. | |
313 | * @return Exception to throw. | |
314 | */ | |
315 | 0 | public final SAXParseException createSAXParseException(final Exception e) { |
316 | 0 | return new SAXParseException(null, getLocator(), e); |
317 | } | |
318 | ||
319 | /** | |
320 | * Creates new {@link SAXParseException} including parsing position information. | |
321 | * | |
322 | * @param message Problem description. | |
323 | * @return Exception to throw. | |
324 | */ | |
325 | 0 | public final SAXParseException createSAXParseException(final String message) { |
326 | 0 | return new SAXParseException(message, getLocator()); |
327 | } | |
328 | ||
329 | /** | |
330 | * Set current location information within an {@link XmlSyntaxException}. | |
331 | * | |
332 | * @param e Set location information within this exception. | |
333 | */ | |
334 | 0 | private final void setLocationInformation(final XmlSyntaxException e) { |
335 | 0 | if (getLocator() != null && getUrl() != null) { |
336 | 0 | e.setErrorPosition(new SourcePosition(getUrl(), getLocator().getLineNumber(), |
337 | getLocator().getColumnNumber())); | |
338 | } | |
339 | } | |
340 | ||
341 | /** | |
342 | * Create current source area. | |
343 | * | |
344 | * @return Current area. | |
345 | */ | |
346 | 0 | private final SourceArea createSourceArea() { |
347 | 0 | if (getLocator() != null && getUrl() != null) { |
348 | 0 | return new SourceArea(getUrl(), new SourcePosition(getUrl(), |
349 | getLocator().getLineNumber(), 1), | |
350 | new SourcePosition(getUrl(), getLocator().getLineNumber(), | |
351 | getLocator().getColumnNumber())); | |
352 | } | |
353 | 0 | return new SourceArea(getUrl(), new SourcePosition(getUrl(), 1 , 1), |
354 | new SourcePosition(getUrl(), 1 , 1)); | |
355 | } | |
356 | ||
357 | } |
|