diff --git a/alib2data/src/rte/common/RTEFromXMLParser.cpp b/alib2data/src/rte/common/RTEFromXMLParser.cpp index 7f7c23fd5262d286050d00a6b3d06ca61f76eac9..d3797c4a39b940ae36d8f9b4f471e7eb0d59e5d9 100644 --- a/alib2data/src/rte/common/RTEFromXMLParser.cpp +++ b/alib2data/src/rte/common/RTEFromXMLParser.cpp @@ -161,11 +161,11 @@ FormalRTEAlternation * RTEFromXMLParser::parseFormalRTEAlternation ( std::deque FormalRTESubstitution * RTEFromXMLParser::parseFormalRTESubstitution ( std::deque < sax::Token >::iterator & input ) { sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "substitution" ); - alphabet::RankedSymbol ssymb = alib::xmlApi < alphabet::RankedSymbol >::parse ( input ); - FormalRTEElement * element1 = parseFormalRTEElement ( input ); - FormalRTEElement * element2 = parseFormalRTEElement ( input ); + FormalRTESymbol * ssymb = new FormalRTESymbol ( alib::xmlApi < alphabet::RankedSymbol >::parse ( input ) ); + FormalRTEElement * element1 = parseFormalRTEElement ( input ); + FormalRTEElement * element2 = parseFormalRTEElement ( input ); - FormalRTESubstitution * substitution = new FormalRTESubstitution ( std::move ( * element1 ), std::move ( * element2 ), std::move ( ssymb ) ); + FormalRTESubstitution * substitution = new FormalRTESubstitution ( std::move ( * element1 ), std::move ( * element2 ), std::move ( * ssymb ) ); delete element1; delete element2; @@ -177,9 +177,9 @@ FormalRTESubstitution * RTEFromXMLParser::parseFormalRTESubstitution ( std::dequ FormalRTEIteration * RTEFromXMLParser::parseFormalRTEIteration ( std::deque < sax::Token >::iterator & input ) { sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, "iteration" ); - alphabet::RankedSymbol ssymb = alib::xmlApi < alphabet::RankedSymbol >::parse ( input ); + FormalRTESymbol * ssymb = new FormalRTESymbol ( alib::xmlApi < alphabet::RankedSymbol >::parse ( input ) ); FormalRTEElement * element = parseFormalRTEElement ( input ); - FormalRTEIteration * iteration = new FormalRTEIteration ( std::move ( * element ), std::move ( ssymb ) ); + FormalRTEIteration * iteration = new FormalRTEIteration ( std::move ( * element ), std::move ( * ssymb ) ); delete element; diff --git a/alib2data/src/rte/common/RTEToXMLComposer.cpp b/alib2data/src/rte/common/RTEToXMLComposer.cpp index 8e7d5ee6c4352c58f48b86eafa3315e881510678..a986b18bb1051595c46120328fecade55648e867 100644 --- a/alib2data/src/rte/common/RTEToXMLComposer.cpp +++ b/alib2data/src/rte/common/RTEToXMLComposer.cpp @@ -73,7 +73,7 @@ void RTEToXMLComposer::Visit ( void * userData, const FormalRTESubstitution & su out.emplace_back ( "substitution", sax::Token::TokenType::START_ELEMENT ); - alib::xmlApi < alphabet::RankedSymbol >::compose ( out, substitution.getSubstitutionSymbol ( ) ); + alib::xmlApi < alphabet::RankedSymbol >::compose ( out, substitution.getSubstitutionSymbol ( ).getSymbol ( ) ); substitution.getLeftElement ( ).Accept ( userData, * this ); substitution.getRightElement ( ).Accept ( userData, * this ); @@ -85,7 +85,7 @@ void RTEToXMLComposer::Visit ( void * userData, const FormalRTEIteration & itera out.emplace_back ( "iteration", sax::Token::TokenType::START_ELEMENT ); - alib::xmlApi < alphabet::RankedSymbol >::compose ( out, iteration.getSubstitutionSymbol ( ) ); + alib::xmlApi < alphabet::RankedSymbol >::compose ( out, iteration.getSubstitutionSymbol ( ).getSymbol ( ) ); iteration.getElement ( ).Accept ( userData, * this ); out.emplace_back ( "iteration", sax::Token::TokenType::END_ELEMENT ); diff --git a/alib2data/src/rte/formal/FormalRTEIteration.cpp b/alib2data/src/rte/formal/FormalRTEIteration.cpp index 657737d1608ff5bc2aa2e733b884cf7c6d57a02e..05720a241ce6a057ef9451297fd0acf8166f6b87 100644 --- a/alib2data/src/rte/formal/FormalRTEIteration.cpp +++ b/alib2data/src/rte/formal/FormalRTEIteration.cpp @@ -6,15 +6,17 @@ namespace rte { -FormalRTEIteration::FormalRTEIteration ( FormalRTEElement && element, alphabet::RankedSymbol && substitutionSymbol ) : element ( NULL ), substitutionSymbol ( std::move ( substitutionSymbol ) ) { +FormalRTEIteration::FormalRTEIteration ( FormalRTEElement && element, FormalRTESymbol && substitutionSymbol ) : element ( NULL ), substitutionSymbol ( NULL ) { this->setElement ( std::move ( element ) ); + this->setSubstitutionSymbol ( std::move ( substitutionSymbol ) ); } -FormalRTEIteration::FormalRTEIteration ( const FormalRTEElement & element, const alphabet::RankedSymbol & substitutionSymbol ) : element ( NULL ), substitutionSymbol ( substitutionSymbol ) { +FormalRTEIteration::FormalRTEIteration ( const FormalRTEElement & element, const FormalRTESymbol & substitutionSymbol ) : element ( NULL ), substitutionSymbol ( NULL ) { this->setElement ( element ); + this->setSubstitutionSymbol ( substitutionSymbol ); } -FormalRTEIteration::FormalRTEIteration ( const FormalRTEIteration & other ) : element ( other.element->clone ( ) ), substitutionSymbol ( other.substitutionSymbol ) { +FormalRTEIteration::FormalRTEIteration ( const FormalRTEIteration & other ) : element ( other.element->clone ( ) ), substitutionSymbol ( other.substitutionSymbol->clone ( ) ) { } FormalRTEIteration::FormalRTEIteration ( FormalRTEIteration && other ) noexcept : element ( other.element ), substitutionSymbol ( std::move ( other.substitutionSymbol ) ) { @@ -53,12 +55,12 @@ FormalRTEElement & FormalRTEIteration::getElement ( ) { return * element; } -const alphabet::RankedSymbol & FormalRTEIteration::getSubstitutionSymbol ( ) const { - return substitutionSymbol; +const FormalRTESymbol & FormalRTEIteration::getSubstitutionSymbol ( ) const { + return * substitutionSymbol; } -alphabet::RankedSymbol & FormalRTEIteration::getSubstitutionSymbol ( ) { - return substitutionSymbol; +FormalRTESymbol & FormalRTEIteration::getSubstitutionSymbol ( ) { + return * substitutionSymbol; } void FormalRTEIteration::setElement ( const FormalRTEElement & element ) { @@ -81,12 +83,12 @@ void FormalRTEIteration::setElement ( FormalRTEElement && element ) { this->element = elem; } -void FormalRTEIteration::setSubstitutionSymbol ( const alphabet::RankedSymbol & substitutionSymbol ) { - this->substitutionSymbol = substitutionSymbol; +void FormalRTEIteration::setSubstitutionSymbol ( const FormalRTESymbol & substitutionSymbol ) { + this->substitutionSymbol = substitutionSymbol.clone ( ); } -void FormalRTEIteration::setSubstitutionSymbol ( alphabet::RankedSymbol && substitutionSymbol ) { - this->substitutionSymbol = std::move ( substitutionSymbol ); +void FormalRTEIteration::setSubstitutionSymbol ( FormalRTESymbol && substitutionSymbol ) { + this->substitutionSymbol = std::move ( substitutionSymbol ).plunder ( ); } FormalRTEIteration * FormalRTEIteration::clone ( ) const { @@ -124,11 +126,11 @@ bool FormalRTEIteration::attachRTE ( const RTEAlphabet * regexp ) { if ( !this->element->attachRTE ( regexp ) ) return false; - return this->parentRTE->getConstantAlphabet ( ).find ( this->substitutionSymbol ) != this->parentRTE->getConstantAlphabet ( ).end ( ); + return this->parentRTE->getConstantAlphabet ( ).find ( this->substitutionSymbol->getSymbol ( ) ) != this->parentRTE->getConstantAlphabet ( ).end ( ); } void FormalRTEIteration::computeMinimalAlphabet ( std::set < alphabet::RankedSymbol > & alphabetF, std::set < alphabet::RankedSymbol > & alphabetK ) const { - alphabetK.insert ( substitutionSymbol ); + alphabetK.insert ( substitutionSymbol->getSymbol ( ) ); element->computeMinimalAlphabet ( alphabetF, alphabetK ); } diff --git a/alib2data/src/rte/formal/FormalRTEIteration.h b/alib2data/src/rte/formal/FormalRTEIteration.h index 502cbd20db5978777db8d5d2aefaf873a8211ddc..21d5965fea705cf3bc1051b886d85491d041c116 100644 --- a/alib2data/src/rte/formal/FormalRTEIteration.h +++ b/alib2data/src/rte/formal/FormalRTEIteration.h @@ -2,6 +2,7 @@ #define FORMAL_RTE_ITERATION_H_ #include "FormalRTEElement.h" +#include "FormalRTESymbol.h" namespace rte { @@ -18,7 +19,7 @@ class RTEOptimize; class FormalRTEIteration : public FormalRTEElement { protected: FormalRTEElement * element; - alphabet::RankedSymbol substitutionSymbol; + FormalRTESymbol * substitutionSymbol; /** * @copydoc FormalRTEElement::clone() const @@ -46,8 +47,8 @@ public: visitor.Visit ( userData, * this ); } - explicit FormalRTEIteration ( FormalRTEElement &&, alphabet::RankedSymbol && ); - explicit FormalRTEIteration ( const FormalRTEElement &, const alphabet::RankedSymbol & ); + explicit FormalRTEIteration ( FormalRTEElement &&, FormalRTESymbol && ); + explicit FormalRTEIteration ( const FormalRTEElement &, const FormalRTESymbol & ); FormalRTEIteration ( const FormalRTEIteration & other ); FormalRTEIteration ( FormalRTEIteration && other ) noexcept; @@ -69,13 +70,13 @@ public: * @return element */ const FormalRTEElement & getElement ( ) const; - const alphabet::RankedSymbol & getSubstitutionSymbol ( ) const; + const FormalRTESymbol & getSubstitutionSymbol ( ) const; /** * @return element */ FormalRTEElement & getElement ( ); - alphabet::RankedSymbol & getSubstitutionSymbol ( ); + FormalRTESymbol & getSubstitutionSymbol ( ); /** * @param element to iterate @@ -83,8 +84,8 @@ public: void setElement ( const FormalRTEElement & element ); void setElement ( FormalRTEElement && element ); - void setSubstitutionSymbol ( const alphabet::RankedSymbol & element ); - void setSubstitutionSymbol ( alphabet::RankedSymbol && element ); + void setSubstitutionSymbol ( const FormalRTESymbol & element ); + void setSubstitutionSymbol ( FormalRTESymbol && element ); virtual int compare ( const FormalRTEElement & other ) const { if ( std::type_index ( typeid ( * this ) ) == std::type_index ( typeid ( other ) ) ) return this->compare ( ( decltype ( * this ) )other ); diff --git a/alib2data/src/rte/formal/FormalRTESubstitution.cpp b/alib2data/src/rte/formal/FormalRTESubstitution.cpp index 53e7bda7559d7598fa4376fa29a57ff14c743a9c..a51a82293ad1ab596d7510de2e080f7d36b2f097 100644 --- a/alib2data/src/rte/formal/FormalRTESubstitution.cpp +++ b/alib2data/src/rte/formal/FormalRTESubstitution.cpp @@ -6,22 +6,25 @@ namespace rte { -FormalRTESubstitution::FormalRTESubstitution ( FormalRTEElement && left, FormalRTEElement && right, alphabet::RankedSymbol && substitutionSymbol ) : left ( NULL ), right ( NULL ), substitutionSymbol ( std::move ( substitutionSymbol ) ) { +FormalRTESubstitution::FormalRTESubstitution ( FormalRTEElement && left, FormalRTEElement && right, FormalRTESymbol && substitutionSymbol ) : left ( NULL ), right ( NULL ), substitutionSymbol ( NULL ) { this->left = std::move ( left ).plunder ( ); this->right = std::move ( right ).plunder ( ); + this->substitutionSymbol = std::move ( substitutionSymbol ).plunder ( ); } -FormalRTESubstitution::FormalRTESubstitution ( const FormalRTEElement & left, const FormalRTEElement & right, const alphabet::RankedSymbol & substitutionSymbol ) : left ( NULL ), right ( NULL ), substitutionSymbol ( substitutionSymbol ) { +FormalRTESubstitution::FormalRTESubstitution ( const FormalRTEElement & left, const FormalRTEElement & right, const FormalRTESymbol & substitutionSymbol ) : left ( NULL ), right ( NULL ), substitutionSymbol ( NULL ) { this->left = left.clone ( ); this->right = right.clone ( ); + this->substitutionSymbol = substitutionSymbol.clone ( ); } -FormalRTESubstitution::FormalRTESubstitution ( const FormalRTESubstitution & other ) : left ( other.left->clone ( ) ), right ( other.right->clone ( ) ), substitutionSymbol ( other.substitutionSymbol ) { +FormalRTESubstitution::FormalRTESubstitution ( const FormalRTESubstitution & other ) : left ( other.left->clone ( ) ), right ( other.right->clone ( ) ), substitutionSymbol ( other.substitutionSymbol->clone ( ) ) { } FormalRTESubstitution::FormalRTESubstitution ( FormalRTESubstitution && other ) noexcept : left ( std::move ( other.left ) ), right ( std::move ( other.right ) ), substitutionSymbol ( std::move ( other.substitutionSymbol ) ) { other.left = NULL; other.right = NULL; + other.substitutionSymbol = NULL; this->attachRTE ( NULL ); } @@ -58,8 +61,8 @@ const FormalRTEElement & FormalRTESubstitution::getRightElement ( ) const { return * right; } -const alphabet::RankedSymbol & FormalRTESubstitution::getSubstitutionSymbol ( ) const { - return substitutionSymbol; +const FormalRTESymbol & FormalRTESubstitution::getSubstitutionSymbol ( ) const { + return * substitutionSymbol; } FormalRTEElement & FormalRTESubstitution::getLeftElement ( ) { @@ -70,8 +73,8 @@ FormalRTEElement & FormalRTESubstitution::getRightElement ( ) { return * right; } -alphabet::RankedSymbol & FormalRTESubstitution::getSubstitutionSymbol ( ) { - return substitutionSymbol; +FormalRTESymbol & FormalRTESubstitution::getSubstitutionSymbol ( ) { + return * substitutionSymbol; } void FormalRTESubstitution::setLeftElement ( const FormalRTEElement & element ) { @@ -114,12 +117,12 @@ void FormalRTESubstitution::setRightElement ( FormalRTEElement && element ) { this->right = elem; } -void FormalRTESubstitution::setSubstitutionSymbol ( const alphabet::RankedSymbol & substitutionSymbol ) { - this->substitutionSymbol = substitutionSymbol; +void FormalRTESubstitution::setSubstitutionSymbol ( const FormalRTESymbol & substitutionSymbol ) { + this->substitutionSymbol = substitutionSymbol.clone ( ); } -void FormalRTESubstitution::setSubstitutionSymbol ( alphabet::RankedSymbol && substitutionSymbol ) { - this->substitutionSymbol = std::move ( substitutionSymbol ); +void FormalRTESubstitution::setSubstitutionSymbol ( FormalRTESymbol && substitutionSymbol ) { + this->substitutionSymbol = std::move ( substitutionSymbol ).plunder ( ); } FormalRTESubstitution * FormalRTESubstitution::clone ( ) const { @@ -166,7 +169,7 @@ bool FormalRTESubstitution::testSymbol ( const alphabet::RankedSymbol & symbol ) if ( right->testSymbol ( symbol ) ) return true; - if ( substitutionSymbol == symbol ) return true; + if ( substitutionSymbol->getSymbol ( ) == symbol ) return true; return false; } @@ -182,11 +185,11 @@ bool FormalRTESubstitution::attachRTE ( const RTEAlphabet * regexp ) { if ( !right->attachRTE ( regexp ) ) return false; - return this->parentRTE->getConstantAlphabet ( ).find ( this->substitutionSymbol ) != this->parentRTE->getConstantAlphabet ( ).end ( ); + return this->parentRTE->getConstantAlphabet ( ).find ( this->substitutionSymbol->getSymbol ( ) ) != this->parentRTE->getConstantAlphabet ( ).end ( ); } void FormalRTESubstitution::computeMinimalAlphabet ( std::set < alphabet::RankedSymbol > & alphabetF, std::set < alphabet::RankedSymbol > & alphabetK ) const { - alphabetK.insert ( substitutionSymbol ); + alphabetK.insert ( substitutionSymbol->getSymbol ( ) ); left->computeMinimalAlphabet ( alphabetF, alphabetK ); right->computeMinimalAlphabet ( alphabetF, alphabetK ); } diff --git a/alib2data/src/rte/formal/FormalRTESubstitution.h b/alib2data/src/rte/formal/FormalRTESubstitution.h index 40c11ecec18c63f637ffaa025f9749c328c981d8..0d4de57e204ac4f495d38076b6868f2de4a26e52 100644 --- a/alib2data/src/rte/formal/FormalRTESubstitution.h +++ b/alib2data/src/rte/formal/FormalRTESubstitution.h @@ -2,6 +2,7 @@ #define FORMAL_RTE_SUBSTITUTION_H_ #include "FormalRTEElement.h" +#include "FormalRTESymbol.h" namespace rte { @@ -19,7 +20,7 @@ protected: FormalRTEElement * left; FormalRTEElement * right; - alphabet::RankedSymbol substitutionSymbol; // substite this in left by right + FormalRTESymbol * substitutionSymbol; // substite this in left by right /** * @copydoc FormalRTEElement::testSymbol() const @@ -41,8 +42,8 @@ public: visitor.Visit ( userData, * this ); } - explicit FormalRTESubstitution ( FormalRTEElement && left, FormalRTEElement && right, alphabet::RankedSymbol && substitutionSymbol ); - explicit FormalRTESubstitution ( const FormalRTEElement & left, const FormalRTEElement & right, const alphabet::RankedSymbol & substitutionSymbol ); + explicit FormalRTESubstitution ( FormalRTEElement && left, FormalRTEElement && right, FormalRTESymbol && substitutionSymbol ); + explicit FormalRTESubstitution ( const FormalRTEElement & left, const FormalRTEElement & right, const FormalRTESymbol & substitutionSymbol ); FormalRTESubstitution ( const FormalRTESubstitution & other ); FormalRTESubstitution ( FormalRTESubstitution && other ) noexcept; @@ -65,14 +66,14 @@ public: */ const FormalRTEElement & getLeftElement ( ) const; const FormalRTEElement & getRightElement ( ) const; - const alphabet::RankedSymbol & getSubstitutionSymbol ( ) const; + const FormalRTESymbol & getSubstitutionSymbol ( ) const; /** * @return elements */ FormalRTEElement & getLeftElement ( ); FormalRTEElement & getRightElement ( ); - alphabet::RankedSymbol & getSubstitutionSymbol ( ); + FormalRTESymbol & getSubstitutionSymbol ( ); /** * @param element to append @@ -83,8 +84,8 @@ public: void setRightElement ( const FormalRTEElement & element ); void setRightElement ( FormalRTEElement && element ); - void setSubstitutionSymbol ( const alphabet::RankedSymbol & element ); - void setSubstitutionSymbol ( alphabet::RankedSymbol && element ); + void setSubstitutionSymbol ( const FormalRTESymbol & element ); + void setSubstitutionSymbol ( FormalRTESymbol && element ); virtual int compare ( const FormalRTEElement & other ) const { if ( std::type_index ( typeid ( * this ) ) == std::type_index ( typeid ( other ) ) ) return this->compare ( ( decltype ( * this ) )other ); diff --git a/alib2data/src/rte/formal/FormalRTESymbol.cpp b/alib2data/src/rte/formal/FormalRTESymbol.cpp index 420ba05f1d7853ade8ed17f813ca8a34b3815b88..5baaf329fbb6da2948cb405b11712f40ecfa3804 100644 --- a/alib2data/src/rte/formal/FormalRTESymbol.cpp +++ b/alib2data/src/rte/formal/FormalRTESymbol.cpp @@ -134,7 +134,7 @@ bool FormalRTESymbol::attachRTE ( const RTEAlphabet * regexp ) { for ( FormalRTESymbol * const & element : this->elements ) if ( !element->attachRTE ( regexp ) ) return false; - return this->parentRTE->getAlphabet ( ).find ( this->symbol ) != this->parentRTE->getAlphabet ( ).end ( ); + return this->parentRTE->getAlphabet ( ).find ( this->symbol ) != this->parentRTE->getAlphabet ( ).end ( ) || this->parentRTE->getConstantAlphabet ( ).find ( this->symbol ) != this->parentRTE->getConstantAlphabet ( ).end ( ); } void FormalRTESymbol::computeMinimalAlphabet ( std::set < alphabet::RankedSymbol > & alphabetF, std::set < alphabet::RankedSymbol > & /* alphabetK */ ) const { diff --git a/alib2data/test-src/rte/RTETest.cpp b/alib2data/test-src/rte/RTETest.cpp index 90df05b07dcdae024e70ed69da556a5cc8b63fe2..62f98b4f09c7a7f3922886635369ef9feb708ef9 100644 --- a/alib2data/test-src/rte/RTETest.cpp +++ b/alib2data/test-src/rte/RTETest.cpp @@ -4,8 +4,8 @@ #include "sax/SaxParseInterface.h" #include "sax/SaxComposeInterface.h" -//#include "rte/unbounded/UnboundedRTE.h" -//#include "rte/unbounded/UnboundedRTEElements.h" +// #include "rte/unbounded/UnboundedRTE.h" +// #include "rte/unbounded/UnboundedRTEElements.h" #include "rte/formal/FormalRTE.h" #include "rte/formal/FormalRTEElements.h" @@ -13,651 +13,652 @@ #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))) +#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 ); +CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( RTETest, "rte" ); +CPPUNIT_TEST_SUITE_REGISTRATION ( RTETest ); -void RTETest::setUp() { +void RTETest::setUp ( ) { } -void RTETest::tearDown() { +void RTETest::tearDown ( ) { } -void RTETest::testCopyConstruct() { +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 ); - */ + * 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); + 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}); + 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::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::FormalRTEAlternation alt = rte::FormalRTEAlternation ( b, c ); - rte::FormalRTESymbol a = rte::FormalRTESymbol(symb_a2); - a.appendElement(y); - a.appendElement(z); + 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::FormalRTEIteration iter = rte::FormalRTEIteration ( a, rte::FormalRTESymbol ( symb_y0 ) ); + rte::FormalRTESubstitution subst = rte::FormalRTESubstitution ( iter, alt, rte::FormalRTESymbol ( symb_z0 ) ); + frte.setRTE ( subst ); - rte::FormalRTE frte2(frte); - CPPUNIT_ASSERT( frte == frte2 ); + rte::FormalRTE frte2 ( frte ); + CPPUNIT_ASSERT ( frte == frte2 ); - rte::FormalRTE frte3(std::move(frte)); - CPPUNIT_ASSERT( frte2 == frte3 ); + 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); +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::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::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::FormalRTEAlternation alt = rte::FormalRTEAlternation ( b, c ); - rte::FormalRTESymbol a = rte::FormalRTESymbol(symb_a2); - a.appendElement(y); - a.appendElement(z); + rte::FormalRTESymbol a = rte::FormalRTESymbol ( symb_a2 ); + a.appendElement ( y ); + a.appendElement ( z ); - rte::FormalRTESymbol d = rte::FormalRTESymbol(symb_d1); - d.appendElement(a); + 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::FormalRTEIteration iter = rte::FormalRTEIteration ( d, rte::FormalRTESymbol ( symb_y0 ) ); + rte::FormalRTESubstitution subst = rte::FormalRTESubstitution ( iter, alt, rte::FormalRTESymbol ( symb_z0 ) ); + frte.setRTE ( subst ); - rte::RTE rte(frte); - alib::XmlDataFactory::toStdout(rte); + rte::RTE rte ( frte ); + alib::XmlDataFactory::toStdout ( rte ); { - std::deque<sax::Token> tokens = alib::XmlDataFactory::toTokens(rte); + std::deque < sax::Token > tokens = alib::XmlDataFactory::toTokens ( rte ); std::string tmp; - sax::SaxComposeInterface::printMemory(tmp, tokens); + 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)); + 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 ); + CPPUNIT_ASSERT ( rte == rte2 ); } { - std::string tmp = alib::XmlDataFactory::toString(rte); - rte::RTE rte2 = alib::XmlDataFactory::fromString<rte::RTE>(tmp); + std::string tmp = alib::XmlDataFactory::toString ( rte ); + rte::RTE rte2 = alib::XmlDataFactory::fromString < rte::RTE > ( tmp ); - CPPUNIT_ASSERT( rte == rte2 ); + CPPUNIT_ASSERT ( rte == rte2 ); } } -void RTETest::testOrder() { +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 ); - */ + * 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() { +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); - */ + * 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); + */ }