// Euclidean
{
KNNJoin<DoubleVector, DoubleDistance, ?, ?> knnjoin = new KNNJoin<DoubleVector, DoubleDistance, RStarTreeNode, SpatialEntry>(EuclideanDistanceFunction.STATIC, 2);
DataStore<KNNList<DoubleDistance>> result = knnjoin.run(db);
MeanVariance meansize = new MeanVariance();
for(DBID id : relation.getDBIDs()) {
KNNList<DoubleDistance> knnlist = result.get(id);
meansize.put(knnlist.size());
}
org.junit.Assert.assertEquals("Euclidean mean 2NN", mean2nnEuclid, meansize.getMean(), 0.00001);
org.junit.Assert.assertEquals("Euclidean variance 2NN", var2nnEuclid, meansize.getSampleVariance(), 0.00001);
}
// Manhattan
{
KNNJoin<DoubleVector, DoubleDistance, ?, ?> knnjoin = new KNNJoin<DoubleVector, DoubleDistance, RStarTreeNode, SpatialEntry>(ManhattanDistanceFunction.STATIC, 2);
DataStore<KNNList<DoubleDistance>> result = knnjoin.run(db);
MeanVariance meansize = new MeanVariance();
for(DBID id : relation.getDBIDs()) {
KNNList<DoubleDistance> knnlist = result.get(id);
meansize.put(knnlist.size());
}
org.junit.Assert.assertEquals("Manhattan mean 2NN", mean2nnManhattan, meansize.getMean(), 0.00001);
org.junit.Assert.assertEquals("Manhattan variance 2NN", var2nnManhattan, meansize.getSampleVariance(), 0.00001);
}
}