public void testNearMatch() {
searcher.clear();
List<MatrixSlice> queries = Lists.newArrayList(Iterables.limit(dataPoints, 100));
searcher.addAllMatrixSlicesAsWeightedVectors(dataPoints);
MultiNormal noise = new MultiNormal(0.01, new DenseVector(20));
for (MatrixSlice slice : queries) {
Vector query = slice.vector();
final Vector epsilon = noise.sample();
List<WeightedThing<Vector>> r = searcher.search(query, 2);
query = query.plus(epsilon);
assertEquals("Distance has to be small", epsilon.norm(2), r.get(0).getWeight(), 1.0e-1);
assertEquals("Answer must be substantially the same as query", epsilon.norm(2),
r.get(0).getValue().minus(query).norm(2), 1.0e-1);