1/* 2 * Copyright (C) 2013 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.internal.util; 18 19import android.test.MoreAsserts; 20 21import java.util.Arrays; 22import junit.framework.TestCase; 23 24/** 25 * Tests for {@link ArrayUtils} 26 */ 27public class ArrayUtilsTest extends TestCase { 28 public void testContains() throws Exception { 29 final Object A = new Object(); 30 final Object B = new Object(); 31 final Object C = new Object(); 32 final Object D = new Object(); 33 34 assertTrue(ArrayUtils.contains(new Object[] { A, B, C }, A)); 35 assertTrue(ArrayUtils.contains(new Object[] { A, B, C }, B)); 36 assertTrue(ArrayUtils.contains(new Object[] { A, B, C }, C)); 37 assertTrue(ArrayUtils.contains(new Object[] { A, null, C }, null)); 38 39 assertFalse(ArrayUtils.contains(new Object[] { A, B, C }, null)); 40 assertFalse(ArrayUtils.contains(new Object[] { }, null)); 41 assertFalse(ArrayUtils.contains(new Object[] { null }, A)); 42 } 43 44 public void testIndexOf() throws Exception { 45 final Object A = new Object(); 46 final Object B = new Object(); 47 final Object C = new Object(); 48 final Object D = new Object(); 49 50 assertEquals(0, ArrayUtils.indexOf(new Object[] { A, B, C }, A)); 51 assertEquals(1, ArrayUtils.indexOf(new Object[] { A, B, C }, B)); 52 assertEquals(2, ArrayUtils.indexOf(new Object[] { A, B, C }, C)); 53 assertEquals(-1, ArrayUtils.indexOf(new Object[] { A, B, C }, D)); 54 55 assertEquals(-1, ArrayUtils.indexOf(new Object[] { A, B, C }, null)); 56 assertEquals(-1, ArrayUtils.indexOf(new Object[] { }, A)); 57 assertEquals(-1, ArrayUtils.indexOf(new Object[] { }, null)); 58 59 assertEquals(0, ArrayUtils.indexOf(new Object[] { null, null }, null)); 60 assertEquals(1, ArrayUtils.indexOf(new Object[] { A, null, B }, null)); 61 assertEquals(2, ArrayUtils.indexOf(new Object[] { A, null, B }, B)); 62 } 63 64 public void testContainsAll() throws Exception { 65 final Object A = new Object(); 66 final Object B = new Object(); 67 final Object C = new Object(); 68 69 assertTrue(ArrayUtils.containsAll(new Object[] { C, B, A }, new Object[] { A, B, C })); 70 assertTrue(ArrayUtils.containsAll(new Object[] { A, B }, new Object[] { A })); 71 assertTrue(ArrayUtils.containsAll(new Object[] { A }, new Object[] { A })); 72 assertTrue(ArrayUtils.containsAll(new Object[] { A }, new Object[] { })); 73 assertTrue(ArrayUtils.containsAll(new Object[] { }, new Object[] { })); 74 assertTrue(ArrayUtils.containsAll(new Object[] { null }, new Object[] { })); 75 assertTrue(ArrayUtils.containsAll(new Object[] { null }, new Object[] { null })); 76 assertTrue(ArrayUtils.containsAll(new Object[] { A, null, C }, new Object[] { C, null })); 77 78 assertFalse(ArrayUtils.containsAll(new Object[] { }, new Object[] { A })); 79 assertFalse(ArrayUtils.containsAll(new Object[] { B }, new Object[] { A })); 80 assertFalse(ArrayUtils.containsAll(new Object[] { }, new Object[] { null })); 81 assertFalse(ArrayUtils.containsAll(new Object[] { A }, new Object[] { null })); 82 } 83 84 public void testContainsInt() throws Exception { 85 assertTrue(ArrayUtils.contains(new int[] { 1, 2, 3 }, 1)); 86 assertTrue(ArrayUtils.contains(new int[] { 1, 2, 3 }, 2)); 87 assertTrue(ArrayUtils.contains(new int[] { 1, 2, 3 }, 3)); 88 89 assertFalse(ArrayUtils.contains(new int[] { 1, 2, 3 }, 0)); 90 assertFalse(ArrayUtils.contains(new int[] { 1, 2, 3 }, 4)); 91 assertFalse(ArrayUtils.contains(new int[] { }, 2)); 92 } 93 94 public void testAppendInt() throws Exception { 95 MoreAsserts.assertEquals(new int[] { 1 }, 96 ArrayUtils.appendInt(null, 1)); 97 MoreAsserts.assertEquals(new int[] { 1 }, 98 ArrayUtils.appendInt(new int[] { }, 1)); 99 MoreAsserts.assertEquals(new int[] { 1, 2 }, 100 ArrayUtils.appendInt(new int[] { 1 }, 2)); 101 MoreAsserts.assertEquals(new int[] { 1, 2 }, 102 ArrayUtils.appendInt(new int[] { 1, 2 }, 1)); 103 } 104 105 public void testRemoveInt() throws Exception { 106 assertNull(ArrayUtils.removeInt(null, 1)); 107 MoreAsserts.assertEquals(new int[] { }, 108 ArrayUtils.removeInt(new int[] { }, 1)); 109 MoreAsserts.assertEquals(new int[] { 1, 2, 3, }, 110 ArrayUtils.removeInt(new int[] { 1, 2, 3}, 4)); 111 MoreAsserts.assertEquals(new int[] { 2, 3, }, 112 ArrayUtils.removeInt(new int[] { 1, 2, 3}, 1)); 113 MoreAsserts.assertEquals(new int[] { 1, 3, }, 114 ArrayUtils.removeInt(new int[] { 1, 2, 3}, 2)); 115 MoreAsserts.assertEquals(new int[] { 1, 2, }, 116 ArrayUtils.removeInt(new int[] { 1, 2, 3}, 3)); 117 MoreAsserts.assertEquals(new int[] { 2, 3, 1 }, 118 ArrayUtils.removeInt(new int[] { 1, 2, 3, 1 }, 1)); 119 } 120 121 public void testContainsLong() throws Exception { 122 assertTrue(ArrayUtils.contains(new long[] { 1, 2, 3 }, 1)); 123 assertTrue(ArrayUtils.contains(new long[] { 1, 2, 3 }, 2)); 124 assertTrue(ArrayUtils.contains(new long[] { 1, 2, 3 }, 3)); 125 126 assertFalse(ArrayUtils.contains(new long[] { 1, 2, 3 }, 0)); 127 assertFalse(ArrayUtils.contains(new long[] { 1, 2, 3 }, 4)); 128 assertFalse(ArrayUtils.contains(new long[] { }, 2)); 129 } 130 131 public void testAppendLong() throws Exception { 132 MoreAsserts.assertEquals(new long[] { 1 }, 133 ArrayUtils.appendLong(null, 1)); 134 MoreAsserts.assertEquals(new long[] { 1 }, 135 ArrayUtils.appendLong(new long[] { }, 1)); 136 MoreAsserts.assertEquals(new long[] { 1, 2 }, 137 ArrayUtils.appendLong(new long[] { 1 }, 2)); 138 MoreAsserts.assertEquals(new long[] { 1, 2 }, 139 ArrayUtils.appendLong(new long[] { 1, 2 }, 1)); 140 } 141 142 public void testRemoveLong() throws Exception { 143 assertNull(ArrayUtils.removeLong(null, 1)); 144 MoreAsserts.assertEquals(new long[] { }, 145 ArrayUtils.removeLong(new long[] { }, 1)); 146 MoreAsserts.assertEquals(new long[] { 1, 2, 3, }, 147 ArrayUtils.removeLong(new long[] { 1, 2, 3}, 4)); 148 MoreAsserts.assertEquals(new long[] { 2, 3, }, 149 ArrayUtils.removeLong(new long[] { 1, 2, 3}, 1)); 150 MoreAsserts.assertEquals(new long[] { 1, 3, }, 151 ArrayUtils.removeLong(new long[] { 1, 2, 3}, 2)); 152 MoreAsserts.assertEquals(new long[] { 1, 2, }, 153 ArrayUtils.removeLong(new long[] { 1, 2, 3}, 3)); 154 MoreAsserts.assertEquals(new long[] { 2, 3, 1 }, 155 ArrayUtils.removeLong(new long[] { 1, 2, 3, 1 }, 1)); 156 } 157 158} 159