/* Copyright (C) 2001 Eric Blake <ebb9@email.byu.edu> * * This file is part of Mauve. * * Mauve is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * Mauve 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 Mauve; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ // Tags: JDK1.2 package gnu.testlet.wonka.lang.Integer; import gnu.testlet.Testlet; import gnu.testlet.TestHarness; /** * This class tests the compareTo methods of Integer. It is separate * from other classes in the package because the methods did not exist * before JDK 1.2. */ public class compareTo implements Testlet { public static final int LESS = -1; public static final int EQUAL = 0; public static final int GREATER = 1; TestHarness harness; void compare(Integer i1, Integer i2, int expected) { // the result need not be -1, 0, 1; just <0, 0, >0 int result = i1.compareTo(i2); switch (expected) { case LESS: harness.check(result < 0); break; case EQUAL: harness.check(result == 0); break; case GREATER: harness.check(result > 0); break; default: throw new Error(); } } public void test(TestHarness harness) { this.harness = harness; Integer min = new Integer(Integer.MIN_VALUE); Integer negone = new Integer(-1); Integer zero = new Integer(0); Integer posone = new Integer(1); Integer max = new Integer(Integer.MAX_VALUE); harness.checkPoint("compareTo"); compare(min, min, EQUAL); compare(min, negone, LESS); compare(min, zero, LESS); compare(min, posone, LESS); compare(min, max, LESS); compare(negone, min, GREATER); compare(negone, negone, EQUAL); compare(negone, zero, LESS); compare(negone, posone, LESS); compare(negone, max, LESS); compare(zero, min, GREATER); compare(zero, negone, GREATER); compare(zero, zero, EQUAL); compare(zero, posone, LESS); compare(zero, max, LESS); compare(posone, min, GREATER); compare(posone, negone, GREATER); compare(posone, zero, GREATER); compare(posone, posone, EQUAL); compare(posone, max, LESS); compare(max, min, GREATER); compare(max, negone, GREATER); compare(max, zero, GREATER); compare(max, posone, GREATER); compare(max, max, EQUAL); Object o = zero; boolean ok; harness.check(((Comparable)zero).compareTo(o) == 0); ok = false; try { zero.compareTo((Integer) null); } catch (NullPointerException e) { ok = true; } harness.check(ok); ok = false; try { ((Comparable)zero).compareTo((Object) null); } catch (NullPointerException e) { ok = true; } harness.check(ok); ok = false; try { ((Comparable)zero).compareTo(new Object()); } catch (ClassCastException e) { ok = true; } harness.check(ok); } }