diff --git a/alib2data/src/rte/common/RTEFromXMLParser.cpp b/alib2data/src/rte/common/RTEFromXMLParser.cpp index b484f1979b166883840c53cc57a600a1bfb56fea..7f7c23fd5262d286050d00a6b3d06ca61f76eac9 100644 --- a/alib2data/src/rte/common/RTEFromXMLParser.cpp +++ b/alib2data/src/rte/common/RTEFromXMLParser.cpp @@ -6,7 +6,6 @@ */ #include "RTEFromXMLParser.h" -#include <sax/ParserException.h> #include "../RTE.h" #include "../RTEClasses.h" diff --git a/alib2data/test-src/rte/RTETest.cpp b/alib2data/test-src/rte/RTETest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..90df05b07dcdae024e70ed69da556a5cc8b63fe2 --- /dev/null +++ b/alib2data/test-src/rte/RTETest.cpp @@ -0,0 +1,663 @@ +#include <list> +#include "RTETest.h" + +#include "sax/SaxParseInterface.h" +#include "sax/SaxComposeInterface.h" + +//#include "rte/unbounded/UnboundedRTE.h" +//#include "rte/unbounded/UnboundedRTEElements.h" +#include "rte/formal/FormalRTE.h" +#include "rte/formal/FormalRTEElements.h" + +#include "rte/RTE.h" + +#include "factory/XmlDataFactory.hpp" + +#define CPPUNIT_IMPLY(x, y) CPPUNIT_ASSERT(!(x) || (y)) +#define CPPUNIT_EXCLUSIVE_OR(x, y) CPPUNIT_ASSERT((!(x) && (y)) || ((x) && !(y))) + +CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( RTETest, "rte" ); +CPPUNIT_TEST_SUITE_REGISTRATION( RTETest ); + +void RTETest::setUp() { +} + +void RTETest::tearDown() { +} + +void RTETest::testCopyConstruct() { + { + /* + rte::UnboundedRTE rte; + rte.setAlphabet({alphabet::symbolFrom("1"), alphabet::symbolFrom("2"), alphabet::symbolFrom("3")}); + rte::UnboundedRTESymbol l1 = rte::UnboundedRTESymbol("1"); + rte::UnboundedRTESymbol l2 = rte::UnboundedRTESymbol("2"); + + rte::UnboundedRTEConcatenation con = rte::UnboundedRTEConcatenation(); + con.appendElement(l1); + con.appendElement(l2); + + rte::UnboundedRTEIteration ite = rte::UnboundedRTEIteration(l1); + + rte::UnboundedRTEAlternation alt = rte::UnboundedRTEAlternation(); + alt.appendElement(con); + alt.appendElement(ite); + + rte.setRTE(alt); + + rte::UnboundedRTE rte2(rte); + + CPPUNIT_ASSERT( rte == rte2 ); + + rte::UnboundedRTE rte3(std::move(rte)); + + CPPUNIT_ASSERT( rte2 == rte3 ); + */ + } + { + const alphabet::RankedSymbol symb_a2('a', 2); + const alphabet::RankedSymbol symb_b0('b', 0); + const alphabet::RankedSymbol symb_c0('c', 0); + const alphabet::RankedSymbol symb_y0('y', 0); + const alphabet::RankedSymbol symb_z0('z', 0); + + rte::FormalRTE frte; + frte.setAlphabet({symb_a2, symb_b0, symb_c0}); + frte.setConstantAlphabet({symb_y0, symb_z0}); + + rte::FormalRTESymbol b = rte::FormalRTESymbol(symb_b0); + rte::FormalRTESymbol c = rte::FormalRTESymbol(symb_c0); + rte::FormalRTESymbol y = rte::FormalRTESymbol(symb_y0); + rte::FormalRTESymbol z = rte::FormalRTESymbol(symb_z0); + + rte::FormalRTEAlternation alt = rte::FormalRTEAlternation(b, c); + + rte::FormalRTESymbol a = rte::FormalRTESymbol(symb_a2); + a.appendElement(y); + a.appendElement(z); + + rte::FormalRTEIteration iter = rte::FormalRTEIteration(a, symb_y0); + rte::FormalRTESubstitution subst = rte::FormalRTESubstitution(iter, alt, symb_z0); + frte.setRTE(subst); + + rte::FormalRTE frte2(frte); + CPPUNIT_ASSERT( frte == frte2 ); + + rte::FormalRTE frte3(std::move(frte)); + CPPUNIT_ASSERT( frte2 == frte3 ); + } +} + +void RTETest::testXMLParser() { + const alphabet::RankedSymbol symb_a2('a', 2); + const alphabet::RankedSymbol symb_b0('b', 0); + const alphabet::RankedSymbol symb_c0('c', 0); + const alphabet::RankedSymbol symb_d1('d', 1); + const alphabet::RankedSymbol symb_y0('y', 0); + const alphabet::RankedSymbol symb_z0('z', 0); + + rte::FormalRTE frte; + frte.setAlphabet({symb_a2, symb_b0, symb_c0, symb_d1}); + frte.setConstantAlphabet({symb_y0, symb_z0}); + + rte::FormalRTESymbol b = rte::FormalRTESymbol(symb_b0); + rte::FormalRTESymbol c = rte::FormalRTESymbol(symb_c0); + rte::FormalRTESymbol y = rte::FormalRTESymbol(symb_y0); + rte::FormalRTESymbol z = rte::FormalRTESymbol(symb_z0); + + rte::FormalRTEAlternation alt = rte::FormalRTEAlternation(b, c); + + rte::FormalRTESymbol a = rte::FormalRTESymbol(symb_a2); + a.appendElement(y); + a.appendElement(z); + + rte::FormalRTESymbol d = rte::FormalRTESymbol(symb_d1); + d.appendElement(a); + + rte::FormalRTEIteration iter = rte::FormalRTEIteration(d, symb_y0); + rte::FormalRTESubstitution subst = rte::FormalRTESubstitution(iter, alt, symb_z0); + frte.setRTE(subst); + + rte::RTE rte(frte); + alib::XmlDataFactory::toStdout(rte); + { + std::deque<sax::Token> tokens = alib::XmlDataFactory::toTokens(rte); + std::string tmp; + sax::SaxComposeInterface::printMemory(tmp, tokens); + + std::deque<sax::Token> tokens2; + sax::SaxParseInterface::parseMemory(tmp, tokens2); + rte::RTE rte2 = alib::XmlDataFactory::fromTokens<rte::RTE>(std::move(tokens2)); + + CPPUNIT_ASSERT( rte == rte2 ); + } + { + std::string tmp = alib::XmlDataFactory::toString(rte); + rte::RTE rte2 = alib::XmlDataFactory::fromString<rte::RTE>(tmp); + + CPPUNIT_ASSERT( rte == rte2 ); + } +} + +void RTETest::testOrder() { + /* + rte::UnboundedRTESymbol s1("1"); + rte::UnboundedRTEEmpty e1; + rte::UnboundedRTEEpsilon e2; + rte::UnboundedRTEIteration i1(s1); + rte::UnboundedRTEConcatenation a1; + a1.appendElement(s1); + a1.appendElement(s1); + rte::UnboundedRTEAlternation c1; + c1.appendElement(s1); + c1.appendElement(s1); + + rte::UnboundedRTE alt1(a1); + rte::UnboundedRTE con1(c1); + rte::UnboundedRTE ite1(i1); + rte::UnboundedRTE emp1(e1); + rte::UnboundedRTE eps1(e2); + rte::UnboundedRTE sym1(s1); + + CPPUNIT_EXCLUSIVE_OR(alt1 < con1, con1 < alt1); + CPPUNIT_EXCLUSIVE_OR(alt1 < ite1, ite1 < alt1); + CPPUNIT_EXCLUSIVE_OR(alt1 < emp1, emp1 < alt1); + CPPUNIT_EXCLUSIVE_OR(alt1 < eps1, eps1 < alt1); + CPPUNIT_EXCLUSIVE_OR(alt1 < sym1, sym1 < alt1); + + CPPUNIT_EXCLUSIVE_OR(con1 < ite1, ite1 < con1); + CPPUNIT_EXCLUSIVE_OR(con1 < emp1, emp1 < con1); + CPPUNIT_EXCLUSIVE_OR(con1 < eps1, eps1 < con1); + CPPUNIT_EXCLUSIVE_OR(con1 < sym1, sym1 < con1); + + CPPUNIT_EXCLUSIVE_OR(ite1 < emp1, emp1 < ite1); + CPPUNIT_EXCLUSIVE_OR(ite1 < eps1, eps1 < ite1); + CPPUNIT_EXCLUSIVE_OR(ite1 < sym1, sym1 < ite1); + + CPPUNIT_EXCLUSIVE_OR(emp1 < eps1, eps1 < emp1); + CPPUNIT_EXCLUSIVE_OR(emp1 < sym1, sym1 < emp1); + + CPPUNIT_EXCLUSIVE_OR(eps1 < sym1, sym1 < eps1); + + CPPUNIT_IMPLY( alt1 < con1 && con1 < ite1, alt1 < ite1 ); + CPPUNIT_IMPLY( alt1 < con1 && con1 < emp1, alt1 < emp1 ); + CPPUNIT_IMPLY( alt1 < con1 && con1 < eps1, alt1 < eps1 ); + CPPUNIT_IMPLY( alt1 < con1 && con1 < sym1, alt1 < sym1 ); + + CPPUNIT_IMPLY( alt1 < ite1 && ite1 < con1, alt1 < con1 ); + CPPUNIT_IMPLY( alt1 < ite1 && ite1 < emp1, alt1 < emp1 ); + CPPUNIT_IMPLY( alt1 < ite1 && ite1 < eps1, alt1 < eps1 ); + CPPUNIT_IMPLY( alt1 < ite1 && ite1 < sym1, alt1 < sym1 ); + + CPPUNIT_IMPLY( alt1 < emp1 && emp1 < con1, alt1 < con1 ); + CPPUNIT_IMPLY( alt1 < emp1 && emp1 < ite1, alt1 < ite1 ); + CPPUNIT_IMPLY( alt1 < emp1 && emp1 < eps1, alt1 < eps1 ); + CPPUNIT_IMPLY( alt1 < emp1 && emp1 < sym1, alt1 < sym1 ); + + CPPUNIT_IMPLY( alt1 < eps1 && eps1 < con1, alt1 < con1 ); + CPPUNIT_IMPLY( alt1 < eps1 && eps1 < ite1, alt1 < ite1 ); + CPPUNIT_IMPLY( alt1 < eps1 && eps1 < emp1, alt1 < emp1 ); + CPPUNIT_IMPLY( alt1 < eps1 && eps1 < sym1, alt1 < sym1 ); + + CPPUNIT_IMPLY( alt1 < sym1 && sym1 < con1, alt1 < con1 ); + CPPUNIT_IMPLY( alt1 < sym1 && sym1 < ite1, alt1 < ite1 ); + CPPUNIT_IMPLY( alt1 < sym1 && sym1 < emp1, alt1 < emp1 ); + CPPUNIT_IMPLY( alt1 < sym1 && sym1 < eps1, alt1 < eps1 ); + + + + CPPUNIT_IMPLY( con1 < alt1 && alt1 < ite1, con1 < ite1 ); + CPPUNIT_IMPLY( con1 < alt1 && alt1 < emp1, con1 < emp1 ); + CPPUNIT_IMPLY( con1 < alt1 && alt1 < eps1, con1 < eps1 ); + CPPUNIT_IMPLY( con1 < alt1 && alt1 < sym1, con1 < sym1 ); + + CPPUNIT_IMPLY( con1 < ite1 && ite1 < alt1, con1 < alt1 ); + CPPUNIT_IMPLY( con1 < ite1 && ite1 < emp1, con1 < emp1 ); + CPPUNIT_IMPLY( con1 < ite1 && ite1 < eps1, con1 < eps1 ); + CPPUNIT_IMPLY( con1 < ite1 && ite1 < sym1, con1 < sym1 ); + + CPPUNIT_IMPLY( con1 < emp1 && emp1 < alt1, con1 < alt1 ); + CPPUNIT_IMPLY( con1 < emp1 && emp1 < ite1, con1 < ite1 ); + CPPUNIT_IMPLY( con1 < emp1 && emp1 < eps1, con1 < eps1 ); + CPPUNIT_IMPLY( con1 < emp1 && emp1 < sym1, con1 < sym1 ); + + CPPUNIT_IMPLY( con1 < eps1 && eps1 < alt1, con1 < alt1 ); + CPPUNIT_IMPLY( con1 < eps1 && eps1 < ite1, con1 < ite1 ); + CPPUNIT_IMPLY( con1 < eps1 && eps1 < emp1, con1 < emp1 ); + CPPUNIT_IMPLY( con1 < eps1 && eps1 < sym1, con1 < sym1 ); + + CPPUNIT_IMPLY( con1 < sym1 && sym1 < alt1, con1 < alt1 ); + CPPUNIT_IMPLY( con1 < sym1 && sym1 < ite1, con1 < ite1 ); + CPPUNIT_IMPLY( con1 < sym1 && sym1 < emp1, con1 < emp1 ); + CPPUNIT_IMPLY( con1 < sym1 && sym1 < eps1, con1 < eps1 ); + + + + CPPUNIT_IMPLY( ite1 < alt1 && alt1 < con1, ite1 < con1 ); + CPPUNIT_IMPLY( ite1 < alt1 && alt1 < emp1, ite1 < emp1 ); + CPPUNIT_IMPLY( ite1 < alt1 && alt1 < eps1, ite1 < eps1 ); + CPPUNIT_IMPLY( ite1 < alt1 && alt1 < sym1, ite1 < sym1 ); + + CPPUNIT_IMPLY( ite1 < con1 && con1 < alt1, ite1 < alt1 ); + CPPUNIT_IMPLY( ite1 < con1 && con1 < emp1, ite1 < emp1 ); + CPPUNIT_IMPLY( ite1 < con1 && con1 < eps1, ite1 < eps1 ); + CPPUNIT_IMPLY( ite1 < con1 && con1 < sym1, ite1 < sym1 ); + + CPPUNIT_IMPLY( ite1 < emp1 && emp1 < alt1, ite1 < alt1 ); + CPPUNIT_IMPLY( ite1 < emp1 && emp1 < con1, ite1 < con1 ); + CPPUNIT_IMPLY( ite1 < emp1 && emp1 < eps1, ite1 < eps1 ); + CPPUNIT_IMPLY( ite1 < emp1 && emp1 < sym1, ite1 < sym1 ); + + CPPUNIT_IMPLY( ite1 < eps1 && eps1 < alt1, ite1 < alt1 ); + CPPUNIT_IMPLY( ite1 < eps1 && eps1 < con1, ite1 < con1 ); + CPPUNIT_IMPLY( ite1 < eps1 && eps1 < emp1, ite1 < emp1 ); + CPPUNIT_IMPLY( ite1 < eps1 && eps1 < sym1, ite1 < sym1 ); + + CPPUNIT_IMPLY( ite1 < sym1 && sym1 < alt1, ite1 < alt1 ); + CPPUNIT_IMPLY( ite1 < sym1 && sym1 < con1, ite1 < con1 ); + CPPUNIT_IMPLY( ite1 < sym1 && sym1 < emp1, ite1 < emp1 ); + CPPUNIT_IMPLY( ite1 < sym1 && sym1 < eps1, ite1 < eps1 ); + + + + CPPUNIT_IMPLY( emp1 < alt1 && alt1 < con1, emp1 < con1 ); + CPPUNIT_IMPLY( emp1 < alt1 && alt1 < ite1, emp1 < ite1 ); + CPPUNIT_IMPLY( emp1 < alt1 && alt1 < eps1, emp1 < eps1 ); + CPPUNIT_IMPLY( emp1 < alt1 && alt1 < sym1, emp1 < sym1 ); + + CPPUNIT_IMPLY( emp1 < con1 && con1 < alt1, emp1 < alt1 ); + CPPUNIT_IMPLY( emp1 < con1 && con1 < ite1, emp1 < ite1 ); + CPPUNIT_IMPLY( emp1 < con1 && con1 < eps1, emp1 < eps1 ); + CPPUNIT_IMPLY( emp1 < con1 && con1 < sym1, emp1 < sym1 ); + + CPPUNIT_IMPLY( emp1 < ite1 && ite1 < alt1, emp1 < alt1 ); + CPPUNIT_IMPLY( emp1 < ite1 && ite1 < con1, emp1 < con1 ); + CPPUNIT_IMPLY( emp1 < ite1 && ite1 < eps1, emp1 < eps1 ); + CPPUNIT_IMPLY( emp1 < ite1 && ite1 < sym1, emp1 < sym1 ); + + CPPUNIT_IMPLY( emp1 < eps1 && eps1 < alt1, emp1 < alt1 ); + CPPUNIT_IMPLY( emp1 < eps1 && eps1 < con1, emp1 < con1 ); + CPPUNIT_IMPLY( emp1 < eps1 && eps1 < ite1, emp1 < ite1 ); + CPPUNIT_IMPLY( emp1 < eps1 && eps1 < sym1, emp1 < sym1 ); + + CPPUNIT_IMPLY( emp1 < sym1 && sym1 < alt1, emp1 < alt1 ); + CPPUNIT_IMPLY( emp1 < sym1 && sym1 < con1, emp1 < con1 ); + CPPUNIT_IMPLY( emp1 < sym1 && sym1 < ite1, emp1 < ite1 ); + CPPUNIT_IMPLY( emp1 < sym1 && sym1 < eps1, emp1 < eps1 ); + + + + CPPUNIT_IMPLY( eps1 < alt1 && alt1 < con1, eps1 < con1 ); + CPPUNIT_IMPLY( eps1 < alt1 && alt1 < ite1, eps1 < ite1 ); + CPPUNIT_IMPLY( eps1 < alt1 && alt1 < emp1, eps1 < emp1 ); + CPPUNIT_IMPLY( eps1 < alt1 && alt1 < sym1, eps1 < sym1 ); + + CPPUNIT_IMPLY( eps1 < con1 && con1 < alt1, eps1 < alt1 ); + CPPUNIT_IMPLY( eps1 < con1 && con1 < ite1, eps1 < ite1 ); + CPPUNIT_IMPLY( eps1 < con1 && con1 < emp1, eps1 < emp1 ); + CPPUNIT_IMPLY( eps1 < con1 && con1 < sym1, eps1 < sym1 ); + + CPPUNIT_IMPLY( eps1 < ite1 && ite1 < alt1, eps1 < alt1 ); + CPPUNIT_IMPLY( eps1 < ite1 && ite1 < con1, eps1 < con1 ); + CPPUNIT_IMPLY( eps1 < ite1 && ite1 < emp1, eps1 < emp1 ); + CPPUNIT_IMPLY( eps1 < ite1 && ite1 < sym1, eps1 < sym1 ); + + CPPUNIT_IMPLY( eps1 < emp1 && emp1 < alt1, eps1 < alt1 ); + CPPUNIT_IMPLY( eps1 < emp1 && emp1 < con1, eps1 < con1 ); + CPPUNIT_IMPLY( eps1 < emp1 && emp1 < ite1, eps1 < ite1 ); + CPPUNIT_IMPLY( eps1 < emp1 && emp1 < sym1, eps1 < sym1 ); + + CPPUNIT_IMPLY( eps1 < sym1 && sym1 < alt1, eps1 < alt1 ); + CPPUNIT_IMPLY( eps1 < sym1 && sym1 < con1, eps1 < con1 ); + CPPUNIT_IMPLY( eps1 < sym1 && sym1 < ite1, eps1 < ite1 ); + CPPUNIT_IMPLY( eps1 < sym1 && sym1 < emp1, eps1 < emp1 ); + + + + CPPUNIT_IMPLY( sym1 < alt1 && alt1 < con1, sym1 < con1 ); + CPPUNIT_IMPLY( sym1 < alt1 && alt1 < ite1, sym1 < ite1 ); + CPPUNIT_IMPLY( sym1 < alt1 && alt1 < emp1, sym1 < emp1 ); + CPPUNIT_IMPLY( sym1 < alt1 && alt1 < eps1, sym1 < eps1 ); + + CPPUNIT_IMPLY( sym1 < con1 && con1 < alt1, sym1 < alt1 ); + CPPUNIT_IMPLY( sym1 < con1 && con1 < ite1, sym1 < ite1 ); + CPPUNIT_IMPLY( sym1 < con1 && con1 < emp1, sym1 < emp1 ); + CPPUNIT_IMPLY( sym1 < con1 && con1 < eps1, sym1 < eps1 ); + + CPPUNIT_IMPLY( sym1 < ite1 && ite1 < alt1, sym1 < alt1 ); + CPPUNIT_IMPLY( sym1 < ite1 && ite1 < con1, sym1 < con1 ); + CPPUNIT_IMPLY( sym1 < ite1 && ite1 < emp1, sym1 < emp1 ); + CPPUNIT_IMPLY( sym1 < ite1 && ite1 < eps1, sym1 < eps1 ); + + CPPUNIT_IMPLY( sym1 < emp1 && emp1 < alt1, sym1 < alt1 ); + CPPUNIT_IMPLY( sym1 < emp1 && emp1 < con1, sym1 < con1 ); + CPPUNIT_IMPLY( sym1 < emp1 && emp1 < ite1, sym1 < ite1 ); + CPPUNIT_IMPLY( sym1 < emp1 && emp1 < eps1, sym1 < eps1 ); + + CPPUNIT_IMPLY( sym1 < eps1 && eps1 < alt1, sym1 < alt1 ); + CPPUNIT_IMPLY( sym1 < eps1 && eps1 < con1, sym1 < con1 ); + CPPUNIT_IMPLY( sym1 < eps1 && eps1 < ite1, sym1 < ite1 ); + CPPUNIT_IMPLY( sym1 < eps1 && eps1 < emp1, sym1 < emp1 ); + */ +} + +void RTETest::testOrder2() { + /* + rte::UnboundedRTESymbol s1("1"); + rte::UnboundedRTESymbol s2("2"); + rte::UnboundedRTESymbol s3("3"); + + rte::UnboundedRTEEmpty e1; + rte::UnboundedRTEEpsilon e2; + + rte::UnboundedRTEIteration i1(s1); + rte::UnboundedRTEIteration i2(s2); + rte::UnboundedRTEIteration i3(s3); + + rte::UnboundedRTEAlternation a1; + a1.appendElement(s1); + a1.appendElement(s1); + rte::UnboundedRTEAlternation a2; + a2.appendElement(s1); + a2.appendElement(s2); + rte::UnboundedRTEAlternation a3; + a3.appendElement(s1); + a3.appendElement(s3); + rte::UnboundedRTEAlternation a4; + a4.appendElement(s2); + a4.appendElement(s1); + rte::UnboundedRTEAlternation a5; + a5.appendElement(s2); + a5.appendElement(s2); + rte::UnboundedRTEAlternation a6; + a6.appendElement(s2); + a6.appendElement(s3); + rte::UnboundedRTEAlternation a7; + a7.appendElement(s3); + a7.appendElement(s1); + rte::UnboundedRTEAlternation a8; + a8.appendElement(s3); + a8.appendElement(s2); + rte::UnboundedRTEAlternation a9; + a9.appendElement(s3); + a9.appendElement(s3); + + rte::UnboundedRTEConcatenation c1; + c1.appendElement(s1); + c1.appendElement(s1); + rte::UnboundedRTEConcatenation c2; + c2.appendElement(s1); + c2.appendElement(s2); + rte::UnboundedRTEConcatenation c3; + c3.appendElement(s1); + c3.appendElement(s3); + rte::UnboundedRTEConcatenation c4; + c4.appendElement(s2); + c4.appendElement(s1); + rte::UnboundedRTEConcatenation c5; + c5.appendElement(s2); + c5.appendElement(s2); + rte::UnboundedRTEConcatenation c6; + c6.appendElement(s2); + c6.appendElement(s3); + rte::UnboundedRTEConcatenation c7; + c7.appendElement(s3); + c7.appendElement(s1); + rte::UnboundedRTEConcatenation c8; + c8.appendElement(s3); + c8.appendElement(s2); + rte::UnboundedRTEConcatenation c9; + c9.appendElement(s3); + c9.appendElement(s3); + + rte::UnboundedRTE alt1(a1); + rte::UnboundedRTE alt2(a2); + rte::UnboundedRTE alt3(a3); + rte::UnboundedRTE alt4(a4); + rte::UnboundedRTE alt5(a5); + rte::UnboundedRTE alt6(a6); + rte::UnboundedRTE alt7(a7); + rte::UnboundedRTE alt8(a8); + rte::UnboundedRTE alt9(a9); + + rte::UnboundedRTE con1(c1); + rte::UnboundedRTE con2(c2); + rte::UnboundedRTE con3(c3); + rte::UnboundedRTE con4(c4); + rte::UnboundedRTE con5(c5); + rte::UnboundedRTE con6(c6); + rte::UnboundedRTE con7(c7); + rte::UnboundedRTE con8(c8); + rte::UnboundedRTE con9(c9); + + rte::UnboundedRTE ite1(i1); + rte::UnboundedRTE ite2(i2); + rte::UnboundedRTE ite3(i3); + + rte::UnboundedRTE emp1(e1); + rte::UnboundedRTE eps1(e2); + + rte::UnboundedRTE sym1(s1); + rte::UnboundedRTE sym2(s2); + rte::UnboundedRTE sym3(s3); + + + + CPPUNIT_ASSERT(alt1 == alt1); + CPPUNIT_ASSERT(alt1 < alt2); + CPPUNIT_ASSERT(alt1 < alt3); + CPPUNIT_ASSERT(alt1 < alt4); + CPPUNIT_ASSERT(alt1 < alt5); + CPPUNIT_ASSERT(alt1 < alt6); + CPPUNIT_ASSERT(alt1 < alt7); + CPPUNIT_ASSERT(alt1 < alt8); + CPPUNIT_ASSERT(alt1 < alt9); + + CPPUNIT_ASSERT(alt2 > alt1); + CPPUNIT_ASSERT(alt2 == alt2); + CPPUNIT_ASSERT(alt2 < alt3); + CPPUNIT_ASSERT(alt2 < alt4); + CPPUNIT_ASSERT(alt2 < alt5); + CPPUNIT_ASSERT(alt2 < alt6); + CPPUNIT_ASSERT(alt2 < alt7); + CPPUNIT_ASSERT(alt2 < alt8); + CPPUNIT_ASSERT(alt2 < alt9); + + CPPUNIT_ASSERT(alt3 > alt1); + CPPUNIT_ASSERT(alt3 > alt2); + CPPUNIT_ASSERT(alt3 == alt3); + CPPUNIT_ASSERT(alt3 < alt4); + CPPUNIT_ASSERT(alt3 < alt5); + CPPUNIT_ASSERT(alt3 < alt6); + CPPUNIT_ASSERT(alt3 < alt7); + CPPUNIT_ASSERT(alt3 < alt8); + CPPUNIT_ASSERT(alt3 < alt9); + + CPPUNIT_ASSERT(alt4 > alt1); + CPPUNIT_ASSERT(alt4 > alt2); + CPPUNIT_ASSERT(alt4 > alt3); + CPPUNIT_ASSERT(alt4 == alt4); + CPPUNIT_ASSERT(alt4 < alt5); + CPPUNIT_ASSERT(alt4 < alt6); + CPPUNIT_ASSERT(alt4 < alt7); + CPPUNIT_ASSERT(alt4 < alt8); + CPPUNIT_ASSERT(alt4 < alt9); + + CPPUNIT_ASSERT(alt5 > alt1); + CPPUNIT_ASSERT(alt5 > alt2); + CPPUNIT_ASSERT(alt5 > alt3); + CPPUNIT_ASSERT(alt5 > alt4); + CPPUNIT_ASSERT(alt5 == alt5); + CPPUNIT_ASSERT(alt5 < alt6); + CPPUNIT_ASSERT(alt5 < alt7); + CPPUNIT_ASSERT(alt5 < alt8); + CPPUNIT_ASSERT(alt5 < alt9); + + CPPUNIT_ASSERT(alt6 > alt1); + CPPUNIT_ASSERT(alt6 > alt2); + CPPUNIT_ASSERT(alt6 > alt3); + CPPUNIT_ASSERT(alt6 > alt4); + CPPUNIT_ASSERT(alt6 > alt5); + CPPUNIT_ASSERT(alt6 == alt6); + CPPUNIT_ASSERT(alt6 < alt7); + CPPUNIT_ASSERT(alt6 < alt8); + CPPUNIT_ASSERT(alt6 < alt9); + + CPPUNIT_ASSERT(alt7 > alt1); + CPPUNIT_ASSERT(alt7 > alt2); + CPPUNIT_ASSERT(alt7 > alt3); + CPPUNIT_ASSERT(alt7 > alt4); + CPPUNIT_ASSERT(alt7 > alt5); + CPPUNIT_ASSERT(alt7 > alt6); + CPPUNIT_ASSERT(alt7 == alt7); + CPPUNIT_ASSERT(alt7 < alt8); + CPPUNIT_ASSERT(alt7 < alt9); + + CPPUNIT_ASSERT(alt8 > alt1); + CPPUNIT_ASSERT(alt8 > alt2); + CPPUNIT_ASSERT(alt8 > alt3); + CPPUNIT_ASSERT(alt8 > alt4); + CPPUNIT_ASSERT(alt8 > alt5); + CPPUNIT_ASSERT(alt8 > alt6); + CPPUNIT_ASSERT(alt8 > alt7); + CPPUNIT_ASSERT(alt8 == alt8); + CPPUNIT_ASSERT(alt8 < alt9); + + CPPUNIT_ASSERT(alt9 > alt1); + CPPUNIT_ASSERT(alt9 > alt2); + CPPUNIT_ASSERT(alt9 > alt3); + CPPUNIT_ASSERT(alt9 > alt4); + CPPUNIT_ASSERT(alt9 > alt5); + CPPUNIT_ASSERT(alt9 > alt6); + CPPUNIT_ASSERT(alt9 > alt7); + CPPUNIT_ASSERT(alt9 > alt8); + CPPUNIT_ASSERT(alt9 == alt9); + + + + CPPUNIT_ASSERT(con1 == con1); + CPPUNIT_ASSERT(con1 < con2); + CPPUNIT_ASSERT(con1 < con3); + CPPUNIT_ASSERT(con1 < con4); + CPPUNIT_ASSERT(con1 < con5); + CPPUNIT_ASSERT(con1 < con6); + CPPUNIT_ASSERT(con1 < con7); + CPPUNIT_ASSERT(con1 < con8); + CPPUNIT_ASSERT(con1 < con9); + + CPPUNIT_ASSERT(con2 > con1); + CPPUNIT_ASSERT(con2 == con2); + CPPUNIT_ASSERT(con2 < con3); + CPPUNIT_ASSERT(con2 < con4); + CPPUNIT_ASSERT(con2 < con5); + CPPUNIT_ASSERT(con2 < con6); + CPPUNIT_ASSERT(con2 < con7); + CPPUNIT_ASSERT(con2 < con8); + CPPUNIT_ASSERT(con2 < con9); + + CPPUNIT_ASSERT(con3 > con1); + CPPUNIT_ASSERT(con3 > con2); + CPPUNIT_ASSERT(con3 == con3); + CPPUNIT_ASSERT(con3 < con4); + CPPUNIT_ASSERT(con3 < con5); + CPPUNIT_ASSERT(con3 < con6); + CPPUNIT_ASSERT(con3 < con7); + CPPUNIT_ASSERT(con3 < con8); + CPPUNIT_ASSERT(con3 < con9); + + CPPUNIT_ASSERT(con4 > con1); + CPPUNIT_ASSERT(con4 > con2); + CPPUNIT_ASSERT(con4 > con3); + CPPUNIT_ASSERT(con4 == con4); + CPPUNIT_ASSERT(con4 < con5); + CPPUNIT_ASSERT(con4 < con6); + CPPUNIT_ASSERT(con4 < con7); + CPPUNIT_ASSERT(con4 < con8); + CPPUNIT_ASSERT(con4 < con9); + + CPPUNIT_ASSERT(con5 > con1); + CPPUNIT_ASSERT(con5 > con2); + CPPUNIT_ASSERT(con5 > con3); + CPPUNIT_ASSERT(con5 > con4); + CPPUNIT_ASSERT(con5 == con5); + CPPUNIT_ASSERT(con5 < con6); + CPPUNIT_ASSERT(con5 < con7); + CPPUNIT_ASSERT(con5 < con8); + CPPUNIT_ASSERT(con5 < con9); + + CPPUNIT_ASSERT(con6 > con1); + CPPUNIT_ASSERT(con6 > con2); + CPPUNIT_ASSERT(con6 > con3); + CPPUNIT_ASSERT(con6 > con4); + CPPUNIT_ASSERT(con6 > con5); + CPPUNIT_ASSERT(con6 == con6); + CPPUNIT_ASSERT(con6 < con7); + CPPUNIT_ASSERT(con6 < con8); + CPPUNIT_ASSERT(con6 < con9); + + CPPUNIT_ASSERT(con7 > con1); + CPPUNIT_ASSERT(con7 > con2); + CPPUNIT_ASSERT(con7 > con3); + CPPUNIT_ASSERT(con7 > con4); + CPPUNIT_ASSERT(con7 > con5); + CPPUNIT_ASSERT(con7 > con6); + CPPUNIT_ASSERT(con7 == con7); + CPPUNIT_ASSERT(con7 < con8); + CPPUNIT_ASSERT(con7 < con9); + + CPPUNIT_ASSERT(con8 > con1); + CPPUNIT_ASSERT(con8 > con2); + CPPUNIT_ASSERT(con8 > con3); + CPPUNIT_ASSERT(con8 > con4); + CPPUNIT_ASSERT(con8 > con5); + CPPUNIT_ASSERT(con8 > con6); + CPPUNIT_ASSERT(con8 > con7); + CPPUNIT_ASSERT(con8 == con8); + CPPUNIT_ASSERT(con8 < con9); + + CPPUNIT_ASSERT(con9 > con1); + CPPUNIT_ASSERT(con9 > con2); + CPPUNIT_ASSERT(con9 > con3); + CPPUNIT_ASSERT(con9 > con4); + CPPUNIT_ASSERT(con9 > con5); + CPPUNIT_ASSERT(con9 > con6); + CPPUNIT_ASSERT(con9 > con7); + CPPUNIT_ASSERT(con9 > con8); + CPPUNIT_ASSERT(con9 == con9); + + + CPPUNIT_ASSERT(ite1 == ite1); + CPPUNIT_ASSERT(ite1 < ite2); + CPPUNIT_ASSERT(ite1 < ite3); + + CPPUNIT_ASSERT(ite2 > ite1); + CPPUNIT_ASSERT(ite2 == ite2); + CPPUNIT_ASSERT(ite2 < ite3); + + CPPUNIT_ASSERT(ite3 > ite1); + CPPUNIT_ASSERT(ite3 > ite2); + CPPUNIT_ASSERT(ite3 == ite3); + + + + CPPUNIT_ASSERT(emp1 == emp1); + + + + CPPUNIT_ASSERT(eps1 == eps1); + + + + CPPUNIT_ASSERT(sym1 == sym1); + CPPUNIT_ASSERT(sym1 < sym2); + CPPUNIT_ASSERT(sym1 < sym3); + + CPPUNIT_ASSERT(sym2 > sym1); + CPPUNIT_ASSERT(sym2 == sym2); + CPPUNIT_ASSERT(sym2 < sym3); + + CPPUNIT_ASSERT(sym3 > sym1); + CPPUNIT_ASSERT(sym3 > sym2); + CPPUNIT_ASSERT(sym3 == sym3); + */ +} diff --git a/alib2data/test-src/rte/RTETest.h b/alib2data/test-src/rte/RTETest.h new file mode 100644 index 0000000000000000000000000000000000000000..a58704b6b7abb0f7c6c0bfdff2eabecc2467e931 --- /dev/null +++ b/alib2data/test-src/rte/RTETest.h @@ -0,0 +1,25 @@ +#ifndef RTE_TEST_H_ +#define RTE_TEST_H_ + +#include <cppunit/extensions/HelperMacros.h> + +class RTETest : public CppUnit::TestFixture +{ + CPPUNIT_TEST_SUITE( RTETest ); + CPPUNIT_TEST( testCopyConstruct ); + CPPUNIT_TEST( testXMLParser ); + CPPUNIT_TEST( testOrder ); + CPPUNIT_TEST( testOrder2 ); + CPPUNIT_TEST_SUITE_END(); + +public: + void setUp(); + void tearDown(); + + void testCopyConstruct(); + void testXMLParser(); + void testOrder(); + void testOrder2(); +}; + +#endif // REG_EXP_TEST_H_