68 std::cout <<
"################################\n";
69 std::cout <<
"# tutorial, alphabets A1,A2 and A3 \n";
73 std::cout <<
"################################\n";
77 EventSet::Iterator eit;
78 std::cout <<
"################################\n";
79 std::cout <<
"# tutorial, iterators \n";
80 for (eit = alphabet1.
Begin(); eit != alphabet1.
End(); eit++) {
81 std::cout << alphabet1.
SymbolicName(*eit) <<
": " << *eit << std::endl;
83 std::cout <<
"################################\n";
87 alphabet3.
Read(
"data/simplemachine.gen",
"Alphabet");
90 EventSet alphabet4(
"data/simplemachine.gen",
"Alphabet");
93 alphabet2.
Write(
"tmp_alphabet.txt");
96 std::cout <<
"################################\n";
97 std::cout <<
"# tutorial, alphabets of simple machine \n";
99 std::cout <<
"################################\n";
103 if(alphabet1 <= alphabet2) {
104 std::cout <<
"################################\n";
105 std::cout <<
"alphabet1 includes alphabet2" << std::endl;
106 std::cout <<
"################################\n";
109 std::cout <<
"################################\n";
110 std::cout <<
"alphabet1 does not include alphabet2" << std::endl;
111 std::cout <<
"################################\n";
115 alphabet2.
Erase(
"e");
124 if (alphabet2.
Exists(
"d")) {
125 std::cout <<
"alphabet2: event d exists" << std::endl;
130 std::cout <<
"################################\n";
131 std::cout <<
"# tutorial, updated alphabets 1 and 2 \n";
134 std::cout <<
"################################\n";
138 EventSet adifference = alphabet1 - alphabet2;
139 std::cout <<
"################################\n";
140 std::cout <<
"set difference: " << adifference.
ToString() << std::endl;
141 std::cout <<
"################################\n";
145 EventSet aunion = alphabet1 + alphabet2;
146 std::cout <<
"################################\n";
147 std::cout <<
"set union: " << aunion.
ToString() << std::endl;
148 std::cout <<
"################################\n";
151 EventSet aintersection = alphabet1 * alphabet2;
152 std::cout <<
"################################\n";
153 std::cout <<
"set intersection: " << aintersection.
ToString() << std::endl;
154 std::cout <<
"################################\n";
167 std::cout <<
"################################\n";
168 std::cout <<
"# tutorial, state sets \n";
179 for(
int i=0; i<25; i++) stateset1.
Insert();
183 StateSet::Iterator sit;
184 std::cout <<
"stateset1: ";
185 for (sit = stateset1.
Begin(); sit != stateset1.
End(); ++sit) {
186 std::cout << stateset1.
Str(*sit) <<
" ";
188 std::cout << std::endl;
191 std::cout <<
"stateset1: " << stateset1.
ToString() << std::endl;
194 stateset1.
Write(
"tmp_stateset.txt");
198 stateset2.
Read(
"tmp_stateset.txt");
204 stateset2.
Erase(state2);
213 if (stateset3.
Exists(state1)) {
214 std::cout <<
"stateset3: state " << state1 <<
" exists" << std::endl;
217 std::cout <<
"################################\n\n";
225 std::cout <<
"################################\n";
226 std::cout <<
"# tutorial, attributes \n";
232 FStateSet fstateset1(
"tmp_stateset.txt");
235 FStateSet fstateset3(stateset3);
238 std::cout <<
"fstateset3: " << fstateset3.ToString() << std::endl;
241 fstateset3.Attributep(60)->Set(0xff);
246 Idx fstate = fstateset3.Insert(fattr);
249 std::cout <<
"fstateset3: attribute of state 60: "
250 << fstateset3.Attribute(60).ToString() << std::endl;
251 std::cout <<
"fstateset3: attribute of state " << fstate
252 <<
": " << fstateset3.Attribute(fstate).ToString() << std::endl;
253 std::cout <<
"fstateset3: " << fstateset3.ToString() << std::endl;
256 fstateset3.Write(
"tmp_fstateset.txt");
259 stateset3 = fstateset3;
262 std::cout <<
"stateset3: " << stateset3.
ToString() << std::endl;
265 if(stateset3==fstateset3)
266 std::cout <<
"stateset3 indeed equals fstateset3 " << std::endl;
270 std::cout <<
"stateset3 indeed has different attributes as fstateset3 " << std::endl;
274 FStateSet fstateset4;
277 rfstateset4 = rfstateset3;
280 rfstateset3.
Erase(50);
283 if(fstateset4.EqualAttributes(fstateset3))
284 std::cout <<
"fstateset4 indeed has equal attributes with fstateset3 " << std::endl;
286 std::cout <<
"rfstateset4 indeed has equal attributes with rfstateset3 " << std::endl;
289 std::cout <<
"fstateset4: " << fstateset4.ToString() << std::endl;
290 std::cout <<
"################################\n\n";
295 FAUDES_TEST_DUMP(
"attrbibutes eq2", fstateset4.EqualAttributes(fstateset3));
303 std::cout <<
"################################\n";
304 std::cout <<
"# tutorial, vectors \n";
315 std::cout <<
"# event set no 1 (counting from 0):\n";
322 std::cout <<
"# all three event sets:\n";
329 alphvect.
Write(
"tmp_alphvect.txt");
336 std::cout <<
"# EventSetVector can take Generator elements [fail]\n";
338 std::cout <<
"# EventSetVector cannot take Generator elements [expected]\n";
345 std::cout <<
"################################\n";
353 std::cout <<
"################################\n";
354 std::cout <<
"# tutorial, deferred copy stress test \n";
358 for(
Idx state=1; state<45; state++) {
371 std::vector<StateSet::Iterator> edIts;
374 StateSet::Iterator cit=setB.
Begin();
375 for(;cit!=setB.
End(); cit++) {
376 if(*cit % 5 !=0)
continue;
377 edIts.push_back(cit);
392 for(;cit!=setB.
End(); cit++) {
393 if(*cit % 5 ==0)
continue;
394 if(*cit % 2 !=0)
continue;
395 edIts.push_back(cit);
408 std::vector<StateSet::Iterator>::iterator iit=edIts.begin();
409 for(;iit!=edIts.end(); iit++) {
410 Idx oldstate = **iit;
411 setC.
Erase(oldstate);
412 setC.
Insert(100+oldstate);
418 std::cout <<
"################################\n";
#define FAUDES_TEST_DUMP(mes, dat)
std::string Str(const Idx &rIndex) const
bool Exists(const Idx &rIndex) const
void SymbolicName(Idx index, const std::string &rName)
bool Insert(const Idx &rIndex)
Idx Index(const std::string &rName) const
virtual bool Erase(const Idx &rIndex)
virtual bool ElementTry(const Type &rElement) const
virtual const T & At(const Position &pos) const
void DWrite(const Type *pContext=0) const
void Read(const std::string &rFileName, const std::string &rLabel="", const Type *pContext=0)
std::string ToString(const std::string &rLabel="", const Type *pContext=0) const
void Write(const Type *pContext=0) const
void FilenameAt(const Position &pos, const std::string &rFileName)
virtual void PushBack(const Type &rElem)
bool Exists(const T &rElem) const
bool EqualAttributes(const TBaseSet &rOtherSet) const
Iterator Begin(void) const
virtual bool Erase(const T &rElem)
const std::string & Name(void) const