/* (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); } }