blob: 71fa66d3e9d32459799baf85c569b073f27657aa [file] [log] [blame]
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package libcore.java.lang.reflect;
import java.lang.reflect.Array;
import junit.framework.TestCase;
public class ArrayTest extends TestCase {
private static boolean[] booleans;
private static byte[] bytes;
private static char[] chars;
private static double[] doubles;
private static float[] floats;
private static int[] ints;
private static long[] longs;
private static short[] shorts;
@Override protected void setUp() throws Exception {
super.setUp();
booleans = new boolean[] { true };
bytes = new byte[] { (byte) 0xff };
chars = new char[] { '\uffff' };
doubles = new double[] { (double) 0xffffffffffffffffL };
floats = new float[] { (float) 0xffffffff };
ints = new int[] { 0xffffffff };
longs = new long[] { 0xffffffffffffffffL };
shorts = new short[] { (short) 0xffff };
}
public void testGetBoolean() throws Exception {
assertEquals(booleans[0], Array.getBoolean(booleans, 0));
try { Array.getBoolean(bytes, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getBoolean(chars, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getBoolean(doubles, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getBoolean(floats, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getBoolean(ints, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getBoolean(longs, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getBoolean(shorts, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getBoolean(null, 0); fail(); } catch (NullPointerException expected) {}
}
public void testGetByte() throws Exception {
try { Array.getByte(booleans, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals(bytes[0], Array.getByte(bytes, 0));
try { Array.getByte(chars, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getByte(doubles, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getByte(floats, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getByte(ints, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getByte(longs, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getByte(shorts, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getByte(null, 0); fail(); } catch (NullPointerException expected) {}
}
public void testGetChar() throws Exception {
try { Array.getChar(booleans, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getChar(bytes, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals(chars[0], Array.getChar(chars, 0));
try { Array.getChar(doubles, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getChar(floats, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getChar(ints, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getChar(longs, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getChar(shorts, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getChar(null, 0); fail(); } catch (NullPointerException expected) {}
}
public void testGetDouble() throws Exception {
try { Array.getDouble(booleans, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals((double) bytes[0], Array.getDouble(bytes, 0));
assertEquals((double) chars[0], Array.getDouble(chars, 0));
assertEquals(doubles[0], Array.getDouble(doubles, 0));
assertEquals((double) floats[0], Array.getDouble(floats, 0));
assertEquals((double) ints[0], Array.getDouble(ints, 0));
assertEquals((double) longs[0], Array.getDouble(longs, 0));
assertEquals((double) shorts[0], Array.getDouble(shorts, 0));
try { Array.getDouble(null, 0); fail(); } catch (NullPointerException expected) {}
}
public void testGetFloat() throws Exception {
try { Array.getFloat(booleans, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals((float) bytes[0], Array.getFloat(bytes, 0));
assertEquals((float) chars[0], Array.getFloat(chars, 0));
assertEquals(floats[0], Array.getFloat(floats, 0));
try { Array.getFloat(doubles, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals((float) ints[0], Array.getFloat(ints, 0));
assertEquals((float) longs[0], Array.getFloat(longs, 0));
assertEquals((float) shorts[0], Array.getFloat(shorts, 0));
try { Array.getFloat(null, 0); fail(); } catch (NullPointerException expected) {}
}
public void testGetInt() throws Exception {
try { Array.getInt(booleans, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals((int) bytes[0], Array.getInt(bytes, 0));
assertEquals((int) chars[0], Array.getInt(chars, 0));
try { Array.getInt(doubles, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getInt(floats, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals(ints[0], Array.getInt(ints, 0));
try { Array.getInt(longs, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals((int) shorts[0], Array.getInt(shorts, 0));
try { Array.getInt(null, 0); fail(); } catch (NullPointerException expected) {}
}
public void testGetLong() throws Exception {
try { Array.getLong(booleans, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals((long) bytes[0], Array.getLong(bytes, 0));
assertEquals((long) chars[0], Array.getLong(chars, 0));
try { Array.getLong(doubles, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getLong(floats, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals((long) ints[0], Array.getLong(ints, 0));
assertEquals(longs[0], Array.getLong(longs, 0));
assertEquals((long) shorts[0], Array.getLong(shorts, 0));
try { Array.getLong(null, 0); fail(); } catch (NullPointerException expected) {}
}
public void testGetShort() throws Exception {
try { Array.getShort(booleans, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals((int) bytes[0], Array.getShort(bytes, 0));
try { Array.getShort(chars, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getShort(doubles, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getShort(floats, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getShort(ints, 0); fail(); } catch (IllegalArgumentException expected) {}
try { Array.getShort(longs, 0); fail(); } catch (IllegalArgumentException expected) {}
assertEquals(shorts[0], Array.getShort(shorts, 0));
try { Array.getShort(null, 0); fail(); } catch (NullPointerException expected) {}
}
public void testSetBoolean() throws Exception {
Array.setBoolean(booleans, 0, booleans[0]);
try { Array.setBoolean(bytes, 0, true); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setBoolean(chars, 0, true); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setBoolean(doubles, 0, true); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setBoolean(floats, 0, true); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setBoolean(ints, 0, true); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setBoolean(longs, 0, true); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setBoolean(shorts, 0, true); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setBoolean(null, 0, true); fail(); } catch (NullPointerException expected) {}
}
public void testSetByte() throws Exception {
try { Array.setByte(booleans, 0, bytes[0]); fail(); } catch (IllegalArgumentException expected) {}
Array.setByte(bytes, 0, bytes[0]);
try { Array.setByte(chars, 0, bytes[0]); fail(); } catch (IllegalArgumentException expected) {}
Array.setByte(doubles, 0, bytes[0]);
Array.setByte(floats, 0, bytes[0]);
Array.setByte(ints, 0, bytes[0]);
Array.setByte(longs, 0, bytes[0]);
Array.setByte(shorts, 0, bytes[0]);
try { Array.setByte(null, 0, bytes[0]); fail(); } catch (NullPointerException expected) {}
}
public void testSetChar() throws Exception {
try { Array.setChar(booleans, 0, chars[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setChar(bytes, 0, chars[0]); fail(); } catch (IllegalArgumentException expected) {}
Array.setChar(chars, 0, chars[0]);
Array.setChar(doubles, 0, chars[0]);
Array.setChar(floats, 0, chars[0]);
Array.setChar(ints, 0, chars[0]);
Array.setChar(longs, 0, chars[0]);
try { Array.setChar(shorts, 0, chars[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setChar(null, 0, chars[0]); fail(); } catch (NullPointerException expected) {}
}
public void testSetDouble() throws Exception {
try { Array.setDouble(booleans, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setDouble(bytes, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setDouble(chars, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {}
Array.setDouble(doubles, 0, doubles[0]);
try { Array.setDouble(floats, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setDouble(ints, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setDouble(longs, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setDouble(shorts, 0, doubles[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setDouble(null, 0, doubles[0]); fail(); } catch (NullPointerException expected) {}
}
public void testSetFloat() throws Exception {
try { Array.setFloat(booleans, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setFloat(bytes, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setFloat(chars, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {}
Array.setFloat(floats, 0, floats[0]);
Array.setFloat(doubles, 0, floats[0]);
try { Array.setFloat(ints, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setFloat(longs, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setFloat(shorts, 0, floats[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setFloat(null, 0, floats[0]); fail(); } catch (NullPointerException expected) {}
}
public void testSetInt() throws Exception {
try { Array.setInt(booleans, 0, ints[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setInt(bytes, 0, ints[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setInt(chars, 0, ints[0]); fail(); } catch (IllegalArgumentException expected) {}
Array.setInt(doubles, 0, ints[0]);
Array.setInt(floats, 0, ints[0]);
Array.setInt(ints, 0, ints[0]);
Array.setInt(longs, 0, ints[0]);
try { Array.setInt(shorts, 0, ints[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setInt(null, 0, ints[0]); fail(); } catch (NullPointerException expected) {}
}
public void testSetLong() throws Exception {
try { Array.setLong(booleans, 0, longs[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setLong(bytes, 0, longs[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setLong(chars, 0, longs[0]); fail(); } catch (IllegalArgumentException expected) {}
Array.setLong(doubles, 0, longs[0]);
Array.setLong(floats, 0, longs[0]);
try { Array.setLong(ints, 0, longs[0]); fail(); } catch (IllegalArgumentException expected) {}
Array.setLong(longs, 0, longs[0]);
try { Array.setLong(shorts, 0, longs[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setLong(null, 0, longs[0]); fail(); } catch (NullPointerException expected) {}
}
public void testSetShort() throws Exception {
try { Array.setShort(booleans, 0, shorts[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setShort(bytes, 0, shorts[0]); fail(); } catch (IllegalArgumentException expected) {}
try { Array.setShort(chars, 0, shorts[0]); fail(); } catch (IllegalArgumentException expected) {}
Array.setShort(doubles, 0, shorts[0]);
Array.setShort(floats, 0, shorts[0]);
Array.setShort(ints, 0, shorts[0]);
Array.setShort(longs, 0, shorts[0]);
Array.setShort(shorts, 0, shorts[0]);
try { Array.setShort(null, 0, shorts[0]); fail(); } catch (NullPointerException expected) {}
}
}