393 lines
8.8 KiB
C
393 lines
8.8 KiB
C
|
#ifndef UT_MISC_STRING_COMMON
|
||
|
#define UT_MISC_STRING_COMMON
|
||
|
|
||
|
#include <nel/misc/string_common.h>
|
||
|
|
||
|
struct CUTMiscStringCommon : public Test::Suite
|
||
|
{
|
||
|
CUTMiscStringCommon()
|
||
|
{
|
||
|
TEST_ADD(CUTMiscStringCommon::fromStringSint8);
|
||
|
TEST_ADD(CUTMiscStringCommon::fromStringUint8);
|
||
|
TEST_ADD(CUTMiscStringCommon::fromStringSint16);
|
||
|
TEST_ADD(CUTMiscStringCommon::fromStringUint16);
|
||
|
TEST_ADD(CUTMiscStringCommon::fromStringSint32);
|
||
|
TEST_ADD(CUTMiscStringCommon::fromStringUint32);
|
||
|
// Add a line here when adding a new test METHOD
|
||
|
}
|
||
|
|
||
|
void fromStringSint8()
|
||
|
{
|
||
|
bool ret;
|
||
|
|
||
|
// tests for sint8
|
||
|
sint8 val;
|
||
|
|
||
|
// positive value
|
||
|
ret = NLMISC::fromString("1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// negative value
|
||
|
ret = NLMISC::fromString("-1", val);
|
||
|
TEST_ASSERT(ret && val == -1);
|
||
|
|
||
|
// bad character
|
||
|
ret = NLMISC::fromString("a", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// right character and bad character
|
||
|
ret = NLMISC::fromString("1a", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// min limit
|
||
|
ret = NLMISC::fromString("-128", val);
|
||
|
TEST_ASSERT(ret && val == -128);
|
||
|
|
||
|
// max limit
|
||
|
ret = NLMISC::fromString("127", val);
|
||
|
TEST_ASSERT(ret && val == 127);
|
||
|
|
||
|
// min limit -1
|
||
|
ret = NLMISC::fromString("-129", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// max limit +1
|
||
|
ret = NLMISC::fromString("128", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// with period
|
||
|
ret = NLMISC::fromString("1.2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with coma
|
||
|
ret = NLMISC::fromString("1,2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with spaces before
|
||
|
ret = NLMISC::fromString(" 10", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with spaces after
|
||
|
ret = NLMISC::fromString("10 ", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with 0s before
|
||
|
ret = NLMISC::fromString("001", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with + before
|
||
|
ret = NLMISC::fromString("+1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
}
|
||
|
|
||
|
void fromStringUint8()
|
||
|
{
|
||
|
bool ret;
|
||
|
|
||
|
// tests for uint8
|
||
|
uint8 val;
|
||
|
|
||
|
// positive value
|
||
|
ret = NLMISC::fromString("1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// bad character
|
||
|
ret = NLMISC::fromString("a", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// right character and bad character
|
||
|
ret = NLMISC::fromString("1a", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// min limit
|
||
|
ret = NLMISC::fromString("0", val);
|
||
|
TEST_ASSERT(ret && val == 0);
|
||
|
|
||
|
// max limit
|
||
|
ret = NLMISC::fromString("255", val);
|
||
|
TEST_ASSERT(ret && val == 255);
|
||
|
|
||
|
// min limit -1
|
||
|
ret = NLMISC::fromString("-1", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// max limit +1
|
||
|
ret = NLMISC::fromString("256", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// with period
|
||
|
ret = NLMISC::fromString("1.2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with coma
|
||
|
ret = NLMISC::fromString("1,2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with spaces before
|
||
|
ret = NLMISC::fromString(" 10", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with spaces after
|
||
|
ret = NLMISC::fromString("10 ", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with 0s before
|
||
|
ret = NLMISC::fromString("001", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with + before
|
||
|
ret = NLMISC::fromString("+1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
}
|
||
|
|
||
|
void fromStringSint16()
|
||
|
{
|
||
|
bool ret;
|
||
|
|
||
|
// tests for sint16
|
||
|
sint16 val;
|
||
|
|
||
|
// positive value
|
||
|
ret = NLMISC::fromString("1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// negative value
|
||
|
ret = NLMISC::fromString("-1", val);
|
||
|
TEST_ASSERT(ret && val == -1);
|
||
|
|
||
|
// bad character
|
||
|
ret = NLMISC::fromString("a", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// right character and bad character
|
||
|
ret = NLMISC::fromString("1a", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// min limit
|
||
|
ret = NLMISC::fromString("-32768", val);
|
||
|
TEST_ASSERT(ret && val == -32768);
|
||
|
|
||
|
// max limit
|
||
|
ret = NLMISC::fromString("32767", val);
|
||
|
TEST_ASSERT(ret && val == 32767);
|
||
|
|
||
|
// min limit -1
|
||
|
ret = NLMISC::fromString("-32769", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// max limit +1
|
||
|
ret = NLMISC::fromString("32768", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// with period
|
||
|
ret = NLMISC::fromString("1.2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with coma
|
||
|
ret = NLMISC::fromString("1,2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with spaces before
|
||
|
ret = NLMISC::fromString(" 10", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with spaces after
|
||
|
ret = NLMISC::fromString("10 ", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with 0s before
|
||
|
ret = NLMISC::fromString("001", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with + before
|
||
|
ret = NLMISC::fromString("+1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
}
|
||
|
|
||
|
void fromStringUint16()
|
||
|
{
|
||
|
bool ret;
|
||
|
|
||
|
// tests for uint16
|
||
|
uint16 val;
|
||
|
|
||
|
// positive value
|
||
|
ret = NLMISC::fromString("1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// bad character
|
||
|
ret = NLMISC::fromString("a", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// right character and bad character
|
||
|
ret = NLMISC::fromString("1a", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// min limit
|
||
|
ret = NLMISC::fromString("0", val);
|
||
|
TEST_ASSERT(ret && val == 0);
|
||
|
|
||
|
// max limit
|
||
|
ret = NLMISC::fromString("65535", val);
|
||
|
TEST_ASSERT(ret && val == 65535);
|
||
|
|
||
|
// min limit -1
|
||
|
ret = NLMISC::fromString("-1", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// max limit +1
|
||
|
ret = NLMISC::fromString("65536", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// with period
|
||
|
ret = NLMISC::fromString("1.2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with coma
|
||
|
ret = NLMISC::fromString("1,2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with spaces before
|
||
|
ret = NLMISC::fromString(" 10", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with spaces after
|
||
|
ret = NLMISC::fromString("10 ", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with 0s before
|
||
|
ret = NLMISC::fromString("001", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with + before
|
||
|
ret = NLMISC::fromString("+1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
}
|
||
|
|
||
|
void fromStringSint32()
|
||
|
{
|
||
|
bool ret;
|
||
|
|
||
|
// tests for sint32
|
||
|
sint32 val;
|
||
|
|
||
|
// positive value
|
||
|
ret = NLMISC::fromString("1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// negative value
|
||
|
ret = NLMISC::fromString("-1", val);
|
||
|
TEST_ASSERT(ret && val == -1);
|
||
|
|
||
|
// bad character
|
||
|
ret = NLMISC::fromString("a", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// right character and bad character
|
||
|
ret = NLMISC::fromString("1a", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// min limit
|
||
|
ret = NLMISC::fromString("-2147483648", val);
|
||
|
TEST_ASSERT(ret && val == INT_MIN);
|
||
|
|
||
|
// max limit
|
||
|
ret = NLMISC::fromString("2147483647", val);
|
||
|
TEST_ASSERT(ret && val == INT_MAX);
|
||
|
|
||
|
// min limit -1
|
||
|
ret = NLMISC::fromString("-2147483649", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// max limit +1
|
||
|
ret = NLMISC::fromString("2147483648", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// with period
|
||
|
ret = NLMISC::fromString("1.2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with coma
|
||
|
ret = NLMISC::fromString("1,2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with spaces before
|
||
|
ret = NLMISC::fromString(" 10", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with spaces after
|
||
|
ret = NLMISC::fromString("10 ", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with 0s before
|
||
|
ret = NLMISC::fromString("001", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with + before
|
||
|
ret = NLMISC::fromString("+1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
}
|
||
|
|
||
|
void fromStringUint32()
|
||
|
{
|
||
|
bool ret;
|
||
|
|
||
|
// tests for uint32
|
||
|
uint32 val;
|
||
|
|
||
|
// positive value
|
||
|
ret = NLMISC::fromString("1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// bad character
|
||
|
ret = NLMISC::fromString("a", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// right character and bad character
|
||
|
ret = NLMISC::fromString("1a", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// min limit
|
||
|
ret = NLMISC::fromString("0", val);
|
||
|
TEST_ASSERT(ret && val == 0);
|
||
|
|
||
|
// max limit
|
||
|
ret = NLMISC::fromString("4294967295", val);
|
||
|
TEST_ASSERT(ret && val == 4294967295);
|
||
|
|
||
|
// min limit -1
|
||
|
ret = NLMISC::fromString("-1", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// max limit +1
|
||
|
ret = NLMISC::fromString("4294967296", val);
|
||
|
TEST_ASSERT(!ret && val == 0);
|
||
|
|
||
|
// with period
|
||
|
ret = NLMISC::fromString("1.2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with coma
|
||
|
ret = NLMISC::fromString("1,2", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with spaces before
|
||
|
ret = NLMISC::fromString(" 10", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with spaces after
|
||
|
ret = NLMISC::fromString("10 ", val);
|
||
|
TEST_ASSERT(ret && val == 10);
|
||
|
|
||
|
// with 0s before
|
||
|
ret = NLMISC::fromString("001", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
|
||
|
// with + before
|
||
|
ret = NLMISC::fromString("+1", val);
|
||
|
TEST_ASSERT(ret && val == 1);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
#endif
|