Clover Coverage Report
Coverage timestamp: Fri May 24 2013 13:47:27 UTC
57   114   11   14.25
6   89   0.19   4
4     2.75  
1    
 
  AbstractParserTestCase       Line # 11 57 11 68.7% 0.6865672
 
  (99)
 
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 AbstractParserTestCase extends QedeqTestCase {
12   
 
13  99 toggle public AbstractParserTestCase(final String arg0) {
14  99 super(arg0);
15    }
16   
17    protected abstract String[][] getTest();
18   
19    protected abstract String[][] getExceptionTest();
20   
21   
22    protected abstract MathParser createParser(TextInput input) throws Exception;
23   
 
24  3 toggle public void testAllTogether() throws Exception {
25  3 final StringBuffer in = new StringBuffer();
26  3 final StringBuffer expected = new StringBuffer();
27  93 for (int i = 0; i < getTest().length; i++) {
28  90 in.append(getTest()[i][0]).append("\n");
29  90 expected.append(getTest()[i][1]).append("\n");
30    }
31  3 final TextInput input = new TextInput(in);
32  3 MathParser parser = createParser(input);
33  3 final StringBuffer out = new StringBuffer();
34  3 try {
35  3 Term term = null;
36  3 do {
37  93 term = parser.readTerm();
38  93 if (term != null) {
39  90 out.append(term.getQedeq()).append("\n");
40    // System.out.println(term.getQedeq());
41    }
42  93 } while (term != null || !parser.eof());
43    } catch (Exception e) {
44  0 e.printStackTrace(System.out);
45  0 System.out.println(input.getRow() + ":" + input.getColumn() + ":");
46  0 System.out.println(e.getMessage());
47  0 System.out.println(input.getLine().replace('\t', ' ').replace('\015', ' '));
48  0 final StringBuffer pointer = StringUtility.getSpaces(input.getColumn());
49  0 pointer.append('^');
50  0 System.out.println(pointer);
51  0 throw e;
52    }
53    /*
54    final TextInput e = new TextInput(expected, "expected", "expected");
55    final TextInput o = new TextInput(out, "out", "out");
56    int i = 0;
57    do {
58    System.out.println("comparing " + i);
59    e.setRow(i);
60    o.setRow(i);
61    assertEquals(e.getLine(), o.getLine());
62    i++;
63    } while(!e.isEmpty());
64    */
65  3 assertEquals(expected.toString(), out.toString());
66    }
67   
 
68  89 toggle protected void internalTest(int number) throws Exception {
69  89 final TextInput input = new TextInput(
70    new StringBuffer(getTest()[number][0]));
71  89 final MathParser parser = createParser(input);
72  89 Term result = null;
73  89 try {
74  89 result = parser.readTerm();
75    } catch (ParserException e) {
76  0 e.printStackTrace(System.out);
77  0 System.out.println(input.getRow() + ":" + input.getColumn() + ":");
78  0 System.out.println(e.getMessage());
79  0 System.out.println(input.getLine().replace('\t', ' ').replace('\015', ' '));
80  0 final StringBuffer pointer = StringUtility.getSpaces(input.getColumn());
81  0 pointer.append('^');
82  0 System.out.println(pointer);
83  0 throw e;
84    }
85  89 assertEquals(getTest()[number][1], result.getQedeq());
86  89 assertEquals(0, parser.getRewindStackSize());
87    }
88   
 
89  7 toggle protected void internalExceptionTest(int number) throws Exception {
90  7 final TextInput input = new TextInput(
91    new StringBuffer(getExceptionTest()[number][0]));
92  7 final MathParser parser = createParser(input);
93  7 Term result = null;
94  7 try {
95  7 result = parser.readTerm();
96  0 System.out.println("We unexpectingly parsed successfully:");
97  0 System.out.println("\t" + getExceptionTest()[number][0]);
98  0 System.out.println("into:");
99  0 System.out.println("\t" + result.getQedeq());
100  0 fail("Exception expected");
101    } catch (ParserException e) {
102  7 e.printStackTrace(System.out);
103  7 System.out.println(input.getRow() + ":" + input.getColumn() + ":");
104  7 System.out.println(e.getMessage());
105  7 System.out.println(input.getLine().replace('\t', ' ').replace('\015', ' '));
106  7 final StringBuffer pointer = StringUtility.getSpaces(input.getColumn());
107  7 pointer.append('^');
108  7 System.out.println(pointer);
109  7 assertEquals(getExceptionTest()[number][1], input.getRow() + ":" + input.getColumn()
110    + ":" + e.getMessage());
111    }
112    }
113   
114    }