diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-11-04 16:19:54 +0100 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-11-04 16:19:54 +0100 |
commit | ad148587dcf5244c2d2011dba339786c765c54c4 (patch) | |
tree | bdd914121cd326da2ed26679838878e3edffc841 /src/unittest/test_settings.cpp | |
parent | 1145b05ea0bda87dc0827821385810eced08f774 (diff) | |
download | dragonfireclient-ad148587dcf5244c2d2011dba339786c765c54c4.tar.xz |
Make Lint Happy
Diffstat (limited to 'src/unittest/test_settings.cpp')
-rw-r--r-- | src/unittest/test_settings.cpp | 314 |
1 files changed, 155 insertions, 159 deletions
diff --git a/src/unittest/test_settings.cpp b/src/unittest/test_settings.cpp index aa56f3e06..17c7c6745 100644 --- a/src/unittest/test_settings.cpp +++ b/src/unittest/test_settings.cpp @@ -23,7 +23,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "settings.h" #include "noise.h" -class TestSettings : public TestBase { +class TestSettings : public TestBase +{ public: TestSettings() { TestManager::registerTestModule(this); } const char *getName() { return "TestSettings"; } @@ -48,161 +49,161 @@ void TestSettings::runTests(IGameDef *gamedef) //////////////////////////////////////////////////////////////////////////////// const char *TestSettings::config_text_before = - "leet = 1337\n" - "leetleet = 13371337\n" - "leetleet_neg = -13371337\n" - "floaty_thing = 1.1\n" - "stringy_thing = asd /( ¤%&(/\" BLÖÄRP\n" - "coord = (1, 2, 4.5)\n" - " # this is just a comment\n" - "this is an invalid line\n" - "asdf = {\n" - " a = 5\n" - " bb = 2.5\n" - " ccc = \"\"\"\n" - "testy\n" - " testa \n" - "\"\"\"\n" - "\n" - "}\n" - "blarg = \"\"\" \n" - "some multiline text\n" - " with leading whitespace!\n" - "\"\"\"\n" - "np_terrain = 5, 40, (250, 250, 250), 12341, 5, 0.7, 2.4\n" - "zoop = true"; + "leet = 1337\n" + "leetleet = 13371337\n" + "leetleet_neg = -13371337\n" + "floaty_thing = 1.1\n" + "stringy_thing = asd /( ¤%&(/\" BLÖÄRP\n" + "coord = (1, 2, 4.5)\n" + " # this is just a comment\n" + "this is an invalid line\n" + "asdf = {\n" + " a = 5\n" + " bb = 2.5\n" + " ccc = \"\"\"\n" + "testy\n" + " testa \n" + "\"\"\"\n" + "\n" + "}\n" + "blarg = \"\"\" \n" + "some multiline text\n" + " with leading whitespace!\n" + "\"\"\"\n" + "np_terrain = 5, 40, (250, 250, 250), 12341, 5, 0.7, 2.4\n" + "zoop = true"; const std::string TestSettings::config_text_after = - "leet = 1337\n" - "leetleet = 13371337\n" - "leetleet_neg = -13371337\n" - "floaty_thing = 1.1\n" - "stringy_thing = asd /( ¤%&(/\" BLÖÄRP\n" - "coord = (1, 2, 4.5)\n" - " # this is just a comment\n" - "this is an invalid line\n" - "asdf = {\n" - " a = 5\n" - " bb = 2.5\n" - " ccc = \"\"\"\n" - "testy\n" - " testa \n" - "\"\"\"\n" - "\n" - "}\n" - "blarg = \"\"\" \n" - "some multiline text\n" - " with leading whitespace!\n" - "\"\"\"\n" - "np_terrain = {\n" - " flags = defaults\n" - " lacunarity = 2.4\n" - " octaves = 6\n" - " offset = 3.5\n" - " persistence = 0.7\n" - " scale = 40\n" - " seed = 12341\n" - " spread = (250,250,250)\n" - "}\n" - "zoop = true\n" - "coord2 = (1,2,3.3)\n" - "floaty_thing_2 = 1.2\n" - "groupy_thing = {\n" - " animals = cute\n" - " num_apples = 4\n" - " num_oranges = 53\n" - "}\n"; + "leet = 1337\n" + "leetleet = 13371337\n" + "leetleet_neg = -13371337\n" + "floaty_thing = 1.1\n" + "stringy_thing = asd /( ¤%&(/\" BLÖÄRP\n" + "coord = (1, 2, 4.5)\n" + " # this is just a comment\n" + "this is an invalid line\n" + "asdf = {\n" + " a = 5\n" + " bb = 2.5\n" + " ccc = \"\"\"\n" + "testy\n" + " testa \n" + "\"\"\"\n" + "\n" + "}\n" + "blarg = \"\"\" \n" + "some multiline text\n" + " with leading whitespace!\n" + "\"\"\"\n" + "np_terrain = {\n" + " flags = defaults\n" + " lacunarity = 2.4\n" + " octaves = 6\n" + " offset = 3.5\n" + " persistence = 0.7\n" + " scale = 40\n" + " seed = 12341\n" + " spread = (250,250,250)\n" + "}\n" + "zoop = true\n" + "coord2 = (1,2,3.3)\n" + "floaty_thing_2 = 1.2\n" + "groupy_thing = {\n" + " animals = cute\n" + " num_apples = 4\n" + " num_oranges = 53\n" + "}\n"; void TestSettings::testAllSettings() { try { - Settings s; - - // Test reading of settings - std::istringstream is(config_text_before); - s.parseConfigLines(is); - - UASSERT(s.getS32("leet") == 1337); - UASSERT(s.getS16("leetleet") == 32767); - UASSERT(s.getS16("leetleet_neg") == -32768); - - // Not sure if 1.1 is an exact value as a float, but doesn't matter - UASSERT(fabs(s.getFloat("floaty_thing") - 1.1) < 0.001); - UASSERT(s.get("stringy_thing") == "asd /( ¤%&(/\" BLÖÄRP"); - UASSERT(fabs(s.getV3F("coord").X - 1.0) < 0.001); - UASSERT(fabs(s.getV3F("coord").Y - 2.0) < 0.001); - UASSERT(fabs(s.getV3F("coord").Z - 4.5) < 0.001); - - // Test the setting of settings too - s.setFloat("floaty_thing_2", 1.2); - s.setV3F("coord2", v3f(1, 2, 3.3)); - UASSERT(s.get("floaty_thing_2").substr(0,3) == "1.2"); - UASSERT(fabs(s.getFloat("floaty_thing_2") - 1.2) < 0.001); - UASSERT(fabs(s.getV3F("coord2").X - 1.0) < 0.001); - UASSERT(fabs(s.getV3F("coord2").Y - 2.0) < 0.001); - UASSERT(fabs(s.getV3F("coord2").Z - 3.3) < 0.001); - - // Test settings groups - Settings *group = s.getGroup("asdf"); - UASSERT(group != NULL); - UASSERT(s.getGroupNoEx("zoop", group) == false); - UASSERT(group->getS16("a") == 5); - UASSERT(fabs(group->getFloat("bb") - 2.5) < 0.001); - - Settings *group3 = new Settings; - group3->set("cat", "meow"); - group3->set("dog", "woof"); - - Settings *group2 = new Settings; - group2->setS16("num_apples", 4); - group2->setS16("num_oranges", 53); - group2->setGroup("animals", group3); - group2->set("animals", "cute"); //destroys group 3 - s.setGroup("groupy_thing", group2); - - // Test set failure conditions - UASSERT(s.set("Zoop = Poop\nsome_other_setting", "false") == false); - UASSERT(s.set("sneaky", "\"\"\"\njabberwocky = false") == false); - UASSERT(s.set("hehe", "asdfasdf\n\"\"\"\nsomething = false") == false); - - // Test multiline settings - UASSERT(group->get("ccc") == "testy\n testa "); - - UASSERT(s.get("blarg") == - "some multiline text\n" - " with leading whitespace!"); - - // Test NoiseParams - UASSERT(s.getEntry("np_terrain").is_group == false); - - NoiseParams np; - UASSERT(s.getNoiseParams("np_terrain", np) == true); - UASSERT(std::fabs(np.offset - 5) < 0.001f); - UASSERT(std::fabs(np.scale - 40) < 0.001f); - UASSERT(std::fabs(np.spread.X - 250) < 0.001f); - UASSERT(std::fabs(np.spread.Y - 250) < 0.001f); - UASSERT(std::fabs(np.spread.Z - 250) < 0.001f); - UASSERT(np.seed == 12341); - UASSERT(np.octaves == 5); - UASSERT(std::fabs(np.persist - 0.7) < 0.001f); - - np.offset = 3.5; - np.octaves = 6; - s.setNoiseParams("np_terrain", np); - - UASSERT(s.getEntry("np_terrain").is_group == true); - - // Test writing - std::ostringstream os(std::ios_base::binary); - is.clear(); - is.seekg(0); - - UASSERT(s.updateConfigObject(is, os, "", 0) == true); - //printf(">>>> expected config:\n%s\n", TEST_CONFIG_TEXT_AFTER); - //printf(">>>> actual config:\n%s\n", os.str().c_str()); + Settings s; + + // Test reading of settings + std::istringstream is(config_text_before); + s.parseConfigLines(is); + + UASSERT(s.getS32("leet") == 1337); + UASSERT(s.getS16("leetleet") == 32767); + UASSERT(s.getS16("leetleet_neg") == -32768); + + // Not sure if 1.1 is an exact value as a float, but doesn't matter + UASSERT(fabs(s.getFloat("floaty_thing") - 1.1) < 0.001); + UASSERT(s.get("stringy_thing") == "asd /( ¤%&(/\" BLÖÄRP"); + UASSERT(fabs(s.getV3F("coord").X - 1.0) < 0.001); + UASSERT(fabs(s.getV3F("coord").Y - 2.0) < 0.001); + UASSERT(fabs(s.getV3F("coord").Z - 4.5) < 0.001); + + // Test the setting of settings too + s.setFloat("floaty_thing_2", 1.2); + s.setV3F("coord2", v3f(1, 2, 3.3)); + UASSERT(s.get("floaty_thing_2").substr(0, 3) == "1.2"); + UASSERT(fabs(s.getFloat("floaty_thing_2") - 1.2) < 0.001); + UASSERT(fabs(s.getV3F("coord2").X - 1.0) < 0.001); + UASSERT(fabs(s.getV3F("coord2").Y - 2.0) < 0.001); + UASSERT(fabs(s.getV3F("coord2").Z - 3.3) < 0.001); + + // Test settings groups + Settings *group = s.getGroup("asdf"); + UASSERT(group != NULL); + UASSERT(s.getGroupNoEx("zoop", group) == false); + UASSERT(group->getS16("a") == 5); + UASSERT(fabs(group->getFloat("bb") - 2.5) < 0.001); + + Settings *group3 = new Settings; + group3->set("cat", "meow"); + group3->set("dog", "woof"); + + Settings *group2 = new Settings; + group2->setS16("num_apples", 4); + group2->setS16("num_oranges", 53); + group2->setGroup("animals", group3); + group2->set("animals", "cute"); // destroys group 3 + s.setGroup("groupy_thing", group2); + + // Test set failure conditions + UASSERT(s.set("Zoop = Poop\nsome_other_setting", "false") == false); + UASSERT(s.set("sneaky", "\"\"\"\njabberwocky = false") == false); + UASSERT(s.set("hehe", "asdfasdf\n\"\"\"\nsomething = false") == false); + + // Test multiline settings + UASSERT(group->get("ccc") == "testy\n testa "); + + UASSERT(s.get("blarg") == "some multiline text\n" + " with leading whitespace!"); + + // Test NoiseParams + UASSERT(s.getEntry("np_terrain").is_group == false); + + NoiseParams np; + UASSERT(s.getNoiseParams("np_terrain", np) == true); + UASSERT(std::fabs(np.offset - 5) < 0.001f); + UASSERT(std::fabs(np.scale - 40) < 0.001f); + UASSERT(std::fabs(np.spread.X - 250) < 0.001f); + UASSERT(std::fabs(np.spread.Y - 250) < 0.001f); + UASSERT(std::fabs(np.spread.Z - 250) < 0.001f); + UASSERT(np.seed == 12341); + UASSERT(np.octaves == 5); + UASSERT(std::fabs(np.persist - 0.7) < 0.001f); + + np.offset = 3.5; + np.octaves = 6; + s.setNoiseParams("np_terrain", np); + + UASSERT(s.getEntry("np_terrain").is_group == true); + + // Test writing + std::ostringstream os(std::ios_base::binary); + is.clear(); + is.seekg(0); + + UASSERT(s.updateConfigObject(is, os, "", 0) == true); + // printf(">>>> expected config:\n%s\n", TEST_CONFIG_TEXT_AFTER); + // printf(">>>> actual config:\n%s\n", os.str().c_str()); #if __cplusplus < 201103L - // This test only works in older C++ versions than C++11 because we use unordered_map - UASSERT(os.str() == config_text_after); + // This test only works in older C++ versions than C++11 because we use + // unordered_map + UASSERT(os.str() == config_text_after); #endif } catch (SettingNotFoundException &e) { UASSERT(!"Setting not found!"); @@ -212,18 +213,13 @@ void TestSettings::testAllSettings() void TestSettings::testFlagDesc() { Settings s; - FlagDesc flagdesc[] = { - { "biomes", 0x01 }, - { "trees", 0x02 }, - { "jungles", 0x04 }, - { "oranges", 0x08 }, - { "tables", 0x10 }, - { nullptr, 0 } - }; + FlagDesc flagdesc[] = {{"biomes", 0x01}, {"trees", 0x02}, {"jungles", 0x04}, + {"oranges", 0x08}, {"tables", 0x10}, {nullptr, 0}}; // Enabled: biomes, jungles, oranges (default) - s.setDefault("test_desc", flagdesc, readFlagString( - "biomes,notrees,jungles,oranges", flagdesc, nullptr)); + s.setDefault("test_desc", flagdesc, + readFlagString("biomes,notrees,jungles,oranges", flagdesc, + nullptr)); UASSERT(s.getFlagStr("test_desc", flagdesc, nullptr) == (0x01 | 0x04 | 0x08)); // Enabled: jungles, oranges, tables |