1b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// Protocol Buffers - Google's data interchange format 2b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// Copyright 2008 Google Inc. All rights reserved. 3b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// https://developers.google.com/protocol-buffers/ 4b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// 5b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// Redistribution and use in source and binary forms, with or without 6b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// modification, are permitted provided that the following conditions are 7b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// met: 8b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// 9b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// * Redistributions of source code must retain the above copyright 10b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// notice, this list of conditions and the following disclaimer. 11b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// * Redistributions in binary form must reproduce the above 12b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// copyright notice, this list of conditions and the following disclaimer 13b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// in the documentation and/or other materials provided with the 14b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// distribution. 15b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// * Neither the name of Google Inc. nor the names of its 16b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// contributors may be used to endorse or promote products derived from 17b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// this software without specific prior written permission. 18b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// 19b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 31b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammerpackage com.google.protobuf; 32b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 33b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammerimport static java.util.Arrays.asList; 34b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 35b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammerimport junit.framework.TestCase; 36b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 37b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammerimport java.util.Collections; 38b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammerimport java.util.ConcurrentModificationException; 39b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammerimport java.util.Iterator; 40b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 41b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer/** 42b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer * Tests for {@link DoubleArrayList}. 43b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer * 44b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer * @author dweis@google.com (Daniel Weis) 45b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer */ 46b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammerpublic class DoubleArrayListTest extends TestCase { 47b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 48b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer private static final DoubleArrayList UNARY_LIST = newImmutableDoubleArrayList(1); 49b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer private static final DoubleArrayList TERTIARY_LIST = 50b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer newImmutableDoubleArrayList(1, 2, 3); 51b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 52b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer private DoubleArrayList list; 53b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 54b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer @Override 55b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer protected void setUp() throws Exception { 56b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list = new DoubleArrayList(); 57b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 58b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 59b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testEmptyListReturnsSameInstance() { 60b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertSame(DoubleArrayList.emptyList(), DoubleArrayList.emptyList()); 61b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 62b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 63b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testEmptyListIsImmutable() { 64b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertImmutable(DoubleArrayList.emptyList()); 65b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 66b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 67b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testMakeImmutable() { 68b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(2); 69b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(4); 70b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(6); 71b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(8); 72b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.makeImmutable(); 73b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertImmutable(list); 74b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 75b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 76b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testModificationWithIteration() { 77b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addAll(asList(1D, 2D, 3D, 4D)); 78b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer Iterator<Double> iterator = list.iterator(); 79b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(4, list.size()); 80b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(1D, (double) list.get(0)); 81b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(1D, (double) iterator.next()); 82b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.set(0, 1D); 83b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(2D, (double) iterator.next()); 84b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 85b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.remove(0); 86b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 87b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer iterator.next(); 88b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 89b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (ConcurrentModificationException e) { 90b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 91b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 92b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 93b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer iterator = list.iterator(); 94b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.add(0, 0D); 95b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 96b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer iterator.next(); 97b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 98b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (ConcurrentModificationException e) { 99b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 100b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 101b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 102b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 103b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testGet() { 104b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(1D, (double) TERTIARY_LIST.get(0)); 105b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(2D, (double) TERTIARY_LIST.get(1)); 106b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(3D, (double) TERTIARY_LIST.get(2)); 107b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 108b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 109b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer TERTIARY_LIST.get(-1); 110b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 111b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 112b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 113b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 114b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 115b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 116b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer TERTIARY_LIST.get(3); 117b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 118b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 119b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 120b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 121b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 122b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 123b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testGetInt() { 124b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(1D, TERTIARY_LIST.getDouble(0)); 125b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(2D, TERTIARY_LIST.getDouble(1)); 126b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(3D, TERTIARY_LIST.getDouble(2)); 127b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 128b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 129b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer TERTIARY_LIST.get(-1); 130b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 131b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 132b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 133b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 134b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 135b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 136b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer TERTIARY_LIST.get(3); 137b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 138b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 139b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 140b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 141b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 142b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 143b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testSize() { 144b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(0, DoubleArrayList.emptyList().size()); 145b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(1, UNARY_LIST.size()); 146b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(3, TERTIARY_LIST.size()); 147b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 148b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(2); 149b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(4); 150b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(6); 151b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(8); 152b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(4, list.size()); 153b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 154b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.remove(0); 155b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(3, list.size()); 156b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 157b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.add(16D); 158b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(4, list.size()); 159b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 160b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 161b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testSet() { 162b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(2); 163b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(4); 164b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 165b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(2D, (double) list.set(0, 0D)); 166b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(0D, list.getDouble(0)); 167b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 168b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(4D, (double) list.set(1, 0D)); 169b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(0D, list.getDouble(1)); 170b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 171b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 172b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.set(-1, 0D); 173b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 174b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 175b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 176b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 177b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 178b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 179b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.set(2, 0D); 180b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 181b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 182b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 183b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 184b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 185b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 186b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testSetInt() { 187b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(2); 188b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(4); 189b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 190b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(2D, list.setDouble(0, 0)); 191b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(0D, list.getDouble(0)); 192b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 193b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(4D, list.setDouble(1, 0)); 194b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(0D, list.getDouble(1)); 195b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 196b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 197b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.setDouble(-1, 0); 198b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 199b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 200b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 201b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 202b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 203b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 204b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.setDouble(2, 0); 205b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 206b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 207b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 208b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 209b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 210b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 211b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testAdd() { 212b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(0, list.size()); 213b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 214b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertTrue(list.add(2D)); 215b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(asList(2D), list); 216b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 217b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertTrue(list.add(3D)); 218b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.add(0, 4D); 219b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(asList(4D, 2D, 3D), list); 220b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 221b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.add(0, 1D); 222b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.add(0, 0D); 223b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // Force a resize by getting up to 11 elements. 224b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer for (int i = 0; i < 6; i++) { 225b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.add(Double.valueOf(5 + i)); 226b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 227b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(asList(0D, 1D, 4D, 2D, 3D, 5D, 6D, 7D, 8D, 9D, 10D), list); 228b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 229b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 230b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.add(-1, 5D); 231b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 232b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 233b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 234b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 235b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 236b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.add(4, 5D); 237b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 238b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 239b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 240b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 241b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 242b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testAddInt() { 243b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(0, list.size()); 244b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 245b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(2); 246b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(asList(2D), list); 247b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 248b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(3); 249b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(asList(2D, 3D), list); 250b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 251b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 252b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testAddAll() { 253b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(0, list.size()); 254b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 255b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertTrue(list.addAll(Collections.singleton(1D))); 256b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(1, list.size()); 257b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(1D, (double) list.get(0)); 258b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(1D, list.getDouble(0)); 259b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 260b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertTrue(list.addAll(asList(2D, 3D, 4D, 5D, 6D))); 261b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(asList(1D, 2D, 3D, 4D, 5D, 6D), list); 262b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 263b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertTrue(list.addAll(TERTIARY_LIST)); 264b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(asList(1D, 2D, 3D, 4D, 5D, 6D, 1D, 2D, 3D), list); 265b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 266b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertFalse(list.addAll(Collections.<Double>emptyList())); 267b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertFalse(list.addAll(DoubleArrayList.emptyList())); 268b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 269b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 270b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer public void testRemove() { 271b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addAll(TERTIARY_LIST); 272b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(1D, (double) list.remove(0)); 273b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(asList(2D, 3D), list); 274b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 275b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertTrue(list.remove(Double.valueOf(3))); 276b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(asList(2D), list); 277b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 278b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertFalse(list.remove(Double.valueOf(3))); 279b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(asList(2D), list); 280b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 281b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(2D, (double) list.remove(0)); 282b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer assertEquals(asList(), list); 283b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 284b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 285b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.remove(-1); 286b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 287b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 288b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 289b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 290b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 291b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 292b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.remove(0); 293b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (IndexOutOfBoundsException e) { 294b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 295b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 296b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 297b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 298b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer private void assertImmutable(DoubleArrayList list) { 299b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer if (list.contains(1D)) { 300b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer throw new RuntimeException("Cannot test the immutability of lists that contain 1."); 301b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 302b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 303b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 304b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.add(1D); 305b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 306b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 307b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 308b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 309b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 310b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 311b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.add(0, 1D); 312b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 313b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 314b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 315b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 316b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 317b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 318b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addAll(Collections.<Double>emptyList()); 319b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 320b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 321b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 322b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 323b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 324b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 325b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addAll(Collections.singletonList(1D)); 326b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 327b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 328b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 329b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 330b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 331b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 332b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addAll(new DoubleArrayList()); 333b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 334b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 335b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 336b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 337b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 338b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 339b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addAll(UNARY_LIST); 340b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 341b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 342b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 343b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 344b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 345b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 346b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addAll(0, Collections.singleton(1D)); 347b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 348b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 349b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 350b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 351b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 352b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 353b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addAll(0, UNARY_LIST); 354b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 355b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 356b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 357b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 358b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 359b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 360b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addAll(0, Collections.<Double>emptyList()); 361b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 362b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 363b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 364b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 365b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 366b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 367b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(0); 368b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 369b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 370b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 371b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 372b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 373b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 374b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.clear(); 375b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 376b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 377b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 378b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 379b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 380b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 381b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.remove(1); 382b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 383b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 384b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 385b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 386b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 387b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 388b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.remove(new Object()); 389b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 390b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 391b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 392b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 393b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 394b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 395b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.removeAll(Collections.<Double>emptyList()); 396b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 397b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 398b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 399b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 400b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 401b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 402b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.removeAll(Collections.singleton(1D)); 403b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 404b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 405b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 406b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 407b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 408b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 409b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.removeAll(UNARY_LIST); 410b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 411b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 412b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 413b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 414b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 415b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 416b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.retainAll(Collections.<Double>emptyList()); 417b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 418b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 419b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 420b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 421b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 422b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 423b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.retainAll(Collections.singleton(1D)); 424b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 425b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 426b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 427b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 428b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 429b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 430b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.retainAll(UNARY_LIST); 431b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 432b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 433b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 434b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 435b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 436b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 437b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.set(0, 0D); 438b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 439b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 440b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 441b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 442b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 443b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer try { 444b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.setDouble(0, 0); 445b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer fail(); 446b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } catch (UnsupportedOperationException e) { 447b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer // expected 448b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 449b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 450b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer 451b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer private static DoubleArrayList newImmutableDoubleArrayList(double... elements) { 452b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer DoubleArrayList list = new DoubleArrayList(); 453b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer for (double element : elements) { 454b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.addDouble(element); 455b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 456b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer list.makeImmutable(); 457b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer return list; 458b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer } 459b0575e93e4c39dec69365b850088a1eb7f82c5b3Tamas Berghammer} 460