[colobot] 16/74: Begin adding unit tests for inheritance
Didier Raboud
odyx at moszumanska.debian.org
Mon Nov 7 07:50:00 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 c89e6f4c28fc99bdec746ecc64aa8dc36536a6d5
Author: melex750 <melex750 at users.noreply.github.com>
Date: Thu Aug 4 01:19:56 2016 -0400
Begin adding unit tests for inheritance
---
test/unit/CBot/CBot_test.cpp | 202 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 202 insertions(+)
diff --git a/test/unit/CBot/CBot_test.cpp b/test/unit/CBot/CBot_test.cpp
index 2d96d59..de07c2a 100644
--- a/test/unit/CBot/CBot_test.cpp
+++ b/test/unit/CBot/CBot_test.cpp
@@ -1006,6 +1006,208 @@ TEST_F(CBotUT, ClassStringAdd_Issue535)
);
}
+TEST_F(CBotUT, ClassInheritanceVars)
+{
+ ExecuteTest(
+ "public class BaseClass {\n"
+ " int a = 123;\n"
+ " int b = 456;\n"
+ " int c = 789;\n"
+ "}\n"
+ "public class MidClass extends BaseClass {\n"
+ " int b = 1011;\n"
+ " int c = 1213;\n"
+ " int d = 1415;\n"
+ "}\n"
+ "public class SubClass extends MidClass {\n"
+ " int c = 1617;\n"
+ " int d = 1819;\n"
+ " int e = 2021;\n"
+ "}\n"
+ "extern void ClassInheritanceVars()\n"
+ "{\n"
+ " BaseClass bc();\n"
+ " ASSERT(bc.a == 123);\n"
+ " ASSERT(bc.b == 456);\n"
+ " ASSERT(bc.c == 789);\n"
+ " MidClass mc();\n"
+ " ASSERT(mc.a == 123);\n"
+ " ASSERT(mc.b == 1011);\n"
+ " ASSERT(mc.c == 1213);\n"
+ " ASSERT(mc.d == 1415);\n"
+ " SubClass sc();\n"
+ " ASSERT(sc.a == 123);\n"
+ " ASSERT(sc.b == 1011);\n"
+ " ASSERT(sc.c == 1617);\n"
+ " ASSERT(sc.d == 1819);\n"
+ " ASSERT(sc.e == 2021);\n"
+ // TODO Add tests for polymorphism here
+ "}\n"
+ );
+}
+
+TEST_F(CBotUT, ClassInheritanceMethods)
+{
+ ExecuteTest(
+ "public class BaseClass {\n"
+ " int a = 123;\n"
+ " int b = 456;\n"
+ " int c = 789;\n"
+ " int testOverride() { return 123; }\n"
+ " int testNoOverride() { return 456; }\n"
+ " int testInsideBaseClass() {\n"
+ " ASSERT(a == 123);\n"
+ " ASSERT(b == 456);\n"
+ " ASSERT(c == 789);\n"
+ " ASSERT(456 == testNoOverride());\n"
+ " return c;\n"
+ " }\n"
+ " int testInsideBaseOverride() { return testOverride(); }\n"
+ "}\n"
+ "public class MidClass extends BaseClass {\n"
+ " int b = 1011;\n"
+ " int c = 1213;\n"
+ " int d = 1415;\n"
+ " int testOverride() { return 1011; }\n"
+ " int testInsideMidClass() {\n"
+ " ASSERT(a == 123);\n"
+ " ASSERT(b == 1011);\n"
+ " ASSERT(c == 1213);\n"
+ " ASSERT(d == 1415);\n"
+ " ASSERT(456 == testNoOverride());\n"
+ " ASSERT(789 == testInsideBaseClass());\n"
+ " return c;\n"
+ " }\n"
+ " int testInsideMidOverride() { return testOverride(); }\n"
+ "}\n"
+ "public class SubClass extends MidClass {\n"
+ " int c = 1617;\n"
+ " int d = 1819;\n"
+ " int e = 2021;\n"
+ " int testOverride() { return 1617; }\n"
+ " int testInsideSubClass() {\n"
+ " ASSERT(a == 123);\n"
+ " ASSERT(b == 1011);\n"
+ " ASSERT(c == 1617);\n"
+ " ASSERT(d == 1819);\n"
+ " ASSERT(e == 2021);\n"
+ " ASSERT(456 == testNoOverride());\n"
+ " ASSERT(789 == testInsideBaseClass());\n"
+ " ASSERT(1213 == testInsideMidClass());\n"
+ " return c;\n"
+ " }\n"
+ " int testInsideSubOverride() { return testOverride(); }\n"
+ "}\n"
+ "extern void InheritanceMethods()\n"
+ "{\n"
+ " BaseClass bc();\n"
+ " ASSERT(123 == bc.testOverride());\n"
+ " ASSERT(456 == bc.testNoOverride());\n"
+ " ASSERT(789 == bc.testInsideBaseClass());\n"
+ " ASSERT(123 == bc.testInsideBaseOverride());\n"
+ " MidClass mc();\n"
+ " ASSERT(1011 == mc.testOverride());\n"
+ " ASSERT(456 == mc.testNoOverride());\n"
+ " ASSERT(789 == mc.testInsideBaseClass());\n"
+ " ASSERT(1213 == mc.testInsideMidClass());\n"
+ " ASSERT(1011 == mc.testInsideBaseOverride());\n"
+ " ASSERT(1011 == mc.testInsideMidOverride());\n"
+ " SubClass sc();\n"
+ " ASSERT(1617 == sc.testOverride());\n"
+ " ASSERT(456 == sc.testNoOverride());\n"
+ " ASSERT(789 == sc.testInsideBaseClass());\n"
+ " ASSERT(1213 == sc.testInsideMidClass());\n"
+ " ASSERT(1617 == sc.testInsideSubClass());\n"
+ " ASSERT(1617 == sc.testInsideBaseOverride());\n"
+ " ASSERT(1617 == sc.testInsideMidOverride());\n"
+ " ASSERT(1617 == sc.testInsideSubOverride());\n"
+ // TODO Add tests for polymorphism here
+ "}\n"
+ );
+}
+
+TEST_F(CBotUT, ClassInheritanceTestThis)
+{
+ ExecuteTest(
+ "public class BaseClass {\n"
+ " int a = 123;\n"
+ " int b = 456;\n"
+ " int c = 789;\n"
+ " void testBaseMembersAndParams(int a, int b, int c) {\n"
+ " ASSERT(a != 123);\n"
+ " ASSERT(b != 456);\n"
+ " ASSERT(c != 789);\n"
+ " ASSERT(this.a == 123);\n"
+ " ASSERT(this.b == 456);\n"
+ " ASSERT(this.c == 789);\n"
+ " }\n"
+ " BaseClass testReturnThisFromBaseClass() { return this; }\n"
+ "}\n"
+ "public class MidClass extends BaseClass {\n"
+ " int b = 1011;\n"
+ " int c = 1213;\n"
+ " int d = 1415;\n"
+ " void testMidMembersAndParams(int a, int b, int c, int d) {\n"
+ " ASSERT(a != 123);\n"
+ " ASSERT(b != 1011);\n"
+ " ASSERT(c != 1213);\n"
+ " ASSERT(d != 1415);\n"
+ " ASSERT(this.a == 123);\n"
+ " ASSERT(this.b == 1011);\n"
+ " ASSERT(this.c == 1213);\n"
+ " ASSERT(this.d == 1415);\n"
+ " }\n"
+ " MidClass testReturnThisFromMidClass() { return this; }\n"
+ "}\n"
+ "public class SubClass extends MidClass {\n"
+ " int c = 1617;\n"
+ " int d = 1819;\n"
+ " int e = 2021;\n"
+ " void testSubMembersAndParams(int a, int b, int c, int d, int e) {\n"
+ " ASSERT(a != 123);\n"
+ " ASSERT(b != 1011);\n"
+ " ASSERT(c != 1617);\n"
+ " ASSERT(d != 1819);\n"
+ " ASSERT(e != 2021);\n"
+ " ASSERT(this.a == 123);\n"
+ " ASSERT(this.b == 1011);\n"
+ " ASSERT(this.c == 1617);\n"
+ " ASSERT(this.d == 1819);\n"
+ " ASSERT(this.e == 2021);\n"
+ " }\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
+ "}\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