| /* |
| * Copyright 2000-2009 JetBrains s.r.o. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.intellij.util.containers; |
| |
| import com.intellij.util.Assertion; |
| import junit.framework.Assert; |
| import junit.framework.TestCase; |
| |
| public class HugeArrayTest extends TestCase { |
| private final HugeArray myArray = new HugeArray(3); |
| private final Assertion CHECK = new Assertion(); |
| |
| public void testIndexing() { |
| Assert.assertEquals(0, myArray.calcRow(0)); |
| Assert.assertEquals(0, myArray.calcRow(7)); |
| Assert.assertEquals(1, myArray.calcRow(8)); |
| Assert.assertEquals(0, myArray.calcColumn(0)); |
| Assert.assertEquals(1, myArray.calcColumn(1)); |
| Assert.assertEquals(7, myArray.calcColumn(7)); |
| Assert.assertEquals(0, myArray.calcColumn(8)); |
| } |
| |
| public void testSize() { |
| Assert.assertEquals(0, myArray.size()); |
| myArray.put(0, ""); |
| Assert.assertEquals(1, myArray.size()); |
| myArray.put(10, ""); |
| Assert.assertEquals(11, myArray.size()); |
| } |
| |
| public void testToArray() { |
| myArray.put(1, "a"); |
| myArray.put(15, "b"); |
| Object[] array = myArray.toArray(); |
| Assert.assertEquals(16, array.length); |
| String[] expectedArray = new String[16]; |
| Assert.assertSame(expectedArray, myArray.toArray(expectedArray)); |
| } |
| |
| public void testToArrayOrder() { |
| for (int i = 0; i < 64; i++) |
| myArray.put(i, String.valueOf(i)); |
| String[] stringArray = (String[])myArray.toArray(new String[63]); |
| for (int i = 0; i < stringArray.length; i++) { |
| String value = String.valueOf(i); |
| Assert.assertEquals(value, stringArray[i]); |
| Assert.assertEquals(value, myArray.get(i)); |
| } |
| Assert.assertEquals("63", myArray.toArray()[63]); |
| } |
| |
| public void testAdd() { |
| myArray.add("1"); |
| Assert.assertEquals(1, myArray.size()); |
| myArray.add("2"); |
| Assert.assertEquals(2, myArray.size()); |
| Assert.assertEquals("1", myArray.get(0)); |
| Assert.assertEquals("2", myArray.get(1)); |
| CHECK.compareAll(new String[]{"1", "2"}, myArray.toArray()); |
| } |
| } |