pd_alg_sub_test.h
Go to the documentation of this file.
1 /** @file pd_alg_nb_sub_a_test.h Unit Tests */
2 
3 
4 /* Pushdown plugin for FAU Discrete Event Systems Library (libfaudes)
5 
6  Copyright (C) 2013 Stefan Jacobi, Sven Schneider, Anne-Kathrin Hess
7 
8 */
9 
10 #ifndef FAUDES_PD_ALG_NB_SUB_A_TEST_H
11 #define FAUDES_PD_ALG_NB_SUB_A_TEST_H
12 
13 #include "corefaudes.h"
14 #include "pd_include.h"
15 #include "pd_test_util.h"
16 
17 namespace faudes {
18 
19 
20 /**
21  * Test if all states were renamed correctly (merge attribute is set correctly).
22  */
24 
25 /**
26  * Test if the number of states did not change.
27  */
29 
30 /**
31  * Test if all stack symbols were renamed correctly
32  */
34 
35 /**
36  * Test if the number of stack symbols did not change.
37  */
39 
40 /**
41  * Test if the stack symbols in pop and push of transitions were changed correctly
42  */
44 
45 /**
46  * Tests if there are any lambda popping edges left
47  */
48 void TestRep0NoLambdaPop();
49 
50 /**
51  * Test if resulting generator has a transition able to pop all stack symbols,
52  * but only if the orignal generator had at least one lambda transition
53  */
55 
56 /**
57  * Test for the right number of transitions and states in the generator after
58  * applying Rep2
59  */
61 
62 
63 /**
64  * Test if all transitions are either read only, pop only or push only
65  */
67 
68 /**
69  * Test if the number of transitions and states is correct after calling Rpp
70  */
72 
73 /**
74  * Test if the states are split into active and passive states and if the number of
75  * states has been doubled.
76  */
78 
79 /**
80  * Test if transition start and end states are set as expected
81  */
82 void TestNdaTransitions();
83 
84 /**
85  * All AnnotatePdStates Tests
86  */
88 
89 /**
90  * All RenG tests.
91  */
93 
94 /**
95  * All RemoveLambdaPop tests
96  */
97 void TestRemoveLambdaPop();
98 
99 /**
100  * All SPDA tests
101  */
102 void TestSPDA();
103 
104 /**
105  * All RemoveMultPop tests
106  */
107 void TestRemoveMultPop();
108 
109 /**
110  * All Nda tests
111  */
112 void TestNda();
113 
114 
115 /**
116  * Filter a nonterminal from a vector of terminals and nonterminals.
117  */
119 
120 /**
121  * filter from an empty word
122  */
123 void TestFilterNothing();
124 
125 /**
126  * Find an eliminable symbol with Rnpp1 and an empty set of nonterminals
127  */
129 
130 /**
131  * Find an eliminable symbol with Rnpp1 and a nonempty set of nonterminals
132  */
134 
135 /**
136  * Find all eliminable symbols with Rnppl and an empty set of nonterminals
137  */
139 
140 /**
141  * Find all eliminable symbolswith Rnppl and a nonempty set of nonterminals
142  */
144 
145 /**
146  * Find all eliminable symbols with Rnppl and a set already containing all
147  * eliminable symbols
148  */
150 
151 /**
152  * Remove all noneliminable nonterminals and all productions containing
153  * noneliminable nonterminals
154  */
155 void TestRnppGrammar1();
156 
157 /**
158  * Remove all noneliminable nonterminals and all productions containing
159  * noneliminable nonterminals
160  */
161 void TestRnppGrammar2();
162 
163 /**
164  * Try to remove all noneliminable nonterminals and all productions containing
165  * noneliminable nonterminals from an empty grammar.
166  */
167 void TestRnppEmptyGrammar();
168 
169 /**
170  * Test if all terminals have been set correctly and match the generator's events.
171  */
172 void TestSp2LrTerminals();
173 
174 /**
175  * Test if all possible nonterminals were generated.
176  */
177 void TestSp2LrNonterminals();
178 
179 /**
180  * Test if all expected productions for read, pop and push transitions and for the final
181  * states were generated.
182  */
183 void TestSp2LrProductions();
184 
185 /**
186  *
187  */
188 void TestRupProductions();
189 
190 /**
191  *
192  */
193 void TestRupNonterminals();
194 
195 /**
196  * All Filter tests
197  */
198 void TestFilter();
199 
200 /**
201  * All Rnpp1 tests
202  */
203 void TestRnpp1();
204 
205 /**
206  * All Rnppl tests
207  */
208 void TestRnppl();
209 
210 /**
211  * All Rnpp tests
212  */
213 void TestRnpp();
214 
215 /**
216  * All Sp2Lr tests
217  */
218 void TestSp2Lr();
219 
220 
221 /**
222  * All Rup tests
223  */
224 void TestRup();
225 
226 } // namespace faudes
227 
228 #endif

libFAUDES 2.28c --- 2016.09.30 --- c++ api documentaion by doxygen