c56bb42770
X-SVN-Rev: 9149
71 lines
2.2 KiB
Java
71 lines
2.2 KiB
Java
/*
|
|
(C) Copyright Taligent, Inc. 1996 - All Rights Reserved
|
|
(C) Copyright IBM Corp. 1996 - All Rights Reserved
|
|
|
|
The original version of this source code and documentation is copyrighted and
|
|
owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These materials are
|
|
provided under terms of a License Agreement between Taligent and Sun. This
|
|
technology is protected by multiple US and International patents. This notice and
|
|
attribution to Taligent may not be removed.
|
|
Taligent is a registered trademark of Taligent, Inc.
|
|
*/
|
|
|
|
package com.ibm.text.utility;
|
|
|
|
public class FastBinarySearchTest
|
|
{
|
|
static boolean printResult(FastIntBinarySearch search, int value)
|
|
{
|
|
int ndx = search.findIndex(value);
|
|
int data[] = search.getData();
|
|
String errorString = null;
|
|
if (ndx < 0) {
|
|
if (!(ndx < data[0])) {
|
|
errorString = "" + value +" < "+data[0];
|
|
}
|
|
}
|
|
else if (ndx < data.length -1) {
|
|
if (!(data[ndx] <= value && value < data[ndx+1])) {
|
|
errorString = "" + data[ndx]+"<="+value+"<"+data[ndx+1];
|
|
}
|
|
}
|
|
else {
|
|
if (!(data[ndx] <= value)) {
|
|
errorString = ""+data[ndx]+"<"+value;
|
|
}
|
|
}
|
|
if (errorString != null) {
|
|
System.out.println("ERROR: findIndex("+value+") => "+ndx+" "+errorString);
|
|
return false;
|
|
}
|
|
else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
static void test(int testArray[])
|
|
{
|
|
boolean passed = true;
|
|
FastIntBinarySearch search = new FastIntBinarySearch(testArray);
|
|
for (int i = -1; passed && i < testArray[testArray.length-1]+2; i++) {
|
|
passed = passed && printResult(search, i);
|
|
}
|
|
if (passed) System.out.println("test passed");
|
|
else System.out.println("test failed");
|
|
}
|
|
|
|
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
|
|
public static int testArray1[] = {1};
|
|
public static int testArray2[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 19, 19, 25, 27, 29, 31};
|
|
public static int testArray3[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 19, 19, 25, 27, 29};
|
|
public static int testArray4[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 19, 19, 25, 27, 29, 31, 33};
|
|
|
|
public static void main(String args[])
|
|
{
|
|
System.out.println("running 4 tests...");
|
|
test(testArray1);
|
|
test(testArray2);
|
|
test(testArray3);
|
|
test(testArray4);
|
|
}
|
|
} |