|
cgma
|
#include "CGMFileOptions.hpp"#include <ctype.h>#include <stdlib.h>#include <string.h>#include <iostream>Go to the source code of this file.
Defines | |
| #define | CHECK(A) |
| #define | EQUAL(A, B) |
Functions | |
| static bool | strempty (const char *s) |
| int | main () |
Variables | |
| const char | DEFAULT_SEPARATOR = ';' |
| #define CHECK | ( | A | ) |
if (FO_SUCCESS != (A)) { \ std::cerr << "Failure at line " << __LINE__ << ": error code " << (A) << std::endl; \ return 1; \ }
Definition at line 17 of file fileoptions.cpp.
| #define EQUAL | ( | A, | |
| B | |||
| ) |
if (A != B) { \ std::cerr << "Failure at line " << __LINE__ << ": expected " << (B) << " but got " << (A) << std::endl; \ return 2; \ }
Definition at line 23 of file fileoptions.cpp.
| int main | ( | ) |
Definition at line 29 of file fileoptions.cpp.
{
CGMFileOptions tool( "INT1=1;NUL1;STR1=ABC;DBL1=1.0;dbl2=2.0;DBL3=3.0;INT2=2;nul2;NUL3;INT3=3;str2=once upon a time;str3==fubar=;;" );
std::string s;
int i;
double d;
CGMFOErrorCode rval;
// test basic get_option method without deleting entry
rval = tool.get_option( "STR1", s );
CHECK(rval);
EQUAL( s, "ABC" );
// test basic get_option method again, this time deleting the entry
rval = tool.get_option( "STR1", s );
CHECK(rval);
EQUAL( s, "ABC" );
// test basig get_option method with a null option
rval = tool.get_option( "NUL2", s );
CHECK( rval );
EQUAL( s.empty(), true );
// test null option
rval = tool.get_null_option( "nul1" );
CHECK( rval );
// try null option method on non-null value
rval = tool.get_null_option( "INT1" ) ;
EQUAL( rval, FO_TYPE_OUT_OF_RANGE) ;
// test integer option
rval = tool.get_int_option( "int1", i );
CHECK( rval );
EQUAL( i, 1 );
rval = tool.get_int_option( "int2", i );
CHECK( rval );
EQUAL( i, 2 );
// test integer option on non-integer value
rval = tool.get_int_option( "dbl2", i );
EQUAL( rval, FO_TYPE_OUT_OF_RANGE );
// test integer option on null value
rval = tool.get_int_option( "NUL3", i);
EQUAL( rval, FO_TYPE_OUT_OF_RANGE );
// test double option
rval = tool.get_real_option( "dbl1", d );
CHECK( rval );
EQUAL( d, 1.0 );
rval = tool.get_real_option( "dbl2", d );
CHECK( rval );
EQUAL( d, 2.0 );
rval = tool.get_real_option( "int3", d );
CHECK( rval );
EQUAL( d, 3.0 );
// test real option on non-real value
rval = tool.get_real_option( "str2", d );
EQUAL( rval, FO_TYPE_OUT_OF_RANGE );
// test real option on null value
rval = tool.get_real_option( "NUL3", d );
EQUAL( rval, FO_TYPE_OUT_OF_RANGE );
// test get a simple string option
rval = tool.get_str_option( "DBL3", s );
CHECK( rval );
EQUAL( s, "3.0" );
// test get a string with spaces
rval = tool.get_str_option("STR2", s );
CHECK( rval );
EQUAL( s, "once upon a time" );
// try to get a string value for a null option
rval = tool.get_str_option( "nul3", s );
EQUAL( rval, FO_TYPE_OUT_OF_RANGE );
// test options using generic get_option method
rval = tool.get_option( "NUL3", s );
CHECK( rval );
EQUAL( s.empty(), true );
rval = tool.get_option( "STR3", s );
CHECK( rval );
EQUAL( s, "=fubar=" );
// test size of options string
unsigned l = tool.size();
EQUAL( l, 12u );
// test alternate separator
CGMFileOptions tool2( ";+OPT1=ABC+OPT2=" );
l = tool2.size();
EQUAL( l, 2 );
rval = tool2.get_option( "opt1", s );
CHECK( rval );
EQUAL( s, "ABC" );
rval = tool2.get_option( "opt2", s );
CHECK( rval );
bool e = s.empty();
EQUAL( e, true );
l = tool2.size();
EQUAL( l, 2 );
// test empty options string
CGMFileOptions tool3( ";;;;" );
e = tool3.empty();
EQUAL( e, true );
l = tool3.size();
EQUAL( l, 0 );
CGMFileOptions tool4(NULL);
e = tool4.empty();
EQUAL( e, true );
l = tool4.size();
EQUAL( l, 0 );
CGMFileOptions tool5(";+");
e = tool5.empty();
EQUAL( e, true );
l = tool5.size();
EQUAL( l, 0 );
// test copy constructor
CGMFileOptions tool6( tool2 );
rval = tool6.get_option( "opt1", s );
CHECK( rval );
EQUAL( s, "ABC" );
rval = tool6.get_option( "opt2", s );
CHECK( rval );
e = s.empty();
EQUAL( e, true );
l = tool6.size();
EQUAL( l, 2 );
CGMFileOptions tool7( tool5 );
e = tool7.empty();
EQUAL( e, true );
l = tool7.size();
EQUAL( l, 0 );
// test assignment operator
CGMFileOptions tool8( tool2 );
tool8 = tool;
EQUAL( tool8.size(), tool.size() );
return 0;
}
| static bool strempty | ( | const char * | s | ) | [inline, static] |
Definition at line 13 of file fileoptions.cpp.
{ return !*s; }
| const char DEFAULT_SEPARATOR = ';' |
Definition at line 12 of file fileoptions.cpp.