|
|
Go to the documentation of this file.
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 (classic)\n";
80 for (eit = alphabet1. Begin(); eit != alphabet1. End(); eit++) {
81 std::cout << alphabet1. SymbolicName(*eit) << ": " << *eit << std::endl;
83 std::cout << "################################\n";
86 std::cout << "################################\n";
87 std::cout << "# tutorial, iterators (modern)\n";
88 for ( auto ev : alphabet1) {
89 std::cout << alphabet1. SymbolicName(ev) << ": " << ev << std::endl;
91 std::cout << "################################\n";
95 alphabet3. Read( "data/simplemachine.gen", "Alphabet");
98 EventSet alphabet4( "data/simplemachine.gen", "Alphabet");
101 alphabet2. Write( "tmp_alphabet.txt");
104 std::cout << "################################\n";
105 std::cout << "# tutorial, alphabets of simple machine \n";
107 std::cout << "################################\n";
111 if(alphabet1 <= alphabet2) {
112 std::cout << "################################\n";
113 std::cout << "alphabet1 includes alphabet2" << std::endl;
114 std::cout << "################################\n";
117 std::cout << "################################\n";
118 std::cout << "alphabet1 does not include alphabet2" << std::endl;
119 std::cout << "################################\n";
123 alphabet2. Erase( "e");
132 if (alphabet2. Exists( "d")) {
133 std::cout << "alphabet2: event d exists" << std::endl;
138 std::cout << "################################\n";
139 std::cout << "# tutorial, updated alphabets 1 and 2 \n";
142 std::cout << "################################\n";
146 EventSet adifference = alphabet1 - alphabet2;
147 std::cout << "################################\n";
148 std::cout << "set difference: " << adifference. ToString() << std::endl;
149 std::cout << "################################\n";
153 EventSet aunion = alphabet1 + alphabet2;
154 std::cout << "################################\n";
155 std::cout << "set union: " << aunion. ToString() << std::endl;
156 std::cout << "################################\n";
159 EventSet aintersection = alphabet1 * alphabet2;
160 std::cout << "################################\n";
161 std::cout << "set intersection: " << aintersection. ToString() << std::endl;
162 std::cout << "################################\n";
175 std::cout << "################################\n";
176 std::cout << "# tutorial, state sets \n";
187 for( int i=0; i<25; i++) stateset1. Insert();
191 StateSet::Iterator sit;
192 std::cout << "stateset1: ";
193 for (sit = stateset1. Begin(); sit != stateset1. End(); ++sit) {
194 std::cout << stateset1. Str(*sit) << " ";
196 std::cout << std::endl;
199 std::cout << "stateset1: " << stateset1. ToString() << std::endl;
202 stateset1. Write( "tmp_stateset.txt");
206 stateset2. Read( "tmp_stateset.txt");
212 stateset2. Erase(state2);
221 if (stateset3. Exists(state1)) {
222 std::cout << "stateset3: state " << state1 << " exists" << std::endl;
225 std::cout << "################################\n\n";
233 std::cout << "################################\n";
234 std::cout << "# tutorial, attributes \n";
240 FStateSet fstateset1( "tmp_stateset.txt");
243 FStateSet fstateset3(stateset3);
246 std::cout << "fstateset3: " << fstateset3.ToString() << std::endl;
249 fstateset3.Attributep(60)->Set(0xff);
254 Idx fstate = fstateset3.Insert(fattr);
257 std::cout << "fstateset3: attribute of state 60: "
258 << fstateset3.Attribute(60).ToString() << std::endl;
259 std::cout << "fstateset3: attribute of state " << fstate
260 << ": " << fstateset3.Attribute(fstate).ToString() << std::endl;
261 std::cout << "fstateset3: " << fstateset3.ToString() << std::endl;
264 fstateset3.Write( "tmp_fstateset.txt");
267 stateset3 = fstateset3;
270 std::cout << "stateset3: " << stateset3. ToString() << std::endl;
273 if(stateset3==fstateset3)
274 std::cout << "stateset3 indeed equals fstateset3 " << std::endl;
278 std::cout << "stateset3 indeed has different attributes as fstateset3 " << std::endl;
282 FStateSet fstateset4;
285 rfstateset4 = rfstateset3;
288 rfstateset3. Erase(50);
291 if(fstateset4.EqualAttributes(fstateset3))
292 std::cout << "fstateset4 indeed has equal attributes with fstateset3 " << std::endl;
294 std::cout << "rfstateset4 indeed has equal attributes with rfstateset3 " << std::endl;
297 std::cout << "fstateset4: " << fstateset4.ToString() << std::endl;
298 std::cout << "################################\n\n";
303 FAUDES_TEST_DUMP( "attrbibutes eq2", fstateset4.EqualAttributes(fstateset3));
311 std::cout << "################################\n";
312 std::cout << "# tutorial, vectors \n";
323 std::cout << "# event set no 1 (counting from 0):\n";
330 std::cout << "# all three event sets:\n";
337 alphvect. Write( "tmp_alphvect.txt");
344 std::cout << "# EventSetVector can take Generator elements [fail]\n";
346 std::cout << "# EventSetVector cannot take Generator elements [expected]\n";
353 std::cout << "################################\n";
361 std::cout << "################################\n";
362 std::cout << "# tutorial, deferred copy stress test \n";
366 for( Idx state=1; state<45; state++) {
379 std::vector<StateSet::Iterator> edIts;
382 StateSet::Iterator cit=setB. Begin();
383 for(;cit!=setB. End(); cit++) {
384 if(*cit % 5 !=0) continue;
385 edIts.push_back(cit);
400 for(;cit!=setB. End(); cit++) {
401 if(*cit % 5 ==0) continue;
402 if(*cit % 2 !=0) continue;
403 edIts.push_back(cit);
416 std::vector<StateSet::Iterator>::iterator iit=edIts.begin();
417 for(;iit!=edIts.end(); iit++) {
418 Idx oldstate = **iit;
419 setC. Erase(oldstate);
420 setC. Insert(100+oldstate);
426 std::cout << "################################\n";
#define FAUDES_TEST_DUMP(mes, dat)
const std::string & Name(void) const
virtual 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)
libFAUDES 2.34g
--- 2026.03.30
--- c++ api documentaion by doxygen
|