instanceOf: class hierarchy are considered properly now
[mate.git] / tests / InstanceOf2.java
diff --git a/tests/InstanceOf2.java b/tests/InstanceOf2.java
new file mode 100644 (file)
index 0000000..1ca8bb1
--- /dev/null
@@ -0,0 +1,44 @@
+package tests;
+
+public class InstanceOf2 {
+       public static void main(String []args) {
+               System.out.printf("x = new InstanceOf2_local;\n");
+               Instance1 x = new InstanceOf2_local();
+               checkInstance(null instanceof Instance1, "null", "Instance1");
+               checkInstance(x instanceof Instance1, "x", "Instance1");
+               checkInstance(x instanceof Instance2, "x", "Instance2");
+               checkInstance(x instanceof InstanceOf2_local, "x", "InstanceOf2_local");
+               checkInstance(x instanceof Object, "x", "Object");
+               checkInstance(x instanceof InstanceOf2_local2, "x", "InstanceOf2_local2");
+
+               System.out.printf("\n\n");
+               System.out.printf("y = new InstanceOf2_local2;\n");
+               Object y = new InstanceOf2_local2();
+               checkInstance(null instanceof Instance1, "null", "Instance1");
+               checkInstance(y instanceof Instance1, "y", "Instance1");
+               checkInstance(y instanceof Instance2, "y", "Instance2");
+               checkInstance(y instanceof InstanceOf2_local, "y", "InstanceOf2_local");
+               checkInstance(y instanceof Object, "y", "Object");
+               checkInstance(y instanceof InstanceOf2_local2, "y", "InstanceOf2_local2");
+       }
+
+       public static void checkInstance(boolean cond, String obj, String classname) {
+               System.out.printf(obj);
+               if (cond) {
+                       System.out.printf(" is instance of ");
+                       System.out.printf(classname);
+                       System.out.printf(" :-)\n");
+               } else {
+                       System.out.printf(" is *not* instance of ");
+                       System.out.printf(classname);
+                       System.out.printf(" :-(\n");
+               }
+       }
+}
+
+
+class InstanceOf2_local extends Instance1 {
+}
+
+class InstanceOf2_local2 extends InstanceOf2_local {
+}