/* This file is part of JOP, the Java Optimized Processor see <http://www.jopdesign.com/> Copyright (C) 2007, Alberto Andreotti This program 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 3 of the License, or (at your option) any later version. 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, see <http://www.gnu.org/licenses/>. */ package jdk; import jvm.TestCase; //Short, Integer, Long public class PrimitiveClasses2 extends TestCase { public String toString() { return "PrimitiveClasses2"; } public boolean testShort(){ boolean Ok=true; String myString1, myString2, myString3; //Short Short myShort1=new Short((short)100); Short myShort2=new Short("25"); Short myShort3=new Short("32767"); //check exception //Short myShort4=new Short("32768"); //test constructors Ok=Ok && (short)100==myShort1.shortValue(); Ok=Ok && (short)25==myShort2.shortValue(); Ok=Ok && (short)32767==myShort3.shortValue(); myShort3=new Short("-32768"); Ok=Ok && (short)-32768==myShort3.shortValue(); //test max, min Ok=Ok && Short.MAX_VALUE==(short)32767; Ok=Ok && Short.MIN_VALUE==(short)-32768; //equals() myShort3=new Short("100"); Ok=Ok && !myShort1.equals(myShort2); Ok=Ok && myShort1.equals(myShort1); Ok=Ok && myShort1.equals(myShort3); //hashCode() Ok=Ok && myShort1.hashCode()==myShort1.hashCode(); Ok=Ok && myShort1.hashCode()!=myShort2.hashCode(); Ok=Ok && myShort1.hashCode()==myShort3.hashCode(); //decode(String)--not found /*Ok= Ok && (short)44==Short.decode("44"); Ok= Ok && (short)44==Short.decode("44"); */ //toString()/toString(Long) myString1=new String("32767"); myString2=new String("-32768"); myShort3=new Short("32767"); Ok= Ok && myString1.equals(myShort3.toString()); //parseShort() Ok=Ok && (short)32767==Short.parseShort("32767"); Ok=Ok && (short)-32768==Short.parseShort("-32768"); //check exception //Ok=Ok && (short)-32768==Short.parseShort("-32f69"); return Ok; } public boolean testLong(){ String myString1, myString2, myString3; boolean Ok=true; //Long Long myLong1=new Long(100l); Long myLong2=new Long(666l); Long myLong3=new Long(Long.MAX_VALUE); //equals() Ok=Ok && !myLong1.equals(myLong2); Ok=Ok && myLong1.equals(myLong1); Ok=Ok && !myLong1.equals(myLong3); //hashCode() Ok=Ok && myLong1.hashCode()==myLong1.hashCode(); Ok=Ok && myLong1.hashCode()!=myLong2.hashCode(); Ok=Ok && myLong1.hashCode()!=myLong3.hashCode(); //parseLong() Ok= Ok&& 9223372036854775807l==Long.parseLong("9223372036854775807"); Ok= Ok&& -9223372036854775808l==Long.parseLong("-9223372036854775808"); Ok= Ok&& 9223372036854775807l==Long.parseLong("9223372036854775807",10); Ok= Ok&& -9223372036854775808l==Long.parseLong("-9223372036854775808",10); /* works only for radix 10 Ok= Ok && 0x7FFFFFFFFFFFFFFFl==Long.parseLong("9223372036854775807",16); Ok= Ok && 0x1000000000000000l==Long.parseLong("-9223372036854775808",16); */ //toString()/toString(Long) myString1=new String("9223372036854775807"); myString2=new String("-9223372036854775808"); Ok= Ok && myString1.equals(myLong3.toString()); Ok= Ok && (Long.toString(9223372036854775807l)).equals(myString1); Ok= Ok && (Long.toString(-9223372036854775808l)).equals(myString2); return Ok; } public boolean testInteger(){ boolean Ok=true; String myString1, myString2, myString3; //Integer Integer myInteger1=new Integer(100); Integer myInteger2=new Integer(100); Integer myInteger3=new Integer(10000); //Constructor Integer(String) not found //Integer myInteger4=new Integer("10000"); //byteValue() Ok=Ok && (byte)100==myInteger1.byteValue(); Ok=Ok && (byte)10000==myInteger3.byteValue(); //intValue Ok=Ok && 100==myInteger1.intValue(); Ok=Ok && 10000==myInteger3.intValue(); //longValue Ok=Ok && 100l==myInteger1.intValue(); Ok=Ok && 10000l==myInteger3.intValue(); //public static int parseInt(String str, int radix) Ok= Ok&& 2147483647==Integer.parseInt("2147483647",10); Ok= Ok&& -2147483648==Integer.parseInt("-2147483648",10); //check exception //Ok= Ok&& 2147483647==Integer.parseInt("7fffffff",10); //public static int parseInt(String str) Ok= Ok && 2147483647==Integer.parseInt("2147483647"); Ok= Ok && -2147483648==Integer.parseInt("-2147483648"); //check exception //Ok= Ok && -2147483648==Integer.parseInt("-2147483649"); //shortValue() Ok=Ok && (short)100==myInteger1.shortValue(); Ok=Ok && (short)10000==myInteger3.shortValue(); //toBinaryString(int) myString1=new String("1010"); myString2=new String("10000000000000000000000000000000"); myString3=new String("1111111111111111111111111111111"); Ok=Ok && myString1.equals(Integer.toBinaryString(10)); Ok=Ok && myString2.equals(Integer.toBinaryString(-2147483648)); Ok=Ok && myString3.equals(Integer.toBinaryString(2147483647)); //String toHexString(int) myString1=new String("a"); myString2=new String("80000000"); myString3=new String("7fffffff"); Ok=Ok && myString1.equals(Integer.toHexString(10)); Ok=Ok && myString2.equals(Integer.toHexString(-2147483648)); Ok=Ok && myString3.equals(Integer.toHexString(2147483647)); //String toOctalString(int) myString1=new String("12"); myString2=new String("20000000000"); myString3=new String("17777777777"); Ok=Ok && myString1.equals(Integer.toOctalString(10)); Ok=Ok && myString2.equals(Integer.toOctalString(-2147483648)); Ok=Ok && myString3.equals(Integer.toOctalString(2147483647)); //public String toString() myString1=new String("10"); myString2=new String("100"); Ok= Ok && myString2.equals(myInteger1.toString()); Ok= Ok && (Integer.toString(10)).equals(myString1); //static String toString(int) myString1=new String("10"); Ok= Ok && (Integer.toString(10)).equals(myString1); //static String toString(int, int) myString1=new String("10"); Ok= Ok && (Integer.toString(10,10)).equals(myString1); myString2=new String("10"); Ok= Ok && (Integer.toString(2,2)).equals(myString1); //public static Integer valueOf(String s) //equals() Ok=Ok && myInteger1.equals(myInteger2); Ok=Ok && myInteger1.equals(myInteger1); Ok=Ok && !myInteger1.equals(myInteger3); //hashCode() Ok=Ok && myInteger1.hashCode()==myInteger2.hashCode(); Ok=Ok && myInteger1.hashCode()!=myInteger3.hashCode(); Ok=Ok && myInteger2.hashCode()!=myInteger3.hashCode(); return Ok; } public boolean test() { boolean Ok=true; Ok=testInteger() && testShort() && testLong(); return Ok; } }