scuffed-code/tools/unicodetools/com/ibm/text/utility/FastBinarySearchTest.java
Mark Davis c56bb42770 Checked in extra files...
X-SVN-Rev: 9149
2002-07-14 22:07:00 +00:00

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);
}
}