/* * Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestArrayUtils.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.tools; import com.uwyn.rife.config.RifeConfig; import com.uwyn.rife.site.ConstrainedProperty; import com.uwyn.rife.tools.ArrayUtils; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; import junit.framework.TestCase; public class TestArrayUtils extends TestCase { public TestArrayUtils(String name) { super(name); } public void testGetArrayType() { assertEquals(ArrayUtils.ArrayType.NO_ARRAY, ArrayUtils.getArrayType(new Object())); assertEquals(ArrayUtils.ArrayType.BOOLEAN_ARRAY, ArrayUtils.getArrayType(new boolean[1])); assertEquals(ArrayUtils.ArrayType.BYTE_ARRAY, ArrayUtils.getArrayType(new byte[1])); assertEquals(ArrayUtils.ArrayType.SHORT_ARRAY, ArrayUtils.getArrayType(new short[1])); assertEquals(ArrayUtils.ArrayType.CHAR_ARRAY, ArrayUtils.getArrayType(new char[1])); assertEquals(ArrayUtils.ArrayType.INT_ARRAY, ArrayUtils.getArrayType(new int[1])); assertEquals(ArrayUtils.ArrayType.LONG_ARRAY, ArrayUtils.getArrayType(new long[1])); assertEquals(ArrayUtils.ArrayType.FLOAT_ARRAY, ArrayUtils.getArrayType(new float[1])); assertEquals(ArrayUtils.ArrayType.DOUBLE_ARRAY, ArrayUtils.getArrayType(new double[1])); assertEquals(ArrayUtils.ArrayType.OBJECT_ARRAY, ArrayUtils.getArrayType(new Object[1])); assertEquals(ArrayUtils.ArrayType.BOOLEAN_ARRAY, ArrayUtils.getArrayType(new boolean[1][1])); assertEquals(ArrayUtils.ArrayType.BYTE_ARRAY, ArrayUtils.getArrayType(new byte[1][1])); assertEquals(ArrayUtils.ArrayType.SHORT_ARRAY, ArrayUtils.getArrayType(new short[1][1])); assertEquals(ArrayUtils.ArrayType.CHAR_ARRAY, ArrayUtils.getArrayType(new char[1][1])); assertEquals(ArrayUtils.ArrayType.INT_ARRAY, ArrayUtils.getArrayType(new int[1][1])); assertEquals(ArrayUtils.ArrayType.LONG_ARRAY, ArrayUtils.getArrayType(new long[1][1])); assertEquals(ArrayUtils.ArrayType.FLOAT_ARRAY, ArrayUtils.getArrayType(new float[1][1])); assertEquals(ArrayUtils.ArrayType.DOUBLE_ARRAY, ArrayUtils.getArrayType(new double[1][1])); assertEquals(ArrayUtils.ArrayType.OBJECT_ARRAY, ArrayUtils.getArrayType(new Object[1][1])); } public void testCreateStringArray() { assertNull(ArrayUtils.createStringArray((Object)null, null)); String[] converted = null; converted = ArrayUtils.createStringArray("just a test", null); assertEquals(1, converted.length); assertEquals("just a test", converted[0]); String[] source_string = new String[] {"9", "kojk", "4", "3", "ok", "6.0", "8"}; converted = ArrayUtils.createStringArray((Object)source_string, null); assertEquals(source_string.length, converted.length); assertEquals(source_string[0], converted[0]); assertEquals(source_string[1], converted[1]); assertEquals(source_string[2], converted[2]); assertEquals(source_string[3], converted[3]); assertEquals(source_string[4], converted[4]); assertEquals(source_string[5], converted[5]); assertEquals(source_string[6], converted[6]); boolean[] source_boolean = new boolean[] {false, false, true, false, true}; converted = ArrayUtils.createStringArray((Object)source_boolean, null); assertEquals(source_boolean.length, converted.length); assertEquals(String.valueOf(source_boolean[0]), converted[0]); assertEquals(String.valueOf(source_boolean[1]), converted[1]); assertEquals(String.valueOf(source_boolean[2]), converted[2]); assertEquals(String.valueOf(source_boolean[3]), converted[3]); assertEquals(String.valueOf(source_boolean[4]), converted[4]); byte[] source_byte = new byte[] {9, 4, 3, 6, 8}; converted = ArrayUtils.createStringArray((Object)source_byte, null); assertNull(converted); char[] source_char = new char[] {'w','o','r', 'k' ,'s'}; converted = ArrayUtils.createStringArray((Object)source_char, null); assertEquals(source_char.length, converted.length); assertEquals(String.valueOf(source_char[0]), converted[0]); assertEquals(String.valueOf(source_char[1]), converted[1]); assertEquals(String.valueOf(source_char[2]), converted[2]); assertEquals(String.valueOf(source_char[3]), converted[3]); assertEquals(String.valueOf(source_char[4]), converted[4]); short[] source_short = new short[] {84, 23, 43, 12, 5}; converted = ArrayUtils.createStringArray((Object)source_short, null); assertEquals(source_short.length, converted.length); assertEquals(String.valueOf(source_short[0]), converted[0]); assertEquals(String.valueOf(source_short[1]), converted[1]); assertEquals(String.valueOf(source_short[2]), converted[2]); assertEquals(String.valueOf(source_short[3]), converted[3]); assertEquals(String.valueOf(source_short[4]), converted[4]); int[] source_int = new int[] {9834, 454, 2355, 2398, 4834}; converted = ArrayUtils.createStringArray((Object)source_int, null); assertEquals(source_int.length, converted.length); assertEquals(String.valueOf(source_int[0]), converted[0]); assertEquals(String.valueOf(source_int[1]), converted[1]); assertEquals(String.valueOf(source_int[2]), converted[2]); assertEquals(String.valueOf(source_int[3]), converted[3]); assertEquals(String.valueOf(source_int[4]), converted[4]); long[] source_long = new long[] {59035, 90465, 723479, 47543, 987543}; converted = ArrayUtils.createStringArray((Object)source_long, null); assertEquals(source_long.length, converted.length); assertEquals(String.valueOf(source_long[0]), converted[0]); assertEquals(String.valueOf(source_long[1]), converted[1]); assertEquals(String.valueOf(source_long[2]), converted[2]); assertEquals(String.valueOf(source_long[3]), converted[3]); assertEquals(String.valueOf(source_long[4]), converted[4]); float[] source_float = new float[] {228.02f, 8734.3f, 8634.2f, 34321.9f, 3478.2f}; converted = ArrayUtils.createStringArray((Object)source_float, null); assertEquals(source_float.length, converted.length); assertEquals(String.valueOf(source_float[0]), converted[0]); assertEquals(String.valueOf(source_float[1]), converted[1]); assertEquals(String.valueOf(source_float[2]), converted[2]); assertEquals(String.valueOf(source_float[3]), converted[3]); assertEquals(String.valueOf(source_float[4]), converted[4]); double[] source_double = new double[] {987634.3434d, 653928.434d, 394374.34387d, 3847764332.3434d, 3434d}; converted = ArrayUtils.createStringArray((Object)source_double, null); assertEquals(source_double.length, converted.length); assertEquals(String.valueOf(source_double[0]), converted[0]); assertEquals(String.valueOf(source_double[1]), converted[1]); assertEquals(String.valueOf(source_double[2]), converted[2]); assertEquals(String.valueOf(source_double[3]), converted[3]); assertEquals(String.valueOf(source_double[4]), converted[4]); } public void testCreateStringArrayObject() { assertNull(ArrayUtils.createStringArray((Object[])null)); String[] source = new String[] {"9", "kojk", "4", "3", "ok", "6.0", "8"}; String[] converted = ArrayUtils.createStringArray(source); assertEquals(source.length, converted.length); assertEquals(source[0], converted[0]); assertEquals(source[1], converted[1]); assertEquals(source[2], converted[2]); assertEquals(source[3], converted[3]); assertEquals(source[4], converted[4]); assertEquals(source[5], converted[5]); assertEquals(source[6], converted[6]); } public void testCreateStringArrayDate() { assertNull(ArrayUtils.createStringArray((Date)null, null)); Calendar cal = Calendar.getInstance(); cal.setTimeZone(RifeConfig.Tools.getDefaultTimeZone()); cal.set(2005, 7, 18, 9, 27, 13); cal.set(Calendar.MILLISECOND, 552); String[] converted = ArrayUtils.createStringArray(cal.getTime(), null); assertEquals(1, converted.length); assertEquals("20050818092713552+0200", converted[0]); SimpleDateFormat sf = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss", Locale.ENGLISH); sf.setTimeZone(RifeConfig.Tools.getDefaultTimeZone()); converted = ArrayUtils.createStringArray(cal.getTime(), new ConstrainedProperty("someProperty").format(sf)); assertEquals(1, converted.length); assertEquals("2005.08.18 AD at 09:27:13", converted[0]); } public void testCreateStringArrayDoubleFormat() { assertNull(ArrayUtils.createStringArray((Double)null, null)); String[] converted = ArrayUtils.createStringArray(6782.349876675, new ConstrainedProperty("someProperty").format(NumberFormat.getCurrencyInstance(Locale.US))); assertEquals(1, converted.length); assertEquals("$6,782.35", converted[0]); } public void testCreateStringArrayBoolean() { assertNull(ArrayUtils.createStringArray((boolean[])null)); boolean[] source = new boolean[] {false, false, true, false, true}; String[] converted = ArrayUtils.createStringArray(source); assertEquals(source.length, converted.length); assertEquals(source.length, converted.length); assertEquals(String.valueOf(source[0]), converted[0]); assertEquals(String.valueOf(source[1]), converted[1]); assertEquals(String.valueOf(source[2]), converted[2]); assertEquals(String.valueOf(source[3]), converted[3]); assertEquals(String.valueOf(source[4]), converted[4]); } public void testCreateStringArrayByte() { assertNull(ArrayUtils.createStringArray((byte[])null)); byte[] source = new byte[] {9, 4, 3, 6, 8}; String[] converted = ArrayUtils.createStringArray(source); assertEquals(source.length, converted.length); assertEquals(String.valueOf(source[0]), converted[0]); assertEquals(String.valueOf(source[1]), converted[1]); assertEquals(String.valueOf(source[2]), converted[2]); assertEquals(String.valueOf(source[3]), converted[3]); assertEquals(String.valueOf(source[4]), converted[4]); } public void testCreateStringArrayChar() { assertNull(ArrayUtils.createStringArray((char[])null)); char[] source = new char[] {'w','o','r', 'k' ,'s'}; String[] converted = ArrayUtils.createStringArray(source); assertEquals(source.length, converted.length); assertEquals(String.valueOf(source[0]), converted[0]); assertEquals(String.valueOf(source[1]), converted[1]); assertEquals(String.valueOf(source[2]), converted[2]); assertEquals(String.valueOf(source[3]), converted[3]); assertEquals(String.valueOf(source[4]), converted[4]); } public void testCreateStringArrayShort() { assertNull(ArrayUtils.createStringArray((short[])null)); short[] source = new short[] {84, 23, 43, 12, 5}; String[] converted = ArrayUtils.createStringArray(source); assertEquals(source.length, converted.length); assertEquals(String.valueOf(source[0]), converted[0]); assertEquals(String.valueOf(source[1]), converted[1]); assertEquals(String.valueOf(source[2]), converted[2]); assertEquals(String.valueOf(source[3]), converted[3]); assertEquals(String.valueOf(source[4]), converted[4]); } public void testCreateStringArrayInt() { assertNull(ArrayUtils.createStringArray((int[])null)); int[] source = new int[] {9834, 454, 2355, 2398, 4834}; String[] converted = ArrayUtils.createStringArray(source); assertEquals(source.length, converted.length); assertEquals(String.valueOf(source[0]), converted[0]); assertEquals(String.valueOf(source[1]), converted[1]); assertEquals(String.valueOf(source[2]), converted[2]); assertEquals(String.valueOf(source[3]), converted[3]); assertEquals(String.valueOf(source[4]), converted[4]); } public void testCreateStringArrayLong() { assertNull(ArrayUtils.createStringArray((long[])null)); long[] source = new long[] {59035, 90465, 723479, 47543, 987543}; String[] converted = ArrayUtils.createStringArray(source); assertEquals(source.length, converted.length); assertEquals(String.valueOf(source[0]), converted[0]); assertEquals(String.valueOf(source[1]), converted[1]); assertEquals(String.valueOf(source[2]), converted[2]); assertEquals(String.valueOf(source[3]), converted[3]); assertEquals(String.valueOf(source[4]), converted[4]); } public void testCreateStringArrayFloat() { assertNull(ArrayUtils.createStringArray((float[])null)); float[] source = new float[] {228.02f, 8734.3f, 8634.2f, 34321.9f, 3478.2f}; String[] converted = ArrayUtils.createStringArray(source); assertEquals(source.length, converted.length); assertEquals(String.valueOf(source[0]), converted[0]); assertEquals(String.valueOf(source[1]), converted[1]); assertEquals(String.valueOf(source[2]), converted[2]); assertEquals(String.valueOf(source[3]), converted[3]); assertEquals(String.valueOf(source[4]), converted[4]); } public void testCreateStringArrayDouble() { assertNull(ArrayUtils.createStringArray((double[])null)); double[] source = new double[] {987634.3434d, 653928.434d, 394374.34387d, 3847764332.3434d, 3434d}; String[] converted = ArrayUtils.createStringArray(source); assertEquals(source.length, converted.length); assertEquals(String.valueOf(source[0]), converted[0]); assertEquals(String.valueOf(source[1]), converted[1]); assertEquals(String.valueOf(source[2]), converted[2]); assertEquals(String.valueOf(source[3]), converted[3]); assertEquals(String.valueOf(source[4]), converted[4]); } public void testCreateBooleanArray() { assertNull(ArrayUtils.createBooleanArray(null)); String[] source = new String[] {"false", "false", null, "true", "false", "true"}; boolean[] target = new boolean[] {false, false, true, false, true}; boolean[] converted = ArrayUtils.createBooleanArray(source); assertEquals(target.length, converted.length); assertEquals(target[0], converted[0]); assertEquals(target[1], converted[1]); assertEquals(target[2], converted[2]); assertEquals(target[3], converted[3]); assertEquals(target[4], converted[4]); } public void testCreateByteArray() { assertNull(ArrayUtils.createByteArray(null)); Object[] source = new Object[] {new Integer(9), "ko", "4", null, new Long(3), "ok", "6", "8"}; byte[] target = new byte[] {9, 4, 3, 6, 8}; byte[] converted = ArrayUtils.createByteArray(source); assertEquals(target.length, converted.length); assertEquals(target[0], converted[0]); assertEquals(target[1], converted[1]); assertEquals(target[2], converted[2]); assertEquals(target[3], converted[3]); assertEquals(target[4], converted[4]); } public void testCreateCharArray() { assertNull(ArrayUtils.createCharArray(null)); Object[] source = new Object[] {new Character('w'), "loo", null, "ko", "o", "r", "k" ,"s", new StringBuffer("oook")}; char[] target = new char[] {'w','o','r', 'k' ,'s'}; char[] converted = ArrayUtils.createCharArray(source); assertEquals(target.length, converted.length); assertEquals(target[0], converted[0]); assertEquals(target[1], converted[1]); assertEquals(target[2], converted[2]); assertEquals(target[3], converted[3]); assertEquals(target[4], converted[4]); } public void testCreateShortArray() { assertNull(ArrayUtils.createShortArray(null)); Object[] source = new Object[] {"84", "ko", new Byte((byte)23), "43", "ok", null, new Short((short)12), "5"}; short[] target = new short[] {84, 23, 43, 12, 5}; short[] converted = ArrayUtils.createShortArray(source); assertEquals(target.length, converted.length); assertEquals(target[0], converted[0]); assertEquals(target[1], converted[1]); assertEquals(target[2], converted[2]); assertEquals(target[3], converted[3]); assertEquals(target[4], converted[4]); } public void testCreateIntArray() { assertNull(ArrayUtils.createIntArray(null)); Object[] source = new Object[] {"ok", new Integer(9834), null, "454", new StringBuffer("2355"), "ko", "2398", new Long(4834L), "koko"}; int[] target = new int[] {9834, 454, 2355, 2398, 4834}; int[] converted = ArrayUtils.createIntArray(source); assertEquals(target.length, converted.length); assertEquals(target[0], converted[0]); assertEquals(target[1], converted[1]); assertEquals(target[2], converted[2]); assertEquals(target[3], converted[3]); assertEquals(target[4], converted[4]); } public void testCreateLongArray() { assertNull(ArrayUtils.createLongArray(null)); Object[] source = new Object[] {new Integer(59035), "90465", "ok", "723479", null, "47543", "ko", new Integer(987543)}; long[] target = new long[] {59035, 90465, 723479, 47543, 987543}; long[] converted = ArrayUtils.createLongArray(source); assertEquals(target.length, converted.length); assertEquals(target[0], converted[0]); assertEquals(target[1], converted[1]); assertEquals(target[2], converted[2]); assertEquals(target[3], converted[3]); assertEquals(target[4], converted[4]); } public void testCreateFloatArray() { assertNull(ArrayUtils.createFloatArray(null)); Object[] source = new Object[] {"228.02", new Float(8734.3f), "lokoko", "8634.2", null, "kokiro", new Double(34321.9d), "3478.2"}; float[] target = new float[] {228.02f, 8734.3f, 8634.2f, 34321.9f, 3478.2f}; float[] converted = ArrayUtils.createFloatArray(source); assertEquals(target.length, converted.length); assertEquals(target[0], converted[0], 0); assertEquals(target[1], converted[1], 0); assertEquals(target[2], converted[2], 0); assertEquals(target[3], converted[3], 0); assertEquals(target[4], converted[4], 0); } public void testCreateDoubleArray() { assertNull(ArrayUtils.createDoubleArray(null)); Object[] source = new Object[] {new Double(987634.3434d), null, "653928.434", "oooook", new Double(394374.34387d), "3847764332.3434", "koooko", new Integer(3434)}; double[] target = new double[] {987634.3434d, 653928.434d, 394374.34387d, 3847764332.3434d, 3434d}; double[] converted = ArrayUtils.createDoubleArray(source); assertEquals(target.length, converted.length); assertEquals(target[0], converted[0], 0); assertEquals(target[1], converted[1], 0); assertEquals(target[2], converted[2], 0); assertEquals(target[3], converted[3], 0); assertEquals(target[4], converted[4], 0); } public void testJoinString() { String[] first = new String[] {"lkjhkjh", "uhggh", "kgyugioh", "kjhgkhjh", "phhgg"}; String[] second = new String[] {"ihhjf", "hhjgvgjfc", "oighiufhuf", "uiguhgi", "iuggiug"}; assertNull(ArrayUtils.join((String[])null, (String[])null)); assertSame(first, ArrayUtils.join(first, (String[])null)); assertSame(second, ArrayUtils.join((String[])null, second)); String[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second[0]); assertEquals(join[6], second[1]); assertEquals(join[7], second[2]); assertEquals(join[8], second[3]); assertEquals(join[9], second[4]); } public void testJoinStringSingle() { String[] first = new String[] {"lkjhkjh", "uhggh", "kgyugioh", "kjhgkhjh", "phhgg"}; String second = "ihhjf"; assertNull(ArrayUtils.join((String[])null, (String)null)); assertSame(first, ArrayUtils.join(first, (String)null)); assertEquals(1, ArrayUtils.join((String[])null, second).length); assertEquals(second, ArrayUtils.join((String[])null, second)[0]); String[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second); } public void testJoinByte() { byte[] first = new byte[] {2, 5, 5, 4, 6}; byte[] second = new byte[] {9, 4, 3, 6, 8}; assertNull(ArrayUtils.join((byte[])null, (byte[])null)); assertSame(first, ArrayUtils.join(first, (byte[])null)); assertSame(second, ArrayUtils.join((byte[])null, second)); byte[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second[0]); assertEquals(join[6], second[1]); assertEquals(join[7], second[2]); assertEquals(join[8], second[3]); assertEquals(join[9], second[4]); } public void testJoinByteSingle() { byte[] first = new byte[] {2, 5, 5, 4, 6}; byte second = 9; assertEquals(1, ArrayUtils.join((byte[])null, second).length); assertEquals(second, ArrayUtils.join((byte[])null, second)[0]); byte[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second); } public void testJoinChar() { char[] first = new char[] {'t', 'h', 'i', 's', ' '}; char[] second = new char[] {'w','o','r', 'k' ,'s'}; assertNull(ArrayUtils.join((char[])null, (char[])null)); assertSame(first, ArrayUtils.join(first, (char[])null)); assertSame(second, ArrayUtils.join((char[])null, second)); char[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second[0]); assertEquals(join[6], second[1]); assertEquals(join[7], second[2]); assertEquals(join[8], second[3]); assertEquals(join[9], second[4]); } public void testJoinCharSingle() { char[] first = new char[] {'t', 'h', 'i', 's', ' '}; char second = 'w'; assertEquals(1, ArrayUtils.join((char[])null, second).length); assertEquals(second, ArrayUtils.join((char[])null, second)[0]); char[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second); } public void testJoinShort() { short[] first = new short[] {8, 3, 54, 23, 54}; short[] second = new short[] {84, 23, 43, 12, 5}; assertNull(ArrayUtils.join((short[])null, (short[])null)); assertSame(first, ArrayUtils.join(first, (short[])null)); assertSame(second, ArrayUtils.join((short[])null, second)); short[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second[0]); assertEquals(join[6], second[1]); assertEquals(join[7], second[2]); assertEquals(join[8], second[3]); assertEquals(join[9], second[4]); } public void testJoinShortSingle() { short[] first = new short[] {8, 3, 54, 23, 54}; short second = 84; assertEquals(1, ArrayUtils.join((short[])null, second).length); assertEquals(second, ArrayUtils.join((short[])null, second)[0]); short[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second); } public void testJoinInt() { int[] first = new int[] {834, 3476, 343, 234, 545}; int[] second = new int[] {9834, 454, 2355, 2398, 4834}; assertNull(ArrayUtils.join((int[])null, (int[])null)); assertSame(first, ArrayUtils.join(first, (int[])null)); assertSame(second, ArrayUtils.join((int[])null, second)); int[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second[0]); assertEquals(join[6], second[1]); assertEquals(join[7], second[2]); assertEquals(join[8], second[3]); assertEquals(join[9], second[4]); } public void testJoinIntSingle() { int[] first = new int[] {834, 3476, 343, 234, 545}; int second = 9834; assertEquals(1, ArrayUtils.join((int[])null, second).length); assertEquals(second, ArrayUtils.join((int[])null, second)[0]); int[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second); } public void testJoinLong() { long[] first = new long[] {987634, 98785, 54654, 9864, 4697932}; long[] second = new long[] {59035, 90465, 723479, 47543, 987543}; assertNull(ArrayUtils.join((long[])null, (long[])null)); assertSame(first, ArrayUtils.join(first, (long[])null)); assertSame(second, ArrayUtils.join((long[])null, second)); long[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second[0]); assertEquals(join[6], second[1]); assertEquals(join[7], second[2]); assertEquals(join[8], second[3]); assertEquals(join[9], second[4]); } public void testJoinLongSingle() { long[] first = new long[] {987634, 98785, 54654, 9864, 4697932}; long second = 59035; assertEquals(1, ArrayUtils.join((long[])null, second).length); assertEquals(second, ArrayUtils.join((long[])null, second)[0]); long[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second); } public void testJoinFloat() { float[] first = new float[] {43.3f, 7489.2f, 7634.98f, 343.8f, 736.9f}; float[] second = new float[] {228.02f, 8734.3f, 8634.2f, 34321.9f, 3478.2f}; assertNull(ArrayUtils.join((float[])null, (float[])null)); assertSame(first, ArrayUtils.join(first, (float[])null)); assertSame(second, ArrayUtils.join((float[])null, second)); float[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0], 0); assertEquals(join[1], first[1], 0); assertEquals(join[2], first[2], 0); assertEquals(join[3], first[3], 0); assertEquals(join[4], first[4], 0); assertEquals(join[5], second[0], 0); assertEquals(join[6], second[1], 0); assertEquals(join[7], second[2], 0); assertEquals(join[8], second[3], 0); assertEquals(join[9], second[4], 0); } public void testJoinFloatSingle() { float[] first = new float[] {43.3f, 7489.2f, 7634.98f, 343.8f, 736.9f}; float second = 228.02f; assertEquals(1, ArrayUtils.join((float[])null, second).length); assertEquals(second, ArrayUtils.join((float[])null, second)[0]); float[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0], 0); assertEquals(join[1], first[1], 0); assertEquals(join[2], first[2], 0); assertEquals(join[3], first[3], 0); assertEquals(join[4], first[4], 0); assertEquals(join[5], second, 0); } public void testJoinDouble() { double[] first = new double[] {973284.678943d, 8936498736.232d, 78634.9834d, 37467.334d, 986347.234243d}; double[] second = new double[] {987634.3434d, 653928.434d, 394374.34387d, 3847764332.3434d, 3434d}; assertNull(ArrayUtils.join((double[])null, (double[])null)); assertSame(first, ArrayUtils.join(first, (double[])null)); assertSame(second, ArrayUtils.join((double[])null, second)); double[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0], 0); assertEquals(join[1], first[1], 0); assertEquals(join[2], first[2], 0); assertEquals(join[3], first[3], 0); assertEquals(join[4], first[4], 0); assertEquals(join[5], second[0], 0); assertEquals(join[6], second[1], 0); assertEquals(join[7], second[2], 0); assertEquals(join[8], second[3], 0); assertEquals(join[9], second[4], 0); } public void testJoinDoubleSingle() { double[] first = new double[] {973284.678943d, 8936498736.232d, 78634.9834d, 37467.334d, 986347.234243d}; double second = 987634.3434d; assertEquals(1, ArrayUtils.join((double[])null, second).length); assertEquals(second, ArrayUtils.join((double[])null, second)[0]); double[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0], 0); assertEquals(join[1], first[1], 0); assertEquals(join[2], first[2], 0); assertEquals(join[3], first[3], 0); assertEquals(join[4], first[4], 0); assertEquals(join[5], second, 0); } public void testJoinBoolean() { boolean[] first = new boolean[] {true, false, false, true, true}; boolean[] second = new boolean[] {false, false, true, false, true}; assertNull(ArrayUtils.join((boolean[])null, (boolean[])null)); assertSame(first, ArrayUtils.join(first, (boolean[])null)); assertSame(second, ArrayUtils.join((boolean[])null, second)); boolean[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second[0]); assertEquals(join[6], second[1]); assertEquals(join[7], second[2]); assertEquals(join[8], second[3]); assertEquals(join[9], second[4]); } public void testJoinBooleanSingle() { boolean[] first = new boolean[] {true, false, false, true, true}; boolean second = false; assertEquals(1, ArrayUtils.join((boolean[])null, second).length); assertEquals(second, ArrayUtils.join((boolean[])null, second)[0]); boolean[] join = ArrayUtils.join(first, second); assertEquals(join[0], first[0]); assertEquals(join[1], first[1]); assertEquals(join[2], first[2]); assertEquals(join[3], first[3]); assertEquals(join[4], first[4]); assertEquals(join[5], second); } }