/* * File: ArrayUtilTest.java * Authors: Justin Basilico * Company: Sandia National Laboratories * Project: Cognitive Foundry * * Copyright September 23, 2010, Sandia Corporation. * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive * license for use of this work by or on behalf of the U.S. Government. Export * of this program may require a license from the United States Government. * See CopyrightHistory.txt for complete details. * */ package gov.sandia.cognition.collection; import java.util.Arrays; import junit.framework.TestCase; /** * Unit tests for class ArrayUtil. * * @author Justin Basilico * @since 3.1 */ public class ArrayUtilTest extends TestCase { /** * Creates a new test. * * @param testName The test name. */ public ArrayUtilTest( String testName) { super(testName); } /** * Test of copy method, of class ArrayUtil. */ public void testCopyBooleanArray() { boolean[] array = null; assertNull(ArrayUtil.copy(array)); array = new boolean[] { true, false, false }; boolean[] result = ArrayUtil.copy(array); assertNotSame(array, result); assertTrue(Arrays.equals(array, result)); assertEquals(true, array[0]); assertEquals(false, array[1]); assertEquals(false, array[2]); } /** * Test of copy method, of class ArrayUtil. */ public void testCopyIntArray() { int[] array = null; assertNull(ArrayUtil.copy(array)); array = new int[] { 1, 0, 5 }; int[] result = ArrayUtil.copy(array); assertNotSame(array, result); assertTrue(Arrays.equals(array, result)); assertEquals(1, array[0]); assertEquals(0, array[1]); assertEquals(5, array[2]); } /** * Test of copy method, of class ArrayUtil. */ public void testCopyLongArray() { long[] array = null; assertNull(ArrayUtil.copy(array)); array = new long[] { 1, 0, Long.MAX_VALUE }; long[] result = ArrayUtil.copy(array); assertNotSame(array, result); assertTrue(Arrays.equals(array, result)); assertEquals(1, array[0]); assertEquals(0, array[1]); assertEquals(Long.MAX_VALUE, array[2]); } /** * Test of copy method, of class ArrayUtil. */ public void testCopyDoubleArray() { double[] array = null; assertNull(ArrayUtil.copy(array)); array = new double[] { 1.0, 0.0, -0.5 }; double[] result = ArrayUtil.copy(array); assertNotSame(array, result); assertTrue(Arrays.equals(array, result)); assertEquals(1, array[0], 0.0); assertEquals(0, array[1], 0.0); assertEquals(-0.5, array[2], 0.0); } /** * Test of copy method, of class ArrayUtil. */ public void testCopyObjectArray() { Object[] array = null; assertNull(ArrayUtil.copy(array)); array = new Object[0]; Object[] result = ArrayUtil.copy(array); assertNotSame(array, result); assertTrue(Arrays.equals(array, result)); Object o1 = new Object(); Object o2 = new Object(); Object o3 = null; array = new Object[] { o1, o2, o3}; result = ArrayUtil.copy(array); assertNotSame(array, result); assertTrue(Arrays.equals(array, result)); assertSame(o1, array[0]); assertSame(o2, array[1]); assertSame(o3, array[2]); } /** * Test of reverse method, of class ArrayUtil. */ public void testReverseBooleanArray() { boolean[] array = null; ArrayUtil.reverse(array); array = new boolean[0]; ArrayUtil.reverse(array); array = new boolean[] { true }; ArrayUtil.reverse(array); assertEquals(true, array[0]); array = new boolean[] { false, true }; ArrayUtil.reverse(array); assertEquals(true, array[0]); assertEquals(false, array[1]); array = new boolean[] { false, false, true }; ArrayUtil.reverse(array); assertEquals(true, array[0]); assertEquals(false, array[1]); assertEquals(false, array[2]); } /** * Test of reverse method, of class ArrayUtil. */ public void testReverseIntArray() { int[] array = null; ArrayUtil.reverse(array); array = new int[0]; ArrayUtil.reverse(array); array = new int[] { 9 }; ArrayUtil.reverse(array); assertEquals(9, array[0]); array = new int[] { 8, 1 }; ArrayUtil.reverse(array); assertEquals(1, array[0]); assertEquals(8, array[1]); array = new int[] { 1, 0, 5 }; ArrayUtil.reverse(array); assertEquals(5, array[0]); assertEquals(0, array[1]); assertEquals(1, array[2]); } /** * Test of reverse method, of class ArrayUtil. */ public void testReverseLongArray() { long[] array = null; ArrayUtil.reverse(array); array = new long[0]; ArrayUtil.reverse(array); array = new long[] { 9 }; ArrayUtil.reverse(array); assertEquals(9, array[0]); array = new long[] { 8, 1 }; ArrayUtil.reverse(array); assertEquals(1, array[0]); assertEquals(8, array[1]); array = new long[] { 1, 0, Long.MAX_VALUE }; ArrayUtil.reverse(array); assertEquals(Long.MAX_VALUE, array[0]); assertEquals(0, array[1]); assertEquals(1, array[2]); } /** * Test of reverse method, of class ArrayUtil. */ public void testReverseDoubleArray() { double[] array = null; ArrayUtil.reverse(array); array = new double[0]; ArrayUtil.reverse(array); array = new double[] { 9.3 }; ArrayUtil.reverse(array); assertEquals(9.3, array[0], 0.0); array = new double[] { 8.2, -1.6 }; ArrayUtil.reverse(array); assertEquals(-1.6, array[0], 0.0); assertEquals(8.2, array[1], 0.0); array = new double[] { 1.0, 0.0, 5.0 }; ArrayUtil.reverse(array); assertEquals(5.0, array[0], 0.0); assertEquals(0.0, array[1], 0.0); assertEquals(1.0, array[2], 0.0); } /** * Test of reverse method, of class ArrayUtil. */ public void testReverseObjectArray() { Object[] array = null; ArrayUtil.reverse(array); array = new Object[0]; ArrayUtil.reverse(array); Object o1 = new Object(); array = new Object[] { o1 }; ArrayUtil.reverse(array); assertSame(o1, array[0]); Object o2 = new Object(); array = new Object[] { o1, o2 }; ArrayUtil.reverse(array); assertSame(o2, array[0]); assertSame(o1, array[1]); array = new Object[] { o1, o2, null}; ArrayUtil.reverse(array); assertSame(null, array[0]); assertSame(o2, array[1]); assertSame(o1, array[2]); } /** * Test of isEmpty method, of class ArrayUtil. */ public void testIsEmptyBooleanArray() { assertTrue(ArrayUtil.isEmpty((boolean[]) null)); assertTrue(ArrayUtil.isEmpty(new boolean[0])); assertFalse(ArrayUtil.isEmpty(new boolean[1])); assertFalse(ArrayUtil.isEmpty(new boolean[2])); assertFalse(ArrayUtil.isEmpty(new boolean[10])); } /** * Test of isEmpty method, of class ArrayUtil. */ public void testIsEmptyIntArray() { assertTrue(ArrayUtil.isEmpty((int[]) null)); assertTrue(ArrayUtil.isEmpty(new int[0])); assertFalse(ArrayUtil.isEmpty(new int[1])); assertFalse(ArrayUtil.isEmpty(new int[2])); assertFalse(ArrayUtil.isEmpty(new int[10])); } /** * Test of isEmpty method, of class ArrayUtil. */ public void testIsEmptyLongArray() { assertTrue(ArrayUtil.isEmpty((long[]) null)); assertTrue(ArrayUtil.isEmpty(new long[0])); assertFalse(ArrayUtil.isEmpty(new long[1])); assertFalse(ArrayUtil.isEmpty(new long[2])); assertFalse(ArrayUtil.isEmpty(new long[10])); } /** * Test of isEmpty method, of class ArrayUtil. */ public void testIsEmptyDoubleArray() { assertTrue(ArrayUtil.isEmpty((double[]) null)); assertTrue(ArrayUtil.isEmpty(new double[0])); assertFalse(ArrayUtil.isEmpty(new double[1])); assertFalse(ArrayUtil.isEmpty(new double[2])); assertFalse(ArrayUtil.isEmpty(new double[10])); } /** * Test of isEmpty method, of class ArrayUtil. */ public void testIsEmptyObjectArray() { assertTrue(ArrayUtil.isEmpty((Object[]) null)); assertTrue(ArrayUtil.isEmpty(new Object[0])); assertFalse(ArrayUtil.isEmpty(new Object[1])); assertFalse(ArrayUtil.isEmpty(new Object[2])); assertFalse(ArrayUtil.isEmpty(new Object[10])); } }