aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src/com/android/inputmethod/compat
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2011-06-20 23:42:45 +0900
committerTadashi G. Takaoka <takaoka@google.com>2011-06-21 17:02:38 +0900
commitacd1a1c7a82e8d5ad2cd62bd84dc9e99b24aa17a (patch)
treee5439397dd16a4071f4fedcb8dc50012bc87f0b1 /tests/src/com/android/inputmethod/compat
parent416534d03293f9a79145a2f2561f79f0ee0705f8 (diff)
downloadlatinime-acd1a1c7a82e8d5ad2cd62bd84dc9e99b24aa17a.tar.gz
latinime-acd1a1c7a82e8d5ad2cd62bd84dc9e99b24aa17a.tar.xz
latinime-acd1a1c7a82e8d5ad2cd62bd84dc9e99b24aa17a.zip
Add ArraysCompatUtils.binarySearch
Until API version 9, java.util.Arrays.binarySearch(int[], int, int, int) doesn't exist. Change-Id: Ife0ed4fbac642eda069e7b6f6b8dd30e0cd5fdee
Diffstat (limited to 'tests/src/com/android/inputmethod/compat')
-rw-r--r--tests/src/com/android/inputmethod/compat/ArraysCompatUtilsTests.java103
1 files changed, 103 insertions, 0 deletions
diff --git a/tests/src/com/android/inputmethod/compat/ArraysCompatUtilsTests.java b/tests/src/com/android/inputmethod/compat/ArraysCompatUtilsTests.java
new file mode 100644
index 000000000..93681b616
--- /dev/null
+++ b/tests/src/com/android/inputmethod/compat/ArraysCompatUtilsTests.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * 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.android.inputmethod.compat;
+
+import android.test.AndroidTestCase;
+
+public class ArraysCompatUtilsTests extends AndroidTestCase {
+ // See {@link tests.api.java.util.ArraysTest}.
+ private static final int ARRAY_SIZE = 100;
+ private final int[] mIntArray = new int[ARRAY_SIZE];
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ for (int counter = 0; counter < ARRAY_SIZE; counter++) {
+ mIntArray[counter] = counter;
+ }
+ }
+
+ public void testEmptyArray() {
+ final int index = ArraysCompatUtils.binarySearch(mIntArray, 0, 0, 0);
+ assertEquals("empty", ~0, index);
+ final int compat = ArraysCompatUtils.compatBinarySearch(mIntArray, 0, 0, 0);
+ assertEquals("empty compat", ~0, compat);
+ }
+
+ public void testEmptyRangeArray() {
+ final int mid = ARRAY_SIZE / 3;
+ final int index = ArraysCompatUtils.binarySearch(mIntArray, mid, mid, 1);
+ assertEquals("empty", ~mid, index);
+ final int compat = ArraysCompatUtils.compatBinarySearch(mIntArray, mid, mid, 1);
+ assertEquals("empty compat", ~mid, compat);
+ }
+
+ public void testFind() {
+ for (int counter = 0; counter < ARRAY_SIZE; counter++) {
+ final int index = ArraysCompatUtils.binarySearch(mIntArray, 0, ARRAY_SIZE, counter);
+ assertEquals("found", counter, index);
+ }
+ for (int counter = 0; counter < ARRAY_SIZE; counter++) {
+ final int compat = ArraysCompatUtils.compatBinarySearch(
+ mIntArray, 0, ARRAY_SIZE, counter);
+ assertEquals("found compat", counter, compat);
+ }
+ }
+
+ public void testFindNegative() {
+ final int offset = ARRAY_SIZE / 2;
+ for (int counter = 0; counter < ARRAY_SIZE; counter++) {
+ mIntArray[counter] -= offset;
+ }
+ for (int counter = 0; counter < ARRAY_SIZE; counter++) {
+ final int index = ArraysCompatUtils.binarySearch(
+ mIntArray, 0, ARRAY_SIZE, counter - offset);
+ assertEquals("found", counter, index);
+ }
+ for (int counter = 0; counter < ARRAY_SIZE; counter++) {
+ final int compat = ArraysCompatUtils.compatBinarySearch(
+ mIntArray, 0, ARRAY_SIZE, counter - offset);
+ assertEquals("found compat", counter, compat);
+ }
+ }
+
+ public void testNotFountAtTop() {
+ final int index = ArraysCompatUtils.binarySearch(mIntArray, 0, ARRAY_SIZE, -1);
+ assertEquals("not found top", ~0, index);
+ final int compat = ArraysCompatUtils.compatBinarySearch(
+ mIntArray, 0, ARRAY_SIZE, -1);
+ assertEquals("not found top compat", ~0, compat);
+ }
+
+ public void testNotFountAtEnd() {
+ final int index = ArraysCompatUtils.binarySearch(mIntArray, 0, ARRAY_SIZE, ARRAY_SIZE);
+ assertEquals("not found end", ~ARRAY_SIZE, index);
+ final int compat = ArraysCompatUtils.compatBinarySearch(
+ mIntArray, 0, ARRAY_SIZE, ARRAY_SIZE);
+ assertEquals("not found end compat", ~ARRAY_SIZE, compat);
+ }
+
+ public void testNotFountAtMid() {
+ final int mid = ARRAY_SIZE / 3;
+ mIntArray[mid] = mIntArray[mid + 1];
+ final int index = ArraysCompatUtils.binarySearch(mIntArray, 0, ARRAY_SIZE, mid);
+ assertEquals("not found mid", ~mid, index);
+ final int compat = ArraysCompatUtils.compatBinarySearch(
+ mIntArray, 0, ARRAY_SIZE, mid);
+ assertEquals("not found mid compat", ~mid, compat);
+ }
+}