// Tags: JDK1.0 // Copyright (C) 1998, 1999 Cygnus Solutions // 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. */ package gnu.testlet.wonka.lang.Long; import gnu.testlet.Testlet; import gnu.testlet.TestHarness; public class new_Long implements Testlet { public void test (TestHarness harness) { Long a = new Long(0L); Long b = new Long(1L); Long c = new Long(-1L); Long d = new Long(Long.MAX_VALUE); Long e = new Long(Long.MIN_VALUE); Long f = new Long("0"); Long g = new Long("1"); Long h = new Long("-1"); Long i = new Long("9223372036854775807"); Long j = new Long("-9223372036854775808"); Long k = new Long("-0"); Long l = new Long("012345"); Long m = new Long("0012345"); harness.check (a + " " + b + " " + c + " " + d + " " + e, "0 1 -1 9223372036854775807 -9223372036854775808"); harness.check (f + " " + g + " " + h + " " + i + " " + j, "0 1 -1 9223372036854775807 -9223372036854775808"); harness.check (k + " " + l + " " + m, "0 12345 12345"); harness.check ((long) Integer.MAX_VALUE, 2147483647); harness.check ((long) Integer.MIN_VALUE, -2147483648); harness.check (Long.MAX_VALUE, 9223372036854775807L); harness.check (Long.MAX_VALUE, 9223372036854775807L); harness.check (Long.MAX_VALUE + 1, -9223372036854775808L); harness.check (Long.MAX_VALUE + 2, -9223372036854775807L); harness.check (Long.MIN_VALUE, -9223372036854775808L); harness.check (Long.MIN_VALUE - 1, 9223372036854775807L); harness.check (Long.MIN_VALUE - 2, 9223372036854775806L); harness.check (c.toString(), "-1"); harness.check (e.toString(), "-9223372036854775808"); harness.check (Long.toString(-1L, 2), "-1"); harness.check (Long.toString(Long.MIN_VALUE + 1, 2), "-111111111111111111111111111111111111111111111111111111111111111"); harness.check (Long.toString(Long.MIN_VALUE, 2), "-1000000000000000000000000000000000000000000000000000000000000000"); harness.check (Long.toString(Long.MAX_VALUE, 2), "111111111111111111111111111111111111111111111111111111111111111"); harness.check (Long.toString(-1L, 16), "-1"); harness.check (Long.toString(Long.MIN_VALUE + 1, 16), "-7fffffffffffffff"); harness.check (Long.toString(Long.MIN_VALUE, 16), "-8000000000000000"); harness.check (Long.toString(Long.MAX_VALUE, 16), "7fffffffffffffff"); harness.check (Long.toString(-1L, 36), "-1"); harness.check (Long.toString(Long.MIN_VALUE + 1, 36), "-1y2p0ij32e8e7"); harness.check (Long.toString(Long.MIN_VALUE, 36), "-1y2p0ij32e8e8"); harness.check (Long.toString(Long.MAX_VALUE, 36), "1y2p0ij32e8e7"); Long bad = null; try { bad = new Long("9223372036854775808"); } catch (NumberFormatException ex) { } harness.check (bad, null); bad = null; try { bad = new Long("-9223372036854775809"); } catch (NumberFormatException ex) { } harness.check (bad, null); bad = null; try { bad = new Long("12345a"); } catch (NumberFormatException ex) { } harness.check (bad, null); bad = null; try { bad = new Long("-"); } catch (NumberFormatException ex) { } harness.check (bad, null); bad = null; try { bad = new Long("0x1e"); } catch (NumberFormatException ex) { } harness.check (bad, null); harness.check (a.hashCode(), 0); harness.check (b.hashCode(), 1); harness.check (c.hashCode(), 0); harness.check (d.hashCode(), -2147483648); harness.check (e.hashCode(), -2147483648); // harness.check (a.compareTo(a)); // harness.check (b.compareTo(c)); // harness.check (c.compareTo(b)); // harness.check (d.compareTo(e)); // harness.check (e.compareTo(d)); boolean ok = false; try { Long.parseLong(""); } catch (NumberFormatException ex) { ok = true; } harness.check (ok); ok = false; try { Long.parseLong(" "); } catch (NumberFormatException ex) { ok = true; } harness.check (ok); ok = false; try { Long.parseLong("0X1234"); } catch (NumberFormatException ex) { ok = true; } harness.check (ok); ok = false; try { Long.parseLong("0xF0000000"); } catch (NumberFormatException ex) { ok = true; } harness.check (ok); ok = false; try { Long.parseLong("-"); } catch (NumberFormatException ex) { ok = true; } harness.check (ok); ok = false; try { Long.parseLong("#"); } catch (NumberFormatException ex) { ok = true; } harness.check (ok); ok = false; try { Long.parseLong("-0x1234FF"); } catch (NumberFormatException ex) { ok = true; } harness.check (ok); harness.checkPoint ("toBinaryString"); harness.check (Long.toBinaryString(0L), "0"); harness.check (Long.toBinaryString(1L), "1"); harness.check (Long.toBinaryString(-1L), "1111111111111111111111111111111111111111111111111111111111111111"); harness.check (Long.toBinaryString(Long.MIN_VALUE), "1000000000000000000000000000000000000000000000000000000000000000"); harness.check (Long.toBinaryString(Long.MAX_VALUE), "111111111111111111111111111111111111111111111111111111111111111"); harness.check (Long.toBinaryString(Long.MIN_VALUE - 1), "111111111111111111111111111111111111111111111111111111111111111"); harness.check (Long.toBinaryString(Long.MAX_VALUE + 1), "1000000000000000000000000000000000000000000000000000000000000000"); harness.checkPoint ("toOctalString"); harness.check (Long.toOctalString(0L), "0"); harness.check (Long.toOctalString(1L), "1"); harness.check (Long.toOctalString(-1L), "1777777777777777777777"); harness.check (Long.toOctalString(Long.MIN_VALUE), "1000000000000000000000"); harness.check (Long.toOctalString(Long.MAX_VALUE), "777777777777777777777"); harness.check (Long.toOctalString(Long.MIN_VALUE - 1), "777777777777777777777"); harness.check (Long.toOctalString(Long.MAX_VALUE + 1), "1000000000000000000000"); harness.checkPoint ("toHexString"); harness.check (Long.toHexString(0L), "0"); harness.check (Long.toHexString(1L), "1"); harness.check (Long.toHexString(-1L), "ffffffffffffffff"); harness.check (Long.toHexString(Long.MIN_VALUE), "8000000000000000"); harness.check (Long.toHexString(Long.MAX_VALUE), "7fffffffffffffff"); harness.check (Long.toHexString(Long.MIN_VALUE - 1), "7fffffffffffffff"); harness.check (Long.toHexString(Long.MAX_VALUE + 1), "8000000000000000"); harness.checkPoint ("parseLong"); harness.check (Long.parseLong("0012345", 8), 5349); harness.check (Long.parseLong("xyz", 36), 44027); harness.check (Long.parseLong("12345", 6), 1865); harness.check (Long.parseLong("abcdef", 16), 11259375); harness.check (Long.parseLong("-0012345", 8), -5349); harness.check (Long.parseLong("-xyz", 36), -44027); harness.check (Long.parseLong("-12345", 6), -1865); harness.check (Long.parseLong("-abcdef", 16), -11259375); harness.check (Long.parseLong("-8000000000000000", 16), Long.MIN_VALUE); harness.check (Long.parseLong("7fffffffffffffff", 16), Long.MAX_VALUE); ok = false; try { Long.parseLong("0", 1); } catch (NumberFormatException ex) { ok = true; } harness.check (ok); ok = false; try { Long.parseLong("0", 37); } catch (NumberFormatException ex) { ok = true; } harness.check (ok); ok = false; try { Long.parseLong("8000000000000000", 16); } catch (NumberFormatException ex) { ok = true; } harness.check (ok); ok = false; try { Long.parseLong("-8000000000000001", 16); } catch (NumberFormatException ex) { ok = true; } harness.check (ok); } }