|
Go to the documentation of this file.
32 std::cout << "======== a Rabin pair" << std::endl;
44 std::cout << std::endl;
51 std::cout << "======== a Rabin acceptance condition" << std::endl;
63 std::cout << std::endl;
65 std::cout << std::endl;
68 std::cout << "======== serialisation " << std::endl;
69 raccept. Write( "tmp_raccept.txt");
71 rareadback. Read( "tmp_raccept.txt");
72 bool eq1= rareadback==raccept;
74 std::cout << "== readback ok" << std::endl;
76 std::cout << "== readback test case FAIL" << std::endl;
78 std::cout << std::endl;
85 RabinAcceptance::Iterator rit;
87 for(;rit!=raccept. End();++rit) {
89 std::cout << "found a Robin pair with RSet " << rpair. RSet(). ToString() << std::endl;
91 std::cout << std::endl;
98 bool eq2= rareadback==raccept;
100 std::cout << "== still equal? FAIL" << std::endl;
102 std::cout << "== sensed mismatch: ok" << std::endl;
104 std::cout << std::endl;
111 std::cout << std::endl;
119 std::cout << "======== strict XML serialisation" << std::endl;
121 std::cout << std::endl;
132 std::cout << "======== Rabin automaton from file" << std::endl;
134 ar. Read( "data/omg_rabinaut.gen");
137 std::cout << "=== automaton" << std::endl;
139 std::cout << "=== acceptance condition only" << std::endl;
141 std::cout << std::endl;
142 std::cout << "=== edit in automaton" << std::endl;
145 std::cout << "=== statistics" << std::endl;
147 std::cout << std::endl;
154 std::cout << "===== trimming/lifeness" << std::endl;
157 ar. Read( "data/omg_rnottrim.gen");
161 std::cout << "test automaton is trim (test case ERROR)" << std::endl;
163 std::cout << "test automaton is not trim (expected)" << std::endl;
167 for(;rit!=raccept. End();++rit) {
170 std::cout << "=== life states for Rabin pair " << rit->Name() << std::endl;
173 std::cout << std::endl;
177 ar. Write( "tmp_omg_rnottrim.gen");
181 std::cout << "omg_3_rabin: cannot execute graphviz' dot. " << std::endl;
185 std::cout << "=== trim Rabin automaton" << std::endl;
190 std::cout << "trimed automaton is trim (expected)" << std::endl;
192 std::cout << "trimed automaton is not trim (test case ERROR)" << std::endl;
197 ar. Write( "tmp_omg_rtrim.gen");
201 std::cout << "omg_3_rabin: cannot execute graphviz' dot. " << std::endl;
205 std::cout << "=== simplify Rabin acceptance" << std::endl;
206 ar. Read( "data/omg_rnottrim.gen");
211 std::cout << "simplified automaton is trim (test case ERROR)" << std::endl;
213 std::cout << "simplified is not trim (expected)" << std::endl;
215 ar. Write( "tmp_omg_rsimple.gen");
219 std::cout << "omg_3_rabin: cannot execute graphviz' dot. " << std::endl;
227 std::cout << "=== trim and simplify Rabin acceptance" << std::endl;
228 ar. Read( "data/omg_rnottrim.gen");
234 std::cout << "trimed automaton is trim (expected)" << std::endl;
236 std::cout << "trimed automaton is not trim (test case ERROR)" << std::endl;
238 ar. Write( "tmp_omg_rtrims.gen");
242 std::cout << "omg_3_rabin: cannot execute graphviz' dot. " << std::endl;
#define FAUDES_TEST_DUMP(mes, dat)
virtual void Insert(const T &rElem)
void RabinAcceptance(const faudes::RabinAcceptance &rRabAcc)
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 FromString(const std::string &rString, const std::string &rLabel="", const Type *pContext=0)
virtual void XWrite(const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0) const
void Write(const Type *pContext=0) const
void SWrite(TokenWriter &rTw) const
void WriteStateSet(const StateSet &rStateSet) const
void GraphWrite(const std::string &rFileName, const std::string &rOutFormat="", const std::string &rDotExec="dot") const
virtual void InsertSet(const TBaseSet &rOtherSet)
virtual bool Erase(const T &rElem)
bool RabinTrim(RabinAutomaton &rRAut)
void RabinLifeStates(const TransSet &rTransRel, const TransSetX2EvX1 &rRevTransRel, const RabinPair &rRPair, StateSet &rLife)
bool IsRabinTrim(const RabinAutomaton &rRAut)
void RabinSimplify(RabinAutomaton &rRAut)
libFAUDES 2.33l
--- 2025.09.16
--- c++ api documentaion by doxygen
|