diff options
Diffstat (limited to 'elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance')
11 files changed, 288 insertions, 68 deletions
diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestDBOutlierDetection.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/DBOutlierDetectionTest.java index 1c19366c..69ffff7d 100644 --- a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestDBOutlierDetection.java +++ b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/DBOutlierDetectionTest.java @@ -38,8 +38,9 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.ListParamet * Tests the DBOutlierDetection algorithm. * * @author Lucia Cichella + * @since 0.4.0 */ -public class TestDBOutlierDetection extends AbstractSimpleAlgorithmTest implements JUnit4Test { +public class DBOutlierDetectionTest extends AbstractSimpleAlgorithmTest implements JUnit4Test { @Test public void testDBOutlierDetection() { Database db = makeSimpleDatabase(UNITTEST + "outlier-fire.ascii", 1025); diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestDBOutlierScore.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/DBOutlierScoreTest.java index 47fd73bf..cb70cabe 100644 --- a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestDBOutlierScore.java +++ b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/DBOutlierScoreTest.java @@ -38,8 +38,9 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.ListParamet * Tests the DBOutlierScore algorithm. * * @author Lucia Cichella + * @since 0.4.0 */ -public class TestDBOutlierScore extends AbstractSimpleAlgorithmTest implements JUnit4Test { +public class DBOutlierScoreTest extends AbstractSimpleAlgorithmTest implements JUnit4Test { @Test public void testDBOutlierScore() { Database db = makeSimpleDatabase(UNITTEST + "outlier-fire.ascii", 1025); diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/HilOutTest.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/HilOutTest.java new file mode 100644 index 00000000..e1cd3a53 --- /dev/null +++ b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/HilOutTest.java @@ -0,0 +1,62 @@ +package de.lmu.ifi.dbs.elki.algorithm.outlier.distance; + +/* + This file is part of ELKI: + Environment for Developing KDD-Applications Supported by Index-Structures + + Copyright (C) 2015 + Ludwig-Maximilians-Universität München + Lehr- und Forschungseinheit für Datenbanksysteme + ELKI Development Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +import org.junit.Test; + +import de.lmu.ifi.dbs.elki.JUnit4Test; +import de.lmu.ifi.dbs.elki.algorithm.AbstractSimpleAlgorithmTest; +import de.lmu.ifi.dbs.elki.data.DoubleVector; +import de.lmu.ifi.dbs.elki.database.Database; +import de.lmu.ifi.dbs.elki.result.outlier.OutlierResult; +import de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil; +import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.ListParameterization; + +/** + * Tests the KNNWeightOutlier algorithm. + * + * @author Erich Schubert + * @since 0.4.0 + */ +public class HilOutTest extends AbstractSimpleAlgorithmTest implements JUnit4Test { + @Test + public void testHilOut() { + Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); + + // Parameterization + ListParameterization params = new ListParameterization(); + params.addParameter(HilOut.Parameterizer.K_ID, 4); + params.addParameter(HilOut.Parameterizer.N_ID, 200); + + // setup Algorithm + HilOut<DoubleVector> hilout = ClassGenericsUtil.parameterizeOrAbort(HilOut.class, params); + testParameterizationOk(params); + + // run KNNWeightOutlier on database + OutlierResult result = hilout.run(db); + + testAUC(db, "Noise", result, 0.985398148); + testSingleScore(result, 945, 1.70927657); + } +}
\ No newline at end of file diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestKNNOutlier.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/KNNOutlierTest.java index b7ac1bd8..2720ff28 100644 --- a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestKNNOutlier.java +++ b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/KNNOutlierTest.java @@ -38,8 +38,9 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.ListParamet * Tests the KNNOutlier algorithm. * * @author Lucia Cichella + * @since 0.4.0 */ -public class TestKNNOutlier extends AbstractSimpleAlgorithmTest implements JUnit4Test { +public class KNNOutlierTest extends AbstractSimpleAlgorithmTest implements JUnit4Test { @Test public void testKNNOutlier() { Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestKNNWeightOutlier.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/KNNWeightOutlierTest.java index 73f5db45..cb72b9d7 100644 --- a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestKNNWeightOutlier.java +++ b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/KNNWeightOutlierTest.java @@ -38,8 +38,9 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.ListParamet * Tests the KNNWeightOutlier algorithm. * * @author Lucia Cichella + * @since 0.4.0 */ -public class TestKNNWeightOutlier extends AbstractSimpleAlgorithmTest implements JUnit4Test { +public class KNNWeightOutlierTest extends AbstractSimpleAlgorithmTest implements JUnit4Test { @Test public void testKNNWeightOutlier() { Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestLocalIsolationCoefficient.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/LocalIsolationCoefficientTest.java index c49beb5f..f781ed28 100644 --- a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestLocalIsolationCoefficient.java +++ b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/LocalIsolationCoefficientTest.java @@ -37,8 +37,9 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.ListParamet * Tests the LocalIsolationCoefficient algorithm. * * @author Erich Schubert + * @since 0.4.0 */ -public class TestLocalIsolationCoefficient extends AbstractSimpleAlgorithmTest implements JUnit4Test { +public class LocalIsolationCoefficientTest extends AbstractSimpleAlgorithmTest implements JUnit4Test { @Test public void testLocalIsolationCoefficient() { Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/ODINTest.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/ODINTest.java new file mode 100644 index 00000000..1186bcac --- /dev/null +++ b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/ODINTest.java @@ -0,0 +1,61 @@ +package de.lmu.ifi.dbs.elki.algorithm.outlier.distance; + +/* + This file is part of ELKI: + Environment for Developing KDD-Applications Supported by Index-Structures + + Copyright (C) 2015 + Ludwig-Maximilians-Universität München + Lehr- und Forschungseinheit für Datenbanksysteme + ELKI Development Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +import org.junit.Test; + +import de.lmu.ifi.dbs.elki.JUnit4Test; +import de.lmu.ifi.dbs.elki.algorithm.AbstractSimpleAlgorithmTest; +import de.lmu.ifi.dbs.elki.data.DoubleVector; +import de.lmu.ifi.dbs.elki.database.Database; +import de.lmu.ifi.dbs.elki.result.outlier.OutlierResult; +import de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil; +import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.ListParameterization; + +/** + * Tests the ODIN algorithm. + * + * @author Erich Schubert + * @since 0.4.0 + */ +public class ODINTest extends AbstractSimpleAlgorithmTest implements JUnit4Test { + @Test + public void testODIN() { + Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); + + // Parameterization + ListParameterization params = new ListParameterization(); + params.addParameter(ODIN.Parameterizer.K_ID, 10); + + // setup Algorithm + ODIN<DoubleVector> odin = ClassGenericsUtil.parameterizeOrAbort(ODIN.class, params); + testParameterizationOk(params); + + // run KNNOutlier on database + OutlierResult result = odin.run(db); + + testSingleScore(result, 945, 0.7); + testAUC(db, "Noise", result, 0.9142037037); + } +}
\ No newline at end of file diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/ReferenceBasedOutlierDetectionTest.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/ReferenceBasedOutlierDetectionTest.java new file mode 100644 index 00000000..d9b96d09 --- /dev/null +++ b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/ReferenceBasedOutlierDetectionTest.java @@ -0,0 +1,151 @@ +package de.lmu.ifi.dbs.elki.algorithm.outlier.distance; + +/* + This file is part of ELKI: + Environment for Developing KDD-Applications Supported by Index-Structures + + Copyright (C) 2015 + Ludwig-Maximilians-Universität München + Lehr- und Forschungseinheit für Datenbanksysteme + ELKI Development Team + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +import org.junit.Test; + +import de.lmu.ifi.dbs.elki.JUnit4Test; +import de.lmu.ifi.dbs.elki.algorithm.AbstractSimpleAlgorithmTest; +import de.lmu.ifi.dbs.elki.database.Database; +import de.lmu.ifi.dbs.elki.result.outlier.OutlierResult; +import de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil; +import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.ListParameterization; +import de.lmu.ifi.dbs.elki.utilities.referencepoints.AxisBasedReferencePoints; +import de.lmu.ifi.dbs.elki.utilities.referencepoints.GridBasedReferencePoints; +import de.lmu.ifi.dbs.elki.utilities.referencepoints.RandomGeneratedReferencePoints; +import de.lmu.ifi.dbs.elki.utilities.referencepoints.RandomSampleReferencePoints; +import de.lmu.ifi.dbs.elki.utilities.referencepoints.StarBasedReferencePoints; + +/** + * Tests the ReferenceBasedOutlierDetection algorithm. + * + * @author Lucia Cichella + * @author Erich Schubert + * @since 0.4.0 + */ +public class ReferenceBasedOutlierDetectionTest extends AbstractSimpleAlgorithmTest implements JUnit4Test { + @Test + public void testReferenceBasedOutlierDetection() { + Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); + + // Parameterization + ListParameterization params = new ListParameterization(); + params.addParameter(ReferenceBasedOutlierDetection.Parameterizer.K_ID, 11); + params.addParameter(GridBasedReferencePoints.Parameterizer.GRID_ID, 3); + + // setup Algorithm + ReferenceBasedOutlierDetection referenceBasedOutlierDetection = ClassGenericsUtil.parameterizeOrAbort(ReferenceBasedOutlierDetection.class, params); + testParameterizationOk(params); + + // run ReferenceBasedOutlierDetection on database + OutlierResult result = referenceBasedOutlierDetection.run(db); + + testAUC(db, "Noise", result, 0.9693703703703); + testSingleScore(result, 945, 0.933574455); + } + + @Test + public void testReferenceBasedOutlierDetectionStar() { + Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); + + // Parameterization + ListParameterization params = new ListParameterization(); + params.addParameter(ReferenceBasedOutlierDetection.Parameterizer.K_ID, 11); + params.addParameter(ReferenceBasedOutlierDetection.Parameterizer.REFP_ID, StarBasedReferencePoints.class); + + // setup Algorithm + ReferenceBasedOutlierDetection referenceBasedOutlierDetection = ClassGenericsUtil.parameterizeOrAbort(ReferenceBasedOutlierDetection.class, params); + testParameterizationOk(params); + + // run ReferenceBasedOutlierDetection on database + OutlierResult result = referenceBasedOutlierDetection.run(db); + + testAUC(db, "Noise", result, 0.910722222); + testSingleScore(result, 945, 0.920950222); + } + + @Test + public void testReferenceBasedOutlierDetectionAxis() { + Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); + + // Parameterization + ListParameterization params = new ListParameterization(); + params.addParameter(ReferenceBasedOutlierDetection.Parameterizer.K_ID, 11); + params.addParameter(ReferenceBasedOutlierDetection.Parameterizer.REFP_ID, AxisBasedReferencePoints.class); + + // setup Algorithm + ReferenceBasedOutlierDetection referenceBasedOutlierDetection = ClassGenericsUtil.parameterizeOrAbort(ReferenceBasedOutlierDetection.class, params); + testParameterizationOk(params); + + // run ReferenceBasedOutlierDetection on database + OutlierResult result = referenceBasedOutlierDetection.run(db); + + testAUC(db, "Noise", result, 0.8110555); + testSingleScore(result, 945, 0.9523053); + } + + @Test + public void testReferenceBasedOutlierDetectionGenerated() { + Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); + + // Parameterization + ListParameterization params = new ListParameterization(); + params.addParameter(ReferenceBasedOutlierDetection.Parameterizer.K_ID, 11); + params.addParameter(ReferenceBasedOutlierDetection.Parameterizer.REFP_ID, RandomGeneratedReferencePoints.class); + params.addParameter(RandomGeneratedReferencePoints.Parameterizer.N_ID, 15); + params.addParameter(RandomGeneratedReferencePoints.Parameterizer.RANDOM_ID, 0); + + // setup Algorithm + ReferenceBasedOutlierDetection referenceBasedOutlierDetection = ClassGenericsUtil.parameterizeOrAbort(ReferenceBasedOutlierDetection.class, params); + testParameterizationOk(params); + + // run ReferenceBasedOutlierDetection on database + OutlierResult result = referenceBasedOutlierDetection.run(db); + + testAUC(db, "Noise", result, 0.817407407); + testSingleScore(result, 945, 0.911353060); + } + + @Test + public void testReferenceBasedOutlierDetectionSample() { + Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); + + // Parameterization + ListParameterization params = new ListParameterization(); + params.addParameter(ReferenceBasedOutlierDetection.Parameterizer.K_ID, 11); + params.addParameter(ReferenceBasedOutlierDetection.Parameterizer.REFP_ID, RandomSampleReferencePoints.class); + params.addParameter(RandomSampleReferencePoints.Parameterizer.N_ID, 15); + params.addParameter(RandomSampleReferencePoints.Parameterizer.RANDOM_ID, 0); + + // setup Algorithm + ReferenceBasedOutlierDetection referenceBasedOutlierDetection = ClassGenericsUtil.parameterizeOrAbort(ReferenceBasedOutlierDetection.class, params); + testParameterizationOk(params); + + // run ReferenceBasedOutlierDetection on database + OutlierResult result = referenceBasedOutlierDetection.run(db); + + testAUC(db, "Noise", result, 0.848472222); + testSingleScore(result, 945, 0.894389944); + } +}
\ No newline at end of file diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestReferenceBasedOutlierDetection.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestReferenceBasedOutlierDetection.java deleted file mode 100644 index de0991d0..00000000 --- a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/TestReferenceBasedOutlierDetection.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.lmu.ifi.dbs.elki.algorithm.outlier.distance; - -/* - This file is part of ELKI: - Environment for Developing KDD-Applications Supported by Index-Structures - - Copyright (C) 2015 - Ludwig-Maximilians-Universität München - Lehr- und Forschungseinheit für Datenbanksysteme - ELKI Development Team - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -import org.junit.Test; - -import de.lmu.ifi.dbs.elki.JUnit4Test; -import de.lmu.ifi.dbs.elki.algorithm.AbstractSimpleAlgorithmTest; -import de.lmu.ifi.dbs.elki.database.Database; -import de.lmu.ifi.dbs.elki.result.outlier.OutlierResult; -import de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil; -import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.ListParameterization; -import de.lmu.ifi.dbs.elki.utilities.referencepoints.GridBasedReferencePoints; - -/** - * Tests the ReferenceBasedOutlierDetection algorithm. - * - * @author Lucia Cichella - */ -public class TestReferenceBasedOutlierDetection extends AbstractSimpleAlgorithmTest implements JUnit4Test { - @Test - public void testReferenceBasedOutlierDetection() { - Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); - - // Parameterization - ListParameterization params = new ListParameterization(); - params.addParameter(ReferenceBasedOutlierDetection.Parameterizer.K_ID, 11); - params.addParameter(GridBasedReferencePoints.Parameterizer.GRID_ID, 3); - - // setup Algorithm - ReferenceBasedOutlierDetection referenceBasedOutlierDetection = ClassGenericsUtil.parameterizeOrAbort(ReferenceBasedOutlierDetection.class, params); - testParameterizationOk(params); - - // run ReferenceBasedOutlierDetection on database - OutlierResult result = referenceBasedOutlierDetection.run(db); - - testAUC(db, "Noise", result, 0.9418148148); - testSingleScore(result, 945, 0.87173403699); - } -}
\ No newline at end of file diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/parallel/TestParallelKNNOutlier.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/parallel/ParallelKNNOutlierTest.java index 3dfe5664..455f5730 100644 --- a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/parallel/TestParallelKNNOutlier.java +++ b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/parallel/ParallelKNNOutlierTest.java @@ -38,8 +38,9 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.ListParamet * Tests the KNNOutlier algorithm. * * @author Lucia Cichella + * @since 0.4.0 */ -public class TestParallelKNNOutlier extends AbstractSimpleAlgorithmTest implements JUnit4Test { +public class ParallelKNNOutlierTest extends AbstractSimpleAlgorithmTest implements JUnit4Test { @Test public void testKNNOutlier() { Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); diff --git a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/parallel/TestParallelKNNWeightOutlier.java b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/parallel/ParallelKNNWeightOutlierTest.java index 7391bfed..1c298214 100644 --- a/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/parallel/TestParallelKNNWeightOutlier.java +++ b/elki/src/test/java/de/lmu/ifi/dbs/elki/algorithm/outlier/distance/parallel/ParallelKNNWeightOutlierTest.java @@ -38,8 +38,9 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.ListParamet * Tests the KNNWeightOutlier algorithm. * * @author Lucia Cichella + * @since 0.4.0 */ -public class TestParallelKNNWeightOutlier extends AbstractSimpleAlgorithmTest implements JUnit4Test { +public class ParallelKNNWeightOutlierTest extends AbstractSimpleAlgorithmTest implements JUnit4Test { @Test public void testKNNWeightOutlier() { Database db = makeSimpleDatabase(UNITTEST + "outlier-3d-3clusters.ascii", 960); |