/* * Object-Oriented Programming * Copyright (C) 2006-2011 Robert Grimm * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, * USA. */ package xtc.oop; public class Test { public static final Object R1 = new Object(); public static final Object R2 = new Object(); public static final Object R3 = new Object(); public static final Object R4 = new Object(); public int count; public Test() { count = 0; } public Object m1() { return R1; } public static Object m2() { return R3; } public Test m3() { count++; return this; } public Test m4() { count++; return this; } public Test m5(Test t) { return t.m3().m4(); } public Object m6(Test t) { return R1; } public Object m6(Rest r) { return R2; } public Object m7(Object o) { return R3; } public Object m7(String s) { return R4; } public Object m7(Test t) { return R1; } public Object m7(Rest r) { return R2; } public Object m8(Test t) { return R1; } public Object m8(Rest r) { return R2; } public Object m8(Test t1, Test t2) { return R3; } public Object m8(Rest r, Test t) { return R4; } public Object m9(short n1) { return null; } public Object m9(int n1) { return null; } public Object m9(long n1) { return null; } public Object m10(int n1) { return null; } public Object m10(long n1) { return null; } public static void main(String[] args) { short n = 1; Test t; Rest r; Object o = null; int test = 0; int success = 0; // ----------------------------------------------------------------------- System.out.println("PASS Test.main()"); success++; test++; // ----------------------------------------------------------------------- if ((R1 != null) && (R1 != R2) && (R1 != R3) && (R1 != R4)) { System.out.println("PASS Object.<init>()"); success++; } else { System.out.println("FAIL Object.<init>()"); } test++; // // ----------------------------------------------------------------------- r = new Rest(); o = r.m1(); if (R2 == o) { System.out.println("PASS r.m1()"); success++; } else { System.out.println("FAIL r.m1()"); } test++; // // ----------------------------------------------------------------------- t = r; if (t == r) { System.out.println("PASS t == r"); success++; } else { System.out.println("FAIL t == r"); } test++; // // ----------------------------------------------------------------------- if (t.equals(r)) { System.out.println("PASS t.equals(r)"); success++; } else { System.out.println("FAIL t.equals(r)"); } test++; // // ----------------------------------------------------------------------- if (r.equals(t)) { System.out.println("PASS r.equals(t)"); success++; } else { System.out.println("FAIL r.equals(t)"); } test++; // // ----------------------------------------------------------------------- int h = r.hashCode(); if (7353 == h) { System.out.println("PASS 7353 == r.hashCode()"); success++; } else { System.out.println("FAIL 7353 == r.hashCode()"); } test++; // // ----------------------------------------------------------------------- String s1 = t.toString(); String s2 = r.toString(); if (s1.equals(s2)) { System.out.println("PASS t.toString().equals(r.toString())"); success++; } else { System.out.println("FAIL t.toString().equals(r.toString())"); } test++; // // ----------------------------------------------------------------------- o = t.m1(); if (R2 == o) { System.out.println("PASS t.m1()"); success++; } else { System.out.println("FAIL t.m1()"); } test++; // // ----------------------------------------------------------------------- o = Rest.m2(); if (R4 == o) { System.out.println("PASS Rest.m2()"); success++; } else { System.out.println("FAIL Rest.m2()"); } test++; // ----------------------------------------------------------------------- o = r.m2(); if (R4 == o) { System.out.println("PASS r.m2()"); success++; } else { System.out.println("FAIL r.m2()"); } test++; // ----------------------------------------------------------------------- Test tr = r; o = tr.m2(); if (R3 == o) { System.out.println("PASS tr.m2()"); success++; } else { System.out.println("FAIL tr.m2()"); } test++; // // ----------------------------------------------------------------------- o = Test.m2(); if (R3 == o) { System.out.println("PASS Test.m2()"); success++; } else { System.out.println("FAIL Test.m2()"); } test++; // // ----------------------------------------------------------------------- o = t.m2(); if (R3 == o) { System.out.println("PASS t.m2()"); success++; } else { System.out.println("FAIL t.m2()"); } test++; // // ----------------------------------------------------------------------- t = new Test(); if (t != r) { System.out.println("PASS t != r"); success++; } else { System.out.println("FAIL t != r"); } test++; // // ----------------------------------------------------------------------- if (! t.equals(r)) { System.out.println("PASS ! t.equals(r)"); success++; } else { System.out.println("FAIL ! t.equals(r)"); } test++; // // ----------------------------------------------------------------------- s1 = t.toString(); if (! s1.equals(s2)) { System.out.println("PASS ! t.toString().equals(r.toString())"); success++; } else { System.out.println("FAIL ! t.toString().equals(r.toString())"); } test++; // // ----------------------------------------------------------------------- o = t.m1(); if (R1 == o) { System.out.println("PASS t.m1()"); success++; } else { System.out.println("FAIL t.m1()"); } test++; // // ----------------------------------------------------------------------- // o = t; // if (o instanceof Test) { // System.out.println("PASS o instanceof Test"); // success++; // } else { // System.out.println("FAIL o instanceof Test"); // } // test++; // // ----------------------------------------------------------------------- // if (o instanceof Object) { // System.out.println("PASS o instanceof Object"); // success++; // } else { // System.out.println("FAIL o instanceof Object"); // } // test++; // // ----------------------------------------------------------------------- // if (! (o instanceof String)) { // System.out.println("PASS ! (o instanceof String)"); // success++; // } else { // System.out.println("FAIL ! (o instanceof String)"); // } // test++; // // ----------------------------------------------------------------------- // o = ((Test)o).m1(); // if (R1 == o) { // System.out.println("PASS (Test)o"); // success++; // } else { // System.out.println("FAIL (Test)o"); // } // test++; // // ----------------------------------------------------------------------- o = t.m2(); if (R3 == o) { System.out.println("PASS t.m2()"); success++; } else { System.out.println("FAIL t.m2()"); } test++; // // ----------------------------------------------------------------------- if (0 == t.count) { System.out.println("PASS Test.<init>()"); success++; } else { System.out.println("FAIL Test.<init>()"); } test++; // // ----------------------------------------------------------------------- // if ((0 == r.round) && (0 == r.count)) { // System.out.println("PASS Rest.<init>()"); // success++; // } else { // System.out.println("FAIL Rest.<init>()"); // } // test++; // // ----------------------------------------------------------------------- t.m3().m4(); if (2 == t.count) { System.out.println("PASS t.m3().m4()"); success++; } else { System.out.println("FAIL t.m3().m4()"); } test++; // // ----------------------------------------------------------------------- // r.m3().m4(); // if ((1 == r.round) && (1 == r.count)) { // System.out.println("PASS r.m3().m4()"); // success++; // } else { // System.out.println("FAIL r.m3().m4()"); // } // test++; // // ----------------------------------------------------------------------- t.count = 0; t.m5(t).m3().m4(); if (4 == t.count) { System.out.println("PASS t.m5(t).m3().m4()"); success++; } else { System.out.println("FAIL t.m5(t).m3().m4()"); } test++; // // ----------------------------------------------------------------------- // r.count = 0; // r.round = 0; // r.m5(r).m3().m4(); // if ((2 == r.round) && (2 == r.count)) { // System.out.println("PASS r.m5(r).m3().m4()"); // success++; // } else { // System.out.println("FAIL r.m5(r).m3().m4()"); // } // test++; // // ----------------------------------------------------------------------- // t.count = 0; // r.count = 0; // r.round = 0; // r.m5(t).m3().m4(); // if ((0 == r.round) && (0 == r.count) && (4 == t.count)) { // System.out.println("PASS r.m5(t).m3().m4()"); // success++; // } else { // System.out.println("FAIL r.m5(t).m3().m4()"); // } // test++; // // ----------------------------------------------------------------------- o = t.m6(t); if (R1 == o) { System.out.println("PASS t.m6(t)"); success++; } else { System.out.println("FAIL t.m6(t)"); } test++; // // ----------------------------------------------------------------------- o = t.m6(r); if (R2 == o) { System.out.println("PASS t.m6(r)"); success++; } else { System.out.println("FAIL t.m6(r)"); } test++; // // ----------------------------------------------------------------------- o = r.m6(t); if (R1 == o) { System.out.println("PASS r.m6(t)"); success++; } else { System.out.println("FAIL r.m6(t)"); } test++; // // ----------------------------------------------------------------------- o = r.m6(r); if (R2 == o) { System.out.println("PASS r.m6(r)"); success++; } else { System.out.println("FAIL r.m6(r)"); } test++; // // ----------------------------------------------------------------------- o = t.m7(t); if (R1 == o) { System.out.println("PASS t.m7(t)"); success++; } else { System.out.println("FAIL t.m7(t)"); } test++; // // ----------------------------------------------------------------------- o = t.m7(r); if (R2 == o) { System.out.println("PASS t.m7(r)"); success++; } else { System.out.println("FAIL t.m7(r)"); } test++; // // ----------------------------------------------------------------------- o = t.m7(o); if (R3 == o) { System.out.println("PASS t.m7(o)"); success++; } else { System.out.println("FAIL t.m7(o)"); } test++; // // ----------------------------------------------------------------------- o = t.m7(s1); if (R4 == o) { System.out.println("PASS t.m7(s1)"); success++; } else { System.out.println("FAIL t.m7(s1)"); } test++; // ----------------------------------------------------------------------- o = r.m7(t); if (R3 == o) { System.out.println("PASS r.m7(t)"); success++; } else { System.out.println("FAIL r.m7(t)"); } test++; // ----------------------------------------------------------------------- o = r.m7(r); if (R2 == o) { System.out.println("PASS r.m7(r)"); success++; } else { System.out.println("FAIL r.m7(r)"); } test++; // ----------------------------------------------------------------------- o = t.m8(t); if (R1 == o) { System.out.println("PASS t.m8(t)"); success++; } else { System.out.println("FAIL t.m8(t)"); } test++; // // ----------------------------------------------------------------------- o = t.m8(r); if (R2 == o) { System.out.println("PASS t.m8(r)"); success++; } else { System.out.println("FAIL t.m8(r)"); } test++; // ----------------------------------------------------------------------- o = r.m8(t); if (R1 == o) { System.out.println("PASS r.m8(t)"); success++; } else { System.out.println("FAIL r.m8(t)"); } test++; // ----------------------------------------------------------------------- o = r.m8(r); if (R2 == o) { System.out.println("PASS r.m8(r)"); success++; } else { System.out.println("FAIL r.m8(r)"); } test++; // ----------------------------------------------------------------------- o = r.m8(t, t); if (R3 == o) { System.out.println("PASS r.m8(t, t)"); success++; } else { System.out.println("FAIL r.m8(t, t)"); } test++; // ----------------------------------------------------------------------- o = r.m8(tr, t); if (R3 == o) { System.out.println("PASS r.m8(tr, t)"); success++; } else { System.out.println("FAIL r.m8(tr, t)"); } test++; // ----------------------------------------------------------------------- o = r.m8(r, t); if (R4 == o) { System.out.println("PASS r.m8(r, t)"); success++; } else { System.out.println("FAIL r.m8(r, t)"); } test++; // ----------------------------------------------------------------------- o = r.m9(n); if (R1 == o) { System.out.println("PASS r.m9(n)"); success++; } else { System.out.println("FAIL r.m9(n)"); } test++; // // ----------------------------------------------------------------------- o = r.m9(n + n); if (R2 == o) { System.out.println("PASS r.m9(n+n)"); success++; } else { System.out.println("FAIL r.m9(n+n)"); } test++; // // ----------------------------------------------------------------------- o = r.m9(n + 5l); if (R3 == o) { System.out.println("PASS r.m9(n+5l)"); success++; } else { System.out.println("FAIL r.m9(n+5l)"); } test++; // // ----------------------------------------------------------------------- // o = r.m10(n); // if (R2 == o) { // System.out.println("PASS r.m10(n)"); // success++; // } else { // System.out.println("FAIL r.m10(n)"); // } // test++; // // ----------------------------------------------------------------------- o = r.m10(n + n); if (R2 == o) { System.out.println("PASS r.m10(n+n)"); success++; } else { System.out.println("FAIL r.m10(n+n)"); } test++; // // ----------------------------------------------------------------------- Class k1 = t.getClass(); Class k2 = r.getClass(); if (k1 != k2) { System.out.println("PASS k1 != k2"); success++; } else { System.out.println("FAIL K1 != k2"); } test++; // // ----------------------------------------------------------------------- if (k1.getName().equals("xtc.oop.Test")) { System.out.println("PASS k1.getName().equals(\"xtc.oop.Test\")"); success++; } else { System.out.println("FAIL k1.getName().equals(\"xtc.oop.Test\")"); } test++; // // ----------------------------------------------------------------------- // if ("xtc.oop.Test".equals(k1.getName())) { // System.out.println("PASS \"xtc.oop.Test\".equals(k1.getName())"); // success++; // } else { // System.out.println("FAIL \"xtc.oop.Test\".equals(k1.getName())"); // } // test++; // // ----------------------------------------------------------------------- if (k1.toString().equals("class xtc.oop.Test")) { System.out.println("PASS k1.toString().equals(\"class xtc.oop.Test\")"); success++; } else { System.out.println("FAIL k1.toString().equals(\"class xtc.oop.Test\")"); } test++; // ----------------------------------------------------------------------- if (! k1.equals(k2)) { System.out.println("PASS ! k1.equals(k2)"); success++; } else { System.out.println("FAIL ! k1.equals(k2)"); } test++; // // ----------------------------------------------------------------------- k2 = k2.getSuperclass(); if (k1 == k2) { System.out.println("PASS k1 == k2.super()"); success++; } else { System.out.println("FAIL K1 == k2.super()"); } test++; // // ----------------------------------------------------------------------- if (k1.equals(k2)) { System.out.println("PASS k1.equals(k2.super())"); success++; } else { System.out.println("FAIL k1.equals(k2.super())"); } test++; // // ----------------------------------------------------------------------- k1 = k1.getSuperclass(); k2 = k2.getSuperclass(); if (k1 == k2) { System.out.println("PASS k1.super() == k2.super().super()"); success++; } else { System.out.println("FAIL K1.super() == k2.super().super()"); } test++; // // ----------------------------------------------------------------------- if (k1.equals(k2)) { System.out.println("PASS k1.super().equals(k2.super().super())"); success++; } else { System.out.println("FAIL k1.super().equals(k2.super().super())"); } test++; // // ----------------------------------------------------------------------- k1 = k1.getSuperclass(); if (null == k1) { System.out.println("PASS null == k1.super().super()"); success++; } else { System.out.println("FAIL null == k1.super().super()"); } test++; // // ----------------------------------------------------------------------- s1 = "Hello Kitty #1"; s2 = "Hello Kitty #1"; if (s1.equals(s2)) { System.out.println("PASS s1.equals(String)"); success++; } else { System.out.println("FAIL s1.equals(String)"); } test++; // // ----------------------------------------------------------------------- s2 = "Hel" + "lo Kitty #1"; if (s1.equals(s2)) { System.out.println("PASS s1.equals(String + String)"); success++; } else { System.out.println("FAIL s1.equals(String + String)"); } test++; // // ----------------------------------------------------------------------- s2 = "He" + "ll" + "o Kitty #1"; if (s1.equals(s2)) { System.out.println("PASS s1.equals(String + String + String)"); success++; } else { System.out.println("FAIL s1.equals(String + String + String)"); } test++; // // ----------------------------------------------------------------------- s2 = "Hello Kitty #" + 1; if (s1.equals(s2)) { System.out.println("PASS s1.equals(String + int)"); success++; } else { System.out.println("FAIL s1.equals(String + int)"); } test++; // // ----------------------------------------------------------------------- s2 = "Hello Kitty #" + '1'; if (s1.equals(s2)) { System.out.println("PASS s1.equals(String + char)"); success++; } else { System.out.println("FAIL s1.equals(String + char)"); } test++; // // ----------------------------------------------------------------------- // s2 = (char)72 + "ello Kitty #1"; // if (s1.equals(s2)) { // System.out.println("PASS s1.equals(char + String)"); // success++; // } else { // System.out.println("FAIL s1.equals(char + String)"); // } // test++; // // ----------------------------------------------------------------------- // char c = 72; // s2 = c + "ello Kitty #1"; // if (s1.equals(s2)) { // System.out.println("PASS s1.equals(char + String)"); // success++; // } else { // System.out.println("FAIL s1.equals(char + String)"); // } // test++; // ----------------------------------------------------------------------- // s2 = 'H' + "ello Kitty #1"; // if (s1.equals(s2)) { // System.out.println("PASS s1.equals(char + String)"); // success++; // } else { // System.out.println("FAIL s1.equals(char + String)"); // } // test++; // // ----------------------------------------------------------------------- short[] a0 = new short[0]; if (a0.length == 0) { System.out.println("PASS short[0].length"); success++; } else { System.out.println("FAIL short[0].length"); } test++; // // ----------------------------------------------------------------------- short[] a1 = new short[1]; if (a1.length == 1) { System.out.println("PASS short[1].length"); success++; } else { System.out.println("FAIL short[1].length"); } test++; // // ----------------------------------------------------------------------- // short a2[] = new short[2]; // if (a2.length == 2) { // System.out.println("PASS short[2].length"); // success++; // } else { // System.out.println("FAIL short[2].length"); // } // test++; // // ----------------------------------------------------------------------- // if (a1[0] == 0 && a2[0] == 0 && a2[1] == 0) { // System.out.println("PASS short[i] == 0"); // success++; // } else { // System.out.println("FAIL short[i] == 0"); // } // test++; // // ----------------------------------------------------------------------- // a1[0] = (short)32768; // if (a1[0] == -32768) { // System.out.println("PASS short[0] = (short)32768"); // success++; // } else { // System.out.println("FAIL short[0] = (short)32768"); // } // test++; // // ----------------------------------------------------------------------- // if (a0.getClass().getName().equals("[S")) { // System.out.println("PASS short[0].getClass().getName()"); // success++; // } else { // System.out.println("FAIL short[0].getClass().getName()"); // } // test++; // // ----------------------------------------------------------------------- System.out.println(); System.out.println(success + " out of " + test + " tests have passed."); } }