1112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi/* 2112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * Copyright (C) 2017 The Android Open Source Project 3112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * 4112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * Licensed under the Apache License, Version 2.0 (the "License"); 5112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * you may not use this file except in compliance with the License. 6112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * You may obtain a copy of the License at 7112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * 8112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * http://www.apache.org/licenses/LICENSE-2.0 9112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * 10112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * Unless required by applicable law or agreed to in writing, software 11112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * distributed under the License is distributed on an "AS IS" BASIS, 12112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * See the License for the specific language governing permissions and 14112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi * limitations under the License. 15112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi */ 16112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 17112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichipackage android.util; 18112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 19112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichiimport static org.junit.Assert.assertArrayEquals; 20112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichiimport static org.junit.Assert.assertEquals; 21112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 22112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichiimport android.support.test.filters.SmallTest; 23112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichiimport android.support.test.runner.AndroidJUnit4; 24112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichiimport org.junit.Test; 25112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichiimport org.junit.runner.RunWith; 26112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 27112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi@RunWith(AndroidJUnit4.class) 28112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi@SmallTest 29112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichipublic class LongArrayTest { 30112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 31112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi @Test 32112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi public void testLongArray() { 33112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi LongArray a = new LongArray(); 34112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.add(1); 35112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.add(2); 36112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.add(3); 37112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi verify(new long[]{1, 2, 3}, a); 38112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 39112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi LongArray b = LongArray.fromArray(new long[]{4, 5, 6, 7, 8}, 3); 40112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.addAll(b); 41112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi verify(new long[]{1, 2, 3, 4, 5, 6}, a); 42112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 43112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.resize(2); 44112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi verify(new long[]{1, 2}, a); 45112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 46112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.resize(8); 47112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi verify(new long[]{1, 2, 0, 0, 0, 0, 0, 0}, a); 48112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 49112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.set(5, 10); 50112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi verify(new long[]{1, 2, 0, 0, 0, 10, 0, 0}, a); 51112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 52112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.add(5, 20); 53112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi assertEquals(20, a.get(5)); 54112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi assertEquals(5, a.indexOf(20)); 55112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi verify(new long[]{1, 2, 0, 0, 0, 20, 10, 0, 0}, a); 56112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 57112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi assertEquals(-1, a.indexOf(99)); 58112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 59112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.resize(15); 60112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.set(14, 30); 61112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi verify(new long[]{1, 2, 0, 0, 0, 20, 10, 0, 0, 0, 0, 0, 0, 0, 30}, a); 62112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 63112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi long[] backingArray = new long[]{1, 2, 3, 4}; 64112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a = LongArray.wrap(backingArray); 65112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.set(0, 10); 66112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi assertEquals(10, backingArray[0]); 67112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi backingArray[1] = 20; 68112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi backingArray[2] = 30; 69112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi verify(backingArray, a); 70112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi assertEquals(2, a.indexOf(30)); 71112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 72112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.resize(2); 73112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi assertEquals(0, backingArray[2]); 74112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi assertEquals(0, backingArray[3]); 75112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 76112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi a.add(50); 77112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi verify(new long[]{10, 20, 50}, a); 78112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi } 79112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi 80112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi public void verify(long[] expected, LongArray longArrays) { 81112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi assertEquals(expected.length, longArrays.size()); 82112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi assertArrayEquals(expected, longArrays.toArray()); 83112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi } 84112962a6b09310c58093b9a8af341cbeaa612a48Hugo Benichi} 85