diff --git a/alib2/test-src/alphabet/SymbolTest.cpp b/alib2/test-src/alphabet/SymbolTest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e668769a3c10df82098db0c8063baea71513c591 --- /dev/null +++ b/alib2/test-src/alphabet/SymbolTest.cpp @@ -0,0 +1,528 @@ +#include <list> +#include "SymbolTest.h" + +#include "sax/SaxParseInterface.h" +#include "sax/SaxComposeInterface.h" + +#include "alphabet/Symbol.h" +#include "alphabet/LabeledSymbol.h" +#include "alphabet/SymbolFromStringParser.h" +#include "alphabet/SymbolToStringComposer.h" +#include "alphabet/SymbolFromXMLParser.h" +#include "alphabet/SymbolToXMLComposer.h" + +#include "factory/SymbolFactory.h" + +#include "label/StringLabel.h" +#include "label/Label.h" + +#define CPPUNIT_IMPLY(x, y) CPPUNIT_ASSERT(!(x) || (y)) + +CPPUNIT_TEST_SUITE_REGISTRATION( SymbolTest ); + +void SymbolTest::setUp() { +} + +void SymbolTest::tearDown() { +} + +void SymbolTest::testCopyConstruct() { + alphabet::Symbol symbol(alphabet::LabeledSymbol(label::Label(label::StringLabel("1")))); + + alphabet::Symbol symbol2(symbol); + + CPPUNIT_ASSERT( symbol == symbol2 ); + + alphabet::Symbol symbol3(std::move(symbol)); + + CPPUNIT_ASSERT( symbol2 == symbol3 ); +} + +void SymbolTest::testEqual() { +/* std::string input = "a+a"; + + string::StringFromStringParser parser(input); + string::String string = parser.parse(); + + string::SymbolToStringComposer composer; + std::string output = composer.compose(string); + + string::StringFromStringParser parser2(input); + string::String string2 = parser2.parse(); + + CPPUNIT_ASSERT( string == string2 );*/ +} + +void SymbolTest::testXMLParser() { +/* + string::String string; + string.setAlphabet({alphabet::Symbol(alphabet::LabeledSymbol(label::Label(label::StringLabel("1")))), alphabet::Symbol(alphabet::LabeledSymbol(label::Label(label::StringLabel("2")))), alphabet::Symbol(alphabet::LabeledSymbol(label::Label(label::StringLabel("3"))))}); + string.setString(string::Alternation( + string::Concatenation( + string::StringSymbol(alphabet::Symbol(alphabet::LabeledSymbol(label::Label(label::StringLabel("1"))))), + string::StringSymbol(alphabet::Symbol(alphabet::LabeledSymbol(label::Label(label::StringLabel("2"))))) + ), + string::Iteration( + string::StringSymbol(alphabet::Symbol(alphabet::LabeledSymbol(label::Label(label::StringLabel("1"))))) + ) + ) + ); + + { + string::SymbolToXMLComposer composer; + std::list<sax::Token> tokens = composer.compose(string); + std::string tmp; + sax::SaxComposeInterface::printMemory(tmp, tokens); + + std::list<sax::Token> tokens2; + sax::SaxParseInterface::parseMemory(tmp, tokens2); + string::StringFromXMLParser parser; + string::String string2 = parser.parse(tokens2); + + CPPUNIT_ASSERT( string == string2 ); + } + { + std::string tmp = string::StringFactory::toString(string); + string::String string2 = string::StringFactory::fromString(tmp); + + CPPUNIT_ASSERT( string == string2 ); + }*/ +} + +void SymbolTest::testOrder() { +/* string::StringSymbol s1(alphabet::Symbol(alphabet::LabeledSymbol(label::Label(label::StringLabel("1"))))); + string::StringEmpty e1; + string::StringEpsilon e2; + string::Iteration i1(s1); + + string::String alt1(string::Alternation(s1, s1)); + string::String con1(string::Concatenation (s1, s1)); + string::String ite1(i1); + string::String emp1(e1); + string::String eps1(e2); + string::String sym1(s1); + + 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 SymbolTest::testOrder2() { +/* string::StringSymbol s1(alphabet::Symbol(alphabet::LabeledSymbol(label::Label(label::StringLabel("1"))))); + string::StringSymbol s2(alphabet::Symbol(alphabet::LabeledSymbol(label::Label(label::StringLabel("2"))))); + string::StringSymbol s3(alphabet::Symbol(alphabet::LabeledSymbol(label::Label(label::StringLabel("3"))))); + + string::StringEmpty e1; + string::StringEpsilon e2; + + string::Iteration i1(s1); + string::Iteration i2(s2); + string::Iteration i3(s3); + + string::String alt1(string::Alternation(s1, s1)); + string::String alt2(string::Alternation(s1, s2)); + string::String alt3(string::Alternation(s1, s3)); + string::String alt4(string::Alternation(s2, s1)); + string::String alt5(string::Alternation(s2, s2)); + string::String alt6(string::Alternation(s2, s3)); + string::String alt7(string::Alternation(s3, s1)); + string::String alt8(string::Alternation(s3, s2)); + string::String alt9(string::Alternation(s3, s3)); + + string::String con1(string::Concatenation (s1, s1)); + string::String con2(string::Concatenation (s1, s2)); + string::String con3(string::Concatenation (s1, s3)); + string::String con4(string::Concatenation (s2, s1)); + string::String con5(string::Concatenation (s2, s2)); + string::String con6(string::Concatenation (s2, s3)); + string::String con7(string::Concatenation (s3, s1)); + string::String con8(string::Concatenation (s3, s2)); + string::String con9(string::Concatenation (s3, s3)); + + string::String ite1(i1); + string::String ite2(i2); + string::String ite3(i3); + + string::String emp1(e1); + string::String eps1(e2); + + string::String sym1(s1); + string::String sym2(s2); + string::String 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/alib2/test-src/alphabet/SymbolTest.h b/alib2/test-src/alphabet/SymbolTest.h new file mode 100644 index 0000000000000000000000000000000000000000..b7c7ef5f73e1bc2be3d90eacc171d0a72699daa1 --- /dev/null +++ b/alib2/test-src/alphabet/SymbolTest.h @@ -0,0 +1,26 @@ +#ifndef SYMBOL_TEST_H_ +#define SYMBOL_TEST_H_ + +#include <cppunit/extensions/HelperMacros.h> + +class SymbolTest : public CppUnit::TestFixture +{ + CPPUNIT_TEST_SUITE( SymbolTest ); + CPPUNIT_TEST( testEqual ); + CPPUNIT_TEST( testXMLParser ); + CPPUNIT_TEST( testOrder ); + CPPUNIT_TEST( testOrder2 ); + CPPUNIT_TEST_SUITE_END(); + +public: + void setUp(); + void tearDown(); + + void testCopyConstruct(); + void testEqual(); + void testXMLParser(); + void testOrder(); + void testOrder2(); +}; + +#endif // SYMBOL_TEST_H_