@Test
public void testSpatialConsistency() {
LPNormDistanceFunction dist = new ELKIBuilder<>(LPNormDistanceFunction.class)
.with(LPNormDistanceFunction.Parameterizer.P_ID, .5)
.build();
assertSame("Subtyped", LPNormDistanceFunction.class, dist.getClass());
assertFalse("Not metric", dist.isMetric());
basicChecks(dist);
varyingLengthBasic(0, dist, 1, 0, 1, 1, 4, 1);
spatialConsistency(dist);
nonnegativeSpatialConsistency(dist);
dist = new ELKIBuilder<>(LPNormDistanceFunction.class)
.with(LPNormDistanceFunction.Parameterizer.P_ID, 3)
.build();
assertSame("Not optimized", LPIntegerNormDistanceFunction.class, dist.getClass());
assertTrue("Not metric", dist.isMetric());
basicChecks(dist);
varyingLengthBasic(0, dist, 1, 0, 1, 1, FastMath.pow(2, 1. / 3), 1);
spatialConsistency(dist);
nonnegativeSpatialConsistency(dist);
}
}