[colobot] 23/74: Add more unit tests for inheritance

Didier Raboud odyx at moszumanska.debian.org
Mon Nov 7 07:50:01 UTC 2016


This is an automated email from the git hooks/post-receive script.

odyx pushed a commit to branch debian/master
in repository colobot.

commit 8b3c4302d2b8872fe3cd10833c01c0c697fb8081
Author: melex750 <melex750 at users.noreply.github.com>
Date:   Sun Aug 7 10:01:10 2016 -0400

    Add more unit tests for inheritance
---
 test/unit/CBot/CBot_test.cpp | 129 ++++++++++++++++++++++++++++++++++---------
 1 file changed, 102 insertions(+), 27 deletions(-)

diff --git a/test/unit/CBot/CBot_test.cpp b/test/unit/CBot/CBot_test.cpp
index de07c2a..6d5954a 100644
--- a/test/unit/CBot/CBot_test.cpp
+++ b/test/unit/CBot/CBot_test.cpp
@@ -1006,6 +1006,26 @@ TEST_F(CBotUT, ClassStringAdd_Issue535)
     );
 }
 
+TEST_F(CBotUT, ClassInheritanceAssignment)
+{
+    ExecuteTest(
+        "public class BaseClass {}\n"
+        "public class MidClass extends BaseClass {}\n"
+        "public class SubClass extends MidClass {}\n"
+        "extern void ClassInheritanceVars()\n"
+        "{\n"
+        "    BaseClass bc = new MidClass();\n"
+        "    MidClass  mc = bc;\n"
+        "    mc = new SubClass();\n"
+        "    SubClass  sc = mc;\n"
+        "    bc = mc;\n"
+        "    bc = new MidClass();\n"
+        "    bc = new SubClass();\n"
+        "    sc = bc;\n"
+        "}\n"
+    );
+}
+
 TEST_F(CBotUT, ClassInheritanceVars)
 {
     ExecuteTest(
@@ -1041,7 +1061,16 @@ TEST_F(CBotUT, ClassInheritanceVars)
         "    ASSERT(sc.c == 1617);\n"
         "    ASSERT(sc.d == 1819);\n"
         "    ASSERT(sc.e == 2021);\n"
-        // TODO Add tests for polymorphism here
+        // Test polymorphism
+        "    bc = mc;\n"
+        "    ASSERT(bc.a == 123);\n"
+        "    ASSERT(bc.b == 456);\n"
+        "    ASSERT(bc.c == 789);\n"
+        "    mc = sc;\n"
+        "    ASSERT(mc.a == 123);\n"
+        "    ASSERT(mc.b == 1011);\n"
+        "    ASSERT(mc.c == 1213);\n"
+        "    ASSERT(mc.d == 1415);\n"
         "}\n"
     );
 }
@@ -1078,6 +1107,14 @@ TEST_F(CBotUT, ClassInheritanceMethods)
         "        ASSERT(789  == testInsideBaseClass());\n"
         "        return c;\n"
         "    }\n"
+        "    int testSuper() {\n"
+        "        ASSERT(super.a == 123);\n"
+        "        ASSERT(super.b == 456);\n"
+        "        ASSERT(super.c == 789);\n"
+        "        ASSERT(123 == super.testOverride());\n"
+        "        ASSERT(789 == super.testInsideBaseClass());\n"
+        "        return super.testInsideBaseOverride();\n"
+        "    }\n"
         "    int testInsideMidOverride() { return testOverride(); }\n"
         "}\n"
         "public class SubClass extends MidClass {\n"
@@ -1096,6 +1133,16 @@ TEST_F(CBotUT, ClassInheritanceMethods)
         "        ASSERT(1213 == testInsideMidClass());\n"
         "        return c;\n"
         "    }\n"
+        "    int testSuper() {\n"
+        "        ASSERT(super.a == 123);\n"
+        "        ASSERT(super.b == 1011);\n"
+        "        ASSERT(super.c == 1213);\n"
+        "        ASSERT(super.d == 1415);\n"
+        "        ASSERT(1011 == super.testOverride());\n"
+        "        ASSERT(789  == super.testInsideBaseClass());\n"
+        "        ASSERT(1213 == super.testInsideMidClass());\n"
+        "        return super.testSuper();\n"
+        "    }\n"
         "    int testInsideSubOverride() { return testOverride(); }\n"
         "}\n"
         "extern void InheritanceMethods()\n"
@@ -1106,6 +1153,7 @@ TEST_F(CBotUT, ClassInheritanceMethods)
         "    ASSERT(789 == bc.testInsideBaseClass());\n"
         "    ASSERT(123 == bc.testInsideBaseOverride());\n"
         "    MidClass  mc();\n"
+        "    ASSERT(1011 == mc.testSuper());\n"
         "    ASSERT(1011 == mc.testOverride());\n"
         "    ASSERT(456  == mc.testNoOverride());\n"
         "    ASSERT(789  == mc.testInsideBaseClass());\n"
@@ -1113,6 +1161,7 @@ TEST_F(CBotUT, ClassInheritanceMethods)
         "    ASSERT(1011 == mc.testInsideBaseOverride());\n"
         "    ASSERT(1011 == mc.testInsideMidOverride());\n"
         "    SubClass  sc();\n"
+        "    ASSERT(1617 == sc.testSuper());\n"
         "    ASSERT(1617 == sc.testOverride());\n"
         "    ASSERT(456  == sc.testNoOverride());\n"
         "    ASSERT(789  == sc.testInsideBaseClass());\n"
@@ -1121,7 +1170,22 @@ TEST_F(CBotUT, ClassInheritanceMethods)
         "    ASSERT(1617 == sc.testInsideBaseOverride());\n"
         "    ASSERT(1617 == sc.testInsideMidOverride());\n"
         "    ASSERT(1617 == sc.testInsideSubOverride());\n"
-        // TODO Add tests for polymorphism here
+        // Test polymorphism
+        "    bc = mc;\n"
+        "    ASSERT(1011 == bc.testOverride());\n"
+        "    ASSERT(789  == bc.testInsideBaseClass());\n"
+        "    ASSERT(1011 == bc.testInsideBaseOverride());\n"
+        "    bc = sc;\n"
+        "    ASSERT(1617 == bc.testOverride());\n"
+        "    ASSERT(789  == bc.testInsideBaseClass());\n"
+        "    ASSERT(1617 == bc.testInsideBaseOverride());\n"
+        "    mc = sc;\n"
+        "    ASSERT(1617 == mc.testSuper());\n"
+        "    ASSERT(1617 == mc.testOverride());\n"
+        "    ASSERT(789  == mc.testInsideBaseClass());\n"
+        "    ASSERT(1213 == mc.testInsideMidClass());\n"
+        "    ASSERT(1617 == mc.testInsideBaseOverride());\n"
+        "    ASSERT(1617 == mc.testInsideMidOverride());\n"
         "}\n"
     );
 }
@@ -1141,6 +1205,7 @@ TEST_F(CBotUT, ClassInheritanceTestThis)
         "        ASSERT(this.b == 456);\n"
         "        ASSERT(this.c == 789);\n"
         "    }\n"
+        "    BaseClass testSuperReturnThis(){ return this; }\n"
         "    BaseClass testReturnThisFromBaseClass() { return this; }\n"
         "}\n"
         "public class MidClass extends BaseClass {\n"
@@ -1157,6 +1222,7 @@ TEST_F(CBotUT, ClassInheritanceTestThis)
         "        ASSERT(this.c == 1213);\n"
         "        ASSERT(this.d == 1415);\n"
         "    }\n"
+        "    MidClass testSuperReturnThis(){ return super.testSuperReturnThis(); }\n"
         "    MidClass testReturnThisFromMidClass() { return this; }\n"
         "}\n"
         "public class SubClass extends MidClass {\n"
@@ -1175,39 +1241,48 @@ TEST_F(CBotUT, ClassInheritanceTestThis)
         "        ASSERT(this.d == 1819);\n"
         "        ASSERT(this.e == 2021);\n"
         "    }\n"
+        "    SubClass testSuperReturnThis(){ return super.testSuperReturnThis(); }\n"
         "    SubClass testReturnThisFromSubClass() { return this; }\n"
         "}\n"
         "extern void ClassInheritanceTestThis()\n"
         "{\n"
-        "    BaseClass b();\n"
-        "    b.testBaseMembersAndParams(-1, -2, -3);\n"
-        "    BaseClass bc = b.testReturnThisFromBaseClass();\n"
-        "    ASSERT(bc == b);\n"
-        "    MidClass m();\n"
-        "    m.testBaseMembersAndParams(-1, -2, -3);\n"
-        "    m.testMidMembersAndParams(-1, -2, -3, -4);\n"
-        "    MidClass mc = m.testReturnThisFromMidClass();\n"
-        "    ASSERT(mc == m);\n"
-        "    mc = m.testReturnThisFromBaseClass();\n"
-        "    ASSERT(mc == m);\n"
-        "    SubClass s();\n"
-        "    s.testBaseMembersAndParams(-1, -2, -3);\n"
-        "    s.testMidMembersAndParams(-1, -2, -3, -4);\n"
-        "    s.testSubMembersAndParams(-1, -2, -3, -4, -5);\n"
-        "    SubClass sc = s.testReturnThisFromSubClass();\n"
-        "    ASSERT(sc == s);\n"
-        "    sc = s.testReturnThisFromBaseClass();\n"
-        "    ASSERT(sc == s);\n"
-        "    sc = s.testReturnThisFromMidClass();\n"
-        "    ASSERT(sc == s);\n"
-        // TODO Add tests for polymorphism here
+        "    BaseClass bc();\n"
+        "    MidClass  mc();\n"
+        "    SubClass  sc();\n"
+        "    ASSERT(bc == bc.testSuperReturnThis());\n"
+        "    ASSERT(bc == bc.testReturnThisFromBaseClass());\n"
+        "                 bc.testBaseMembersAndParams(-1, -2, -3);\n"
+        "    ASSERT(mc == mc.testSuperReturnThis());\n"
+        "    ASSERT(mc == mc.testReturnThisFromBaseClass());\n"
+        "    ASSERT(mc == mc.testReturnThisFromMidClass());\n"
+        "                 mc.testBaseMembersAndParams(-1, -2, -3);\n"
+        "                 mc.testMidMembersAndParams(-1, -2, -3, -4);\n"
+        "    ASSERT(sc == sc.testSuperReturnThis());\n"
+        "    ASSERT(sc == sc.testReturnThisFromBaseClass());\n"
+        "    ASSERT(sc == sc.testReturnThisFromMidClass());\n"
+        "    ASSERT(sc == sc.testReturnThisFromSubClass());\n"
+        "                 sc.testBaseMembersAndParams(-1, -2, -3);\n"
+        "                 sc.testMidMembersAndParams(-1, -2, -3, -4);\n"
+        "                 sc.testSubMembersAndParams(-1, -2, -3, -4, -5);\n"
+        // Test polymorphism
+        "    bc = mc;\n"
+        "    ASSERT(mc == bc.testSuperReturnThis());\n"
+        "    ASSERT(mc == bc.testReturnThisFromBaseClass());\n"
+        "                 bc.testBaseMembersAndParams(-1, -2, -3);\n"
+        "    bc = sc;\n"
+        "    ASSERT(sc == bc.testSuperReturnThis());\n"
+        "    ASSERT(sc == bc.testReturnThisFromBaseClass());\n"
+        "                 bc.testBaseMembersAndParams(-1, -2, -3);\n"
+        "    mc = sc;\n"
+        "    ASSERT(sc == mc.testSuperReturnThis());\n"
+        "    ASSERT(sc == mc.testReturnThisFromBaseClass());\n"
+        "    ASSERT(sc == mc.testReturnThisFromMidClass());\n"
+        "                 mc.testBaseMembersAndParams(-1, -2, -3);\n"
+        "                 mc.testMidMembersAndParams(-1, -2, -3, -4);\n"
         "}\n"
     );
 }
 
-// TODO TEST_F(CBotUT, ClassInheritanceTestSuper)
-
-
 TEST_F(CBotUT, String)
 {
     ExecuteTest(

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/colobot.git



More information about the Pkg-games-commits mailing list