aboutsummaryrefslogtreecommitdiff
path: root/src/script/cpp_api
ModeNameSize
-rw-r--r--CMakeLists.txt604logplain
-rw-r--r--s_async.cpp7943logplain
-rw-r--r--s_async.h4270logplain
-rw-r--r--s_base.cpp6748logplain
-rw-r--r--s_base.h2552logplain
-rw-r--r--s_entity.cpp7600logplain
-rw-r--r--s_entity.h1542logplain
-rw-r--r--s_env.cpp5125logplain
-rw-r--r--s_env.h1405logplain
-rw-r--r--s_internal.h2282logplain
-rw-r--r--s_inventory.cpp7346logplain
-rw-r--r--s_inventory.h2342logplain
-rw-r--r--s_item.cpp6566logplain
-rw-r--r--s_item.h1879logplain
-rw-r--r--s_mainmenu.cpp2410logplain
-rw-r--r--s_mainmenu.h1442logplain
-rw-r--r--s_node.cpp6469logplain
-rw-r--r--s_node.h1971logplain
-rw-r--r--s_nodemeta.cpp7783logplain
-rw-r--r--s_nodemeta.h2220logplain
-rw-r--r--s_player.cpp4341logplain
-rw-r--r--s_player.h1542logplain
-rw-r--r--s_server.cpp4329logplain
-rw-r--r--s_server.h1559logplain
hl kwd">registerTestModule(this); } const char *getName() { return "TestUtilities"; } void runTests(IGameDef *gamedef); void testAngleWrapAround(); void testLowercase(); void testTrim(); void testIsYes(); void testRemoveStringEnd(); void testUrlEncode(); void testUrlDecode(); void testPadString(); void testStartsWith(); void testStrEqual(); void testStringTrim(); void testStrToIntConversion(); void testStringReplace(); void testStringAllowed(); void testAsciiPrintableHelper(); void testUTF8(); void testRemoveEscapes(); void testWrapRows(); void testIsNumber(); void testIsPowerOfTwo(); void testMyround(); }; static TestUtilities g_test_instance; void TestUtilities::runTests(IGameDef *gamedef) { TEST(testAngleWrapAround); TEST(testLowercase); TEST(testTrim); TEST(testIsYes); TEST(testRemoveStringEnd); TEST(testUrlEncode); TEST(testUrlDecode); TEST(testPadString); TEST(testStartsWith); TEST(testStrEqual); TEST(testStringTrim); TEST(testStrToIntConversion); TEST(testStringReplace); TEST(testStringAllowed); TEST(testAsciiPrintableHelper); TEST(testUTF8); TEST(testRemoveEscapes); TEST(testWrapRows); TEST(testIsNumber); TEST(testIsPowerOfTwo); TEST(testMyround); } //////////////////////////////////////////////////////////////////////////////// inline float ref_WrapDegrees180(float f) { // This is a slower alternative to the wrapDegrees_180() function; // used as a reference for testing float value = fmodf(f + 180, 360); if (value < 0) value += 360; return value - 180; } inline float ref_WrapDegrees_0_360(float f) { // This is a slower alternative to the wrapDegrees_0_360() function; // used as a reference for testing float value = fmodf(f, 360); if (value < 0) value += 360; return value < 0 ? value + 360 : value; } void TestUtilities::testAngleWrapAround() { UASSERT(fabs(modulo360f(100.0) - 100.0) < 0.001); UASSERT(fabs(modulo360f(720.5) - 0.5) < 0.001); UASSERT(fabs(modulo360f(-0.5) - (-0.5)) < 0.001); UASSERT(fabs(modulo360f(-365.5) - (-5.5)) < 0.001); for (float f = -720; f <= -360; f += 0.25) { UASSERT(fabs(modulo360f(f) - modulo360f(f + 360)) < 0.001); } for (float f = -1440; f <= 1440; f += 0.25) { UASSERT(fabs(modulo360f(f) - fmodf(f, 360)) < 0.001); UASSERT(fabs(wrapDegrees_180(f) - ref_WrapDegrees180(f)) < 0.001); UASSERT(fabs(wrapDegrees_0_360(f) - ref_WrapDegrees_0_360(f)) < 0.001); UASSERT(wrapDegrees_0_360(fabs(wrapDegrees_180(f) - wrapDegrees_0_360(f))) < 0.001); } } void TestUtilities::testLowercase() { UASSERT(lowercase("Foo bAR") == "foo bar"); } void TestUtilities::testTrim() { UASSERT(trim("") == ""); UASSERT(trim("dirt_with_grass") == "dirt_with_grass"); UASSERT(trim("\n \t\r Foo bAR \r\n\t\t ") == "Foo bAR"); UASSERT(trim("\n \t\r \r\n\t\t ") == ""); } void TestUtilities::testIsYes() { UASSERT(is_yes("YeS") == true); UASSERT(is_yes("") == false); UASSERT(is_yes("FAlse") == false); UASSERT(is_yes("-1") == true); UASSERT(is_yes("0") == false); UASSERT(is_yes("1") == true); UASSERT(is_yes("2") == true); } void TestUtilities::testRemoveStringEnd() { const char *ends[] = {"abc", "c", "bc", "", NULL}; UASSERT(removeStringEnd("abc", ends) == ""); UASSERT(removeStringEnd("bc", ends) == "b"); UASSERT(removeStringEnd("12c", ends) == "12"); UASSERT(removeStringEnd("foo", ends) == ""); } void TestUtilities::testUrlEncode() { UASSERT(urlencode("\"Aardvarks lurk, OK?\"") == "%22Aardvarks%20lurk%2C%20OK%3F%22"); } void TestUtilities::testUrlDecode() { UASSERT(urldecode("%22Aardvarks%20lurk%2C%20OK%3F%22") == "\"Aardvarks lurk, OK?\""); } void TestUtilities::testPadString() { UASSERT(padStringRight("hello", 8) == "hello "); } void TestUtilities::testStartsWith() { UASSERT(str_starts_with(std::string(), std::string()) == true); UASSERT(str_starts_with(std::string("the sharp pickaxe"), std::string()) == true); UASSERT(str_starts_with(std::string("the sharp pickaxe"), std::string("the")) == true); UASSERT(str_starts_with(std::string("the sharp pickaxe"), std::string("The")) == false); UASSERT(str_starts_with(std::string("the sharp pickaxe"), std::string("The"), true) == true); UASSERT(str_starts_with(std::string("T"), std::string("The")) == false); } void TestUtilities::testStrEqual() { UASSERT(str_equal(narrow_to_wide("abc"), narrow_to_wide("abc"))); UASSERT(str_equal(narrow_to_wide("ABC"), narrow_to_wide("abc"), true)); } void TestUtilities::testStringTrim() { UASSERT(trim(" a") == "a"); UASSERT(trim(" a ") == "a"); UASSERT(trim("a ") == "a"); UASSERT(trim("") == ""); } void TestUtilities::testStrToIntConversion() { UASSERT(mystoi("123", 0, 1000) == 123); UASSERT(mystoi("123", 0, 10) == 10); } void TestUtilities::testStringReplace() { std::string test_str; test_str = "Hello there"; str_replace(test_str, "there", "world"); UASSERT(test_str == "Hello world"); test_str = "ThisAisAaAtest"; str_replace(test_str, 'A', ' '); UASSERT(test_str == "This is a test"); }