/** @file
$ Id $
$ Date $
$ Author $
@ copy & copy ; Marc W & auml ; ckerlin
@ license LGPL , see file < a href = " license.html " > COPYING < / a >
$ Log $
1 2 3 4 5 6 7 8
5678901234567890123456789012345678901234567890123456789012345678901234567890
*/
# include <mrw/string.hxx>
# include <mrw/list.hxx>
# include <algorithm>
# include <cppunit/TestFixture.h>
# include <cppunit/ui/text/TestRunner.h>
# include <cppunit/extensions/HelperMacros.h>
# include <cppunit/extensions/TestFactoryRegistry.h>
# include <cppunit/XmlOutputter.h>
# include <fstream>
class StringTest : public CppUnit : : TestFixture {
public :
void Join ( ) {
std : : list < std : : string > l ;
l < < " Hello " < < " World " < < " here " < < " I " < < " am " ;
CPPUNIT_ASSERT_EQUAL ( std : : list < std : : string > : : size_type ( 5 ) , l . size ( ) ) ;
CPPUNIT_ASSERT_EQUAL ( std : : string ( " Hello World here I am " ) , mrw : : join ( l ) ) ;
}
void Split ( ) {
std : : string text ( " Hello World here I am " ) ;
std : : list < std : : string > a ( mrw : : split ( text ) ) , b ;
b < < " Hello " < < " World " < < " here " < < " I " < < " am " ;
CPPUNIT_ASSERT ( equal ( a . begin ( ) , a . end ( ) , b . begin ( ) ) ) ;
}
CPPUNIT_TEST_SUITE ( StringTest ) ;
CPPUNIT_TEST ( Join ) ;
CPPUNIT_TEST ( Split ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ;
CPPUNIT_TEST_SUITE_REGISTRATION ( StringTest ) ;
int main ( int argc , char * * argv ) try {
std : : ofstream ofs ( ( * argv + std : : string ( " .xml " ) ) . c_str ( ) ) ;
CppUnit : : TextUi : : TestRunner runner ;
runner . setOutputter ( new CppUnit : : XmlOutputter ( & runner . result ( ) , ofs ) ) ;
runner . addTest ( CppUnit : : TestFactoryRegistry : : getRegistry ( ) . makeTest ( ) ) ;
return runner . run ( ) ? 0 : 1 ;
} catch ( std : : exception & e ) {
std : : cerr < < " ***Exception: " < < e . what ( ) < < std : : endl ;
return 1 ;
}