added an unit test for the Settings thingy (the python ConfigParser -like thing)
authorPerttu Ahola <celeron55@gmail.com>
Fri, 22 Jul 2011 10:10:58 +0000 (13:10 +0300)
committerPerttu Ahola <celeron55@gmail.com>
Fri, 22 Jul 2011 10:10:58 +0000 (13:10 +0300)
src/test.cpp

index 7d71552a8fbbb9f41eb83f83ba2e05288d4992ff..0487f1436a3aeea49d52872ac71e54c6f1e76aff 100644 (file)
@@ -61,6 +61,38 @@ struct TestUtilities
                assert(is_yes("FAlse") == false);
        }
 };
+
+struct TestSettings
+{
+       void Run()
+       {
+               Settings s;
+               // Test reading of settings
+               s.parseConfigLine("leet = 1337");
+               s.parseConfigLine("leetleet = 13371337");
+               s.parseConfigLine("leetleet_neg = -13371337");
+               s.parseConfigLine("floaty_thing = 1.1");
+               s.parseConfigLine("stringy_thing = asd /( ¤%&(/\" BLÖÄRP");
+               s.parseConfigLine("coord = (1, 2, 4.5)");
+               assert(s.getS32("leet") == 1337);
+               assert(s.getS16("leetleet") == 32767);
+               assert(s.getS16("leetleet_neg") == -32768);
+               // Not sure if 1.1 is an exact value as a float, but doesn't matter
+               assert(fabs(s.getFloat("floaty_thing") - 1.1) < 0.001);
+               assert(s.get("stringy_thing") == "asd /( ¤%&(/\" BLÖÄRP");
+               assert(fabs(s.getV3F("coord").X - 1.0) < 0.001);
+               assert(fabs(s.getV3F("coord").Y - 2.0) < 0.001);
+               assert(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));
+               assert(s.get("floaty_thing_2").substr(0,3) == "1.2");
+               assert(fabs(s.getFloat("floaty_thing_2") - 1.2) < 0.001);
+               assert(fabs(s.getV3F("coord2").X - 1.0) < 0.001);
+               assert(fabs(s.getV3F("coord2").Y - 2.0) < 0.001);
+               assert(fabs(s.getV3F("coord2").Z - 3.3) < 0.001);
+       }
+};
                
 struct TestCompress
 {
@@ -1033,6 +1065,7 @@ void run_tests()
        DSTACK(__FUNCTION_NAME);
        dstream<<"run_tests() started"<<std::endl;
        TEST(TestUtilities);
+       TEST(TestSettings);
        TEST(TestCompress);
        TEST(TestMapNode);
        TEST(TestVoxelManipulator);