@Test public void sortIndex() { int numBins = 150; double tolerance = 15.0/numBins; double[] data = random(-5, 10, 4, 200); int indexes[] = new int[ 200 ]; ApproximateSort_F64 alg = new ApproximateSort_F64(-5,10,numBins); alg.sortIndex(data,4,200,indexes); // see if the sort was to within the expected tolerance boolean used[] = new boolean[indexes.length]; used[indexes[0]-4] = true; for( int i = 1; i < indexes.length; i++ ) { used[indexes[i]-4] = true; assertTrue(data[indexes[i]] > data[indexes[i - 1]] - tolerance); } // make sure everything was referenced for( int i = 0; i < indexes.length; i++ ) { assertTrue(used[i] ); } }