@Test
public void testCOPACOverlap() {
Database db = makeSimpleDatabase(UNITTEST + "correlation-overlap-3-5d.ascii", 650);
// Setup algorithm
ListParameterization params = new ListParameterization();
params.addParameter(COPAC.PARTITION_ALGORITHM_ID, DBSCAN.class);
params.addParameter(DBSCAN.EPSILON_ID, 0.5);
params.addParameter(DBSCAN.MINPTS_ID, 20);
params.addParameter(COPAC.PREPROCESSOR_ID, KNNQueryFilteredPCAIndex.Factory.class);
params.addParameter(KNNQueryFilteredPCAIndex.Factory.K_ID, 45);
// PCA
params.addParameter(PCARunner.PCA_COVARIANCE_MATRIX, WeightedCovarianceMatrixBuilder.class);
params.addParameter(WeightedCovarianceMatrixBuilder.WEIGHT_ID, ErfcWeight.class);
params.addParameter(PCAFilteredRunner.PCA_EIGENPAIR_FILTER, PercentageEigenPairFilter.class);
params.addParameter(PercentageEigenPairFilter.ALPHA_ID, 0.8);
COPAC<DoubleVector, DoubleDistance> copac = ClassGenericsUtil.parameterizeOrAbort(COPAC.class, params);
testParameterizationOk(params);
Clustering<Model> result = copac.run(db);