diff --git a/_stud_tests.sh b/_stud_tests.sh
index 5e48451..6d53ce5 100755
--- a/_stud_tests.sh
+++ b/_stud_tests.sh
@@ -72,6 +72,7 @@ LOG_PATH="./moj-out/"
COUNT=0
ALL=0
mkdir -p moj-out
+rm moj-out/*
#10 test for invalid arguments; Expected return code for all: 1
@@ -283,6 +284,72 @@ echo -n $? > ${LOG_PATH}test034.!!!
$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test035.in --output=${LOCAL_OUT_PATH2}test035.out 2> ${LOG_PATH}test035.err
echo -n $? > ${LOG_PATH}test035.!!!
+# test36: empty input: test036.out; Expected return code: 0
+$INTERPRETER $TASK.$EXTENSION --input=ref-out/test005.out --output=${LOCAL_OUT_PATH2}test036.out 2> ${LOG_PATH}test036.err
+echo -n $? > ${LOG_PATH}test036.!!!
+
+# test37: details of empty class: test037.out; Expected return code: 0
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test037.in --output=${LOCAL_OUT_PATH2}test037.out --details=A 2> ${LOG_PATH}test037.err
+echo -n $? > ${LOG_PATH}test037.!!!
+
+# test38: details of unknown class: test038.out; Expected return code: 0
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test037.in --output=${LOCAL_OUT_PATH2}test038.out --details=B 2> ${LOG_PATH}test038.err
+echo -n $? > ${LOG_PATH}test038.!!!
+
+# test39: details of base class: test039.out; Expected return code: 0
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test039.in --output=${LOCAL_OUT_PATH2}test039.out --details=A 2> ${LOG_PATH}test039.err
+echo -n $? > ${LOG_PATH}test039.!!!
+
+# test40: inheritance of private atributes: test40.out; Expected return code: 0
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test40.in --output=${LOCAL_OUT_PATH2}test40.out --details 2> ${LOG_PATH}test40.err
+echo -n $? > ${LOG_PATH}test40.!!!
+
+#TEST 41 s --details=B sa nepusta! neviem co ma byt vysledok
+
+# test42: private pure virtual method: test42.out; Expected return code: 0
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test42.in --output=${LOCAL_OUT_PATH2}test42.out 2> ${LOG_PATH}test42.err
+echo -n $? > ${LOG_PATH}test42.!!!
+
+# test43: triangle conflict: test43.out; Expected return code: 21
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test43.in --output=${LOCAL_OUT_PATH2}test43.out 2> ${LOG_PATH}test43.err
+echo -n $? > ${LOG_PATH}test43.!!!
+
+# test44: triangle conflict solved by overriding: test44.out; Expected return code: 0
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test44.in --output=${LOCAL_OUT_PATH2}test44.out 2> ${LOG_PATH}test44.err
+echo -n $? > ${LOG_PATH}test44.!!!
+
+# test45: triangle conflict solved by using:: : test45.out; Expected return code: 0
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test45.in --output=${LOCAL_OUT_PATH2}test45.out --details=C 2> ${LOG_PATH}test45.err
+echo -n $? > ${LOG_PATH}test45.!!!
+
+# test46: triangle conflict solved by overiding method: test46.out; Expected return code: 0
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test46.in --output=${LOCAL_OUT_PATH2}test46.out --details=C 2> ${LOG_PATH}test46.err
+echo -n $? > ${LOG_PATH}test46.!!!
+
+# test47: base class cannot be the same class: test47.out; Expected return code: 4
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test47.in --output=${LOCAL_OUT_PATH2}test47.out 2> ${LOG_PATH}test47.err
+echo -n $? > ${LOG_PATH}test47.!!!
+
+# test48: duplicit base class: test48.out; Expected return code: 4
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test48.in --output=${LOCAL_OUT_PATH2}test48.out 2> ${LOG_PATH}test48.err
+echo -n $? > ${LOG_PATH}test48.!!!
+
+# test49: unknown base class: test49.out; Expected return code: 4
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test49.in --output=${LOCAL_OUT_PATH2}test49.out 2> ${LOG_PATH}test49.err
+echo -n $? > ${LOG_PATH}test49.!!!
+
+# test50: static members: test50.out; Expected return code: 0
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test50.in --output=${LOCAL_OUT_PATH2}test50.out --details=B 2> ${LOG_PATH}test50.err
+echo -n $? > ${LOG_PATH}test50.!!!
+
+# test51: types: test51.out; Expected return code: 0
+$INTERPRETER $TASK.$EXTENSION --input=${LOCAL_IN_PATH}test51.in --output=${LOCAL_OUT_PATH2}test51.out --details=A 2> ${LOG_PATH}test51.err
+echo -n $? > ${LOG_PATH}test51.!!!
+
+
+
+
+
#Print results
RED='\033[0;31m'
END='\033[0m'
@@ -360,7 +427,6 @@ for i in `ls ./ref-out/ | grep -e '.*\.out$'`
- rm moj-out/*
PASSED=$((ALL-COUNT))
printf "${GREEN}===================================================${END}\n"
printf "Failed ${BRED}$COUNT${END} "`[[ $COUNT -eq 1 ]] && echo -n "test" || echo -n "tests"`;
diff --git a/ref-out/test036.!!! b/ref-out/test036.!!!
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/ref-out/test036.!!!
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/ref-out/test036.out b/ref-out/test036.out
new file mode 100644
index 0000000..a9e4e3d
--- /dev/null
+++ b/ref-out/test036.out
@@ -0,0 +1,2 @@
+
+
diff --git a/ref-out/test037.!!! b/ref-out/test037.!!!
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/ref-out/test037.!!!
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/ref-out/test037.out b/ref-out/test037.out
new file mode 100644
index 0000000..fcfc713
--- /dev/null
+++ b/ref-out/test037.out
@@ -0,0 +1,2 @@
+
+
diff --git a/ref-out/test038.!!! b/ref-out/test038.!!!
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/ref-out/test038.!!!
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/ref-out/test038.out b/ref-out/test038.out
new file mode 100644
index 0000000..1e33fe8
--- /dev/null
+++ b/ref-out/test038.out
@@ -0,0 +1 @@
+
diff --git a/ref-out/test039.!!! b/ref-out/test039.!!!
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/ref-out/test039.!!!
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/ref-out/test039.out b/ref-out/test039.out
new file mode 100644
index 0000000..76f8632
--- /dev/null
+++ b/ref-out/test039.out
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ref-out/test40.!!! b/ref-out/test40.!!!
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/ref-out/test40.!!!
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/ref-out/test40.out b/ref-out/test40.out
new file mode 100644
index 0000000..76b55af
--- /dev/null
+++ b/ref-out/test40.out
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ref-out/test42.!!! b/ref-out/test42.!!!
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/ref-out/test42.!!!
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/ref-out/test42.out b/ref-out/test42.out
new file mode 100644
index 0000000..409d215
--- /dev/null
+++ b/ref-out/test42.out
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/ref-out/test43.!!! b/ref-out/test43.!!!
new file mode 100644
index 0000000..b5045cc
--- /dev/null
+++ b/ref-out/test43.!!!
@@ -0,0 +1 @@
+21
\ No newline at end of file
diff --git a/ref-out/test43.out b/ref-out/test43.out
new file mode 100644
index 0000000..e69de29
diff --git a/ref-out/test44.!!! b/ref-out/test44.!!!
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/ref-out/test44.!!!
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/ref-out/test44.out b/ref-out/test44.out
new file mode 100644
index 0000000..5c8b1f2
--- /dev/null
+++ b/ref-out/test44.out
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/ref-out/test45.!!! b/ref-out/test45.!!!
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/ref-out/test45.!!!
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/ref-out/test45.out b/ref-out/test45.out
new file mode 100644
index 0000000..c274c90
--- /dev/null
+++ b/ref-out/test45.out
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ref-out/test46.!!! b/ref-out/test46.!!!
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/ref-out/test46.!!!
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/ref-out/test46.out b/ref-out/test46.out
new file mode 100644
index 0000000..944ef71
--- /dev/null
+++ b/ref-out/test46.out
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ref-out/test47.!!! b/ref-out/test47.!!!
new file mode 100644
index 0000000..bf0d87a
--- /dev/null
+++ b/ref-out/test47.!!!
@@ -0,0 +1 @@
+4
\ No newline at end of file
diff --git a/ref-out/test47.out b/ref-out/test47.out
new file mode 100644
index 0000000..e69de29
diff --git a/ref-out/test48.!!! b/ref-out/test48.!!!
new file mode 100644
index 0000000..bf0d87a
--- /dev/null
+++ b/ref-out/test48.!!!
@@ -0,0 +1 @@
+4
\ No newline at end of file
diff --git a/ref-out/test48.out b/ref-out/test48.out
new file mode 100644
index 0000000..e69de29
diff --git a/ref-out/test49.!!! b/ref-out/test49.!!!
new file mode 100644
index 0000000..bf0d87a
--- /dev/null
+++ b/ref-out/test49.!!!
@@ -0,0 +1 @@
+4
\ No newline at end of file
diff --git a/ref-out/test49.out b/ref-out/test49.out
new file mode 100644
index 0000000..e69de29
diff --git a/ref-out/test50.!!! b/ref-out/test50.!!!
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/ref-out/test50.!!!
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/ref-out/test50.out b/ref-out/test50.out
new file mode 100644
index 0000000..cdd32c0
--- /dev/null
+++ b/ref-out/test50.out
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ref-out/test51.!!! b/ref-out/test51.!!!
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/ref-out/test51.!!!
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/ref-out/test51.out b/ref-out/test51.out
new file mode 100644
index 0000000..9165710
--- /dev/null
+++ b/ref-out/test51.out
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test037.in b/test037.in
new file mode 100644
index 0000000..f0df46d
--- /dev/null
+++ b/test037.in
@@ -0,0 +1 @@
+class A{};
diff --git a/test039.in b/test039.in
new file mode 100644
index 0000000..3208832
--- /dev/null
+++ b/test039.in
@@ -0,0 +1,4 @@
+class A{
+ int f();
+ int x;
+};
diff --git a/test40.in b/test40.in
new file mode 100644
index 0000000..17d8196
--- /dev/null
+++ b/test40.in
@@ -0,0 +1,15 @@
+class A{
+ private:
+ int x;
+};
+
+class B: A{
+ public:
+ int x1;
+};
+
+class C: private B{
+};
+
+class D: C{
+};
diff --git a/test41.in b/test41.in
new file mode 100644
index 0000000..e804c78
--- /dev/null
+++ b/test41.in
@@ -0,0 +1,12 @@
+class A{
+ private:
+ int f(int x1, int x2);
+ int f(double x1);
+};
+
+class B: public A{
+ protected:
+ using A::f;
+
+};
+
diff --git a/test42.in b/test42.in
new file mode 100644
index 0000000..e7548c7
--- /dev/null
+++ b/test42.in
@@ -0,0 +1,11 @@
+class A{
+ private:
+ int f()=0;
+};
+
+class B: private A{
+};
+
+class C: private B{
+};
+
diff --git a/test43.in b/test43.in
new file mode 100644
index 0000000..fc871cd
--- /dev/null
+++ b/test43.in
@@ -0,0 +1,10 @@
+class A{
+ public:
+ int x;
+};
+
+class B: public A{
+};
+
+class C: public A, public B{
+};
diff --git a/test44.in b/test44.in
new file mode 100644
index 0000000..bde8c04
--- /dev/null
+++ b/test44.in
@@ -0,0 +1,11 @@
+class A{
+ public:
+ int x;
+};
+
+class B: public A{
+};
+
+class C: public A, public B{
+ int x;
+};
diff --git a/test45.in b/test45.in
new file mode 100644
index 0000000..b9b125d
--- /dev/null
+++ b/test45.in
@@ -0,0 +1,11 @@
+class A{
+ public:
+ int x;
+};
+
+class B: public A{
+};
+
+class C: public A, public B{
+ using B::x;
+};
diff --git a/test46.in b/test46.in
new file mode 100644
index 0000000..3644cf2
--- /dev/null
+++ b/test46.in
@@ -0,0 +1,11 @@
+class A{
+ public:
+ int f(int x, int y);
+};
+
+class B: public A{
+};
+
+class C: public A, public B{
+ int f(int z, int hello);
+};
diff --git a/test47.in b/test47.in
new file mode 100644
index 0000000..05becc4
--- /dev/null
+++ b/test47.in
@@ -0,0 +1,3 @@
+class A: A{
+ int x;
+};
diff --git a/test48.in b/test48.in
new file mode 100644
index 0000000..a45aba9
--- /dev/null
+++ b/test48.in
@@ -0,0 +1,6 @@
+class A{
+ int x;
+};
+
+class B: public A, private A{
+};
diff --git a/test49.in b/test49.in
new file mode 100644
index 0000000..dc3a55b
--- /dev/null
+++ b/test49.in
@@ -0,0 +1,4 @@
+class A{
+};
+
+class B: C{};
diff --git a/test50.in b/test50.in
new file mode 100644
index 0000000..d31118c
--- /dev/null
+++ b/test50.in
@@ -0,0 +1,8 @@
+class A{
+ public:
+ static int x;
+ static int f(void);
+};
+
+class B: public A{
+};
diff --git a/test51.in b/test51.in
new file mode 100644
index 0000000..3e53512
--- /dev/null
+++ b/test51.in
@@ -0,0 +1,16 @@
+class A{
+ bool x;
+ char y;
+ int z;
+ float f;
+ double d;
+ wchar_t w;
+
+ signed int s;
+ unsigned char u;
+ short int sh;
+ long int l;
+
+ unsigned long int uli;
+ signed short int *pspi;
+};