Clover Coverage Report
Coverage timestamp: Sa Aug 2 2008 13:56:27 CEST
39   86   9   13
6   64   0,23   3
3     3  
1    
 
  AbstractParserTest       Line # 11 39 9 66,7% 0.6666667
 
  (92)
 
1    package org.qedeq.kernel.bo.parser;
2   
3    import org.qedeq.base.io.TextInput;
4    import org.qedeq.base.test.QedeqTestCase;
5    import org.qedeq.base.utility.StringUtility;
6    import org.qedeq.kernel.bo.parser.MathParser;
7    import org.qedeq.kernel.bo.parser.ParserException;
8    import org.qedeq.kernel.bo.parser.Term;
9   
10   
 
11    public abstract class AbstractParserTest extends QedeqTestCase {
12   
 
13  92 toggle public AbstractParserTest(final String arg0) {
14  92 super(arg0);
15    }
16   
17    protected abstract String[][] getTest();
18   
19    protected abstract MathParser createParser(TextInput input) throws Exception;
20   
 
21  3 toggle public void testAllTogether() throws Exception {
22  3 final StringBuffer in = new StringBuffer();
23  3 final StringBuffer expected = new StringBuffer();
24  93 for (int i = 0; i < getTest().length; i++) {
25  90 in.append(getTest()[i][0]).append("\n");
26  90 expected.append(getTest()[i][1]).append("\n");
27    }
28  3 final TextInput input = new TextInput(in);
29  3 MathParser parser = createParser(input);
30  3 final StringBuffer out = new StringBuffer();
31  3 try {
32  3 Term term = null;
33  3 do {
34  93 term = parser.readTerm();
35  93 if (term != null) {
36  90 out.append(term.getQedeq()).append("\n");
37    // System.out.println(term.getQedeq());
38    }
39  93 } while (term != null || !parser.eof());
40    } catch (Exception e) {
41  0 e.printStackTrace(System.out);
42  0 System.out.println(input.getRow() + ":" + input.getColumn() + ":");
43  0 System.out.println(e.getMessage());
44  0 System.out.println(input.getLine().replace('\t', ' ').replace('\015', ' '));
45  0 final StringBuffer pointer = StringUtility.getSpaces(input.getColumn());
46  0 pointer.append('^');
47  0 System.out.println(pointer);
48  0 throw e;
49    }
50    /*
51    final TextInput e = new TextInput(expected, "expected", "expected");
52    final TextInput o = new TextInput(out, "out", "out");
53    int i = 0;
54    do {
55    System.out.println("comparing " + i);
56    e.setRow(i);
57    o.setRow(i);
58    assertEquals(e.getLine(), o.getLine());
59    i++;
60    } while(!e.isEmpty());
61    */
62  3 assertEquals(expected.toString(), out.toString());
63    }
64   
 
65  89 toggle protected void internalTest(int number) throws Exception {
66  89 final TextInput input = new TextInput(
67    new StringBuffer(getTest()[number][0]));
68  89 final MathParser parser = createParser(input);
69  89 Term result = null;
70  89 try {
71  89 result = parser.readTerm();
72    } catch (ParserException e) {
73  0 e.printStackTrace(System.out);
74  0 System.out.println(input.getRow() + ":" + input.getColumn() + ":");
75  0 System.out.println(e.getMessage());
76  0 System.out.println(input.getLine().replace('\t', ' ').replace('\015', ' '));
77  0 final StringBuffer pointer = StringUtility.getSpaces(input.getColumn());
78  0 pointer.append('^');
79  0 System.out.println(pointer);
80  0 throw e;
81    }
82  89 assertEquals(getTest()[number][1], result.getQedeq());
83  89 assertEquals(0, parser.getRewindStackSize());
84    }
85   
86    }