APLCountMeanShiftSummarizer extends APLSummarizer { public void setMinMeanShift(double minMeanShift) { this.minMeanShift = minMeanShift; }  @Override List<String> getAggregateNames(); @Override AggregationOp[] getAggregationOps(); @Override int[][] getEncoded(List<String[]> columns, DataFrame input); @Override double[][] getAggregateColumns(DataFrame input); @Override List<QualityMetric> getQualityMetricList(); @Override List<Double> getThresholds(); @Override double getNumberOutliers(double[][] aggregates); void setMinMeanShift(double minMeanShift);  }
@Test public void testSummarize() throws Exception { assertEquals(9, df.getNumRows()); CountMeanShiftCubedClassifier pc = new CountMeanShiftCubedClassifier("count", "time", "meanLatency", "==", "1"); pc.process(df); DataFrame output = pc.getResults(); assertEquals(df.getNumRows(), output.getNumRows()); List<String> explanationAttributes = Arrays.asList( "location", "version", "language" ); APLCountMeanShiftSummarizer summ = new APLCountMeanShiftSummarizer(); summ.setMinSupport(.05); summ.setMinMeanShift(1.1); summ.setAttributes(explanationAttributes); summ.process(output); APLExplanation e = summ.getResults(); TestCase.assertEquals(3, e.getResults().size()); assertTrue(e.prettyPrint().contains("location=AUS")); assertTrue(e.prettyPrint().contains("version=v2")); assertTrue(e.prettyPrint().contains("language=ENG")); }