public void testQuantileList() throws Exception { FilterFactory factory = CommonFactoryFinder.getFilterFactory(null); Expression expr = factory.property(ft.getDescriptor(0).getLocalName()); QuantileListVisitor visitor = new QuantileListVisitor(expr, 2); fc.accepts(visitor, null); CalcResult result = visitor.getResult(); List[] qResult = (List[]) result.getValue(); assertEquals(2, qResult.length); assertEquals(2, qResult[0].size()); assertEquals(1, qResult[1].size()); // test empty collection QuantileListVisitor emptyVisitor = new QuantileListVisitor(expr, 2); empty.accepts(emptyVisitor, null); assertEquals(CalcResult.NULL_RESULT, emptyVisitor.getResult()); // test merge assertSame(result, emptyVisitor.getResult().merge(result)); assertSame(result, result.merge(emptyVisitor.getResult())); }
assertEquals(CalcResult.NULL_RESULT, uniqueVisitor.getResult()); assertSame(uniqueResult2, uniqueVisitor.getResult().merge(uniqueResult2)); assertSame(uniqueResult2, uniqueResult2.merge(uniqueVisitor.getResult()));
assertEquals(CalcResult.NULL_RESULT, medianVisitor1.getResult()); assertSame(medianResult2, medianVisitor1.getResult().merge(medianResult2)); assertSame(medianResult2, medianResult2.merge(medianVisitor1.getResult()));
public void testBounds() throws IOException { BoundsVisitor boundsVisitor1 = new BoundsVisitor(); fc.accepts(boundsVisitor1, null); BoundsVisitor boundsVisitor2 = new BoundsVisitor(); fc2.accepts(boundsVisitor2, null); Envelope env1 = new Envelope(1, 5, 0, 4); CalcResult boundsResult1 = boundsVisitor1.getResult(); assertEquals(env1, boundsResult1.toEnvelope()); Envelope env2 = new Envelope(4, 13, 3, 10); CalcResult boundsResult2 = boundsVisitor2.getResult(); assertEquals(env2, boundsResult2.toEnvelope()); CalcResult boundsResult3 = boundsResult2.merge(boundsResult1); Envelope env3 = new Envelope(1, 13, 0, 10); assertEquals(env3, boundsResult3.toEnvelope()); // test empty collection boundsVisitor1.reset(null); empty.accepts(boundsVisitor1, null); assertEquals(CalcResult.NULL_RESULT, boundsVisitor1.getResult()); // test merge assertSame(boundsResult2, boundsVisitor1.getResult().merge(boundsResult2)); assertSame(boundsResult2, boundsResult2.merge(boundsVisitor1.getResult())); }
public void testStandardDeviation() throws Exception { FilterFactory factory = CommonFactoryFinder.getFilterFactory(null); Expression expr = factory.property(ft3.getDescriptor(0).getLocalName()); // first do it the old fashioned way to ensure backwards compatibility AverageVisitor visit1 = new AverageVisitor(expr); fc3.accepts(visit1, null); CalcResult result = visit1.getResult(); double average = result.toDouble(); StandardDeviationVisitor visit2 = new StandardDeviationVisitor(expr, average); fc3.accepts(visit2, null); assertEquals(28.86, visit2.getResult().toDouble(), 0.01); // then do it single pass StandardDeviationVisitor visit3 = new StandardDeviationVisitor(expr); fc3.accepts(visit3, null); assertEquals(28.86, visit3.getResult().toDouble(), 0.01); // test empty collection StandardDeviationVisitor emptyVisitor = new StandardDeviationVisitor(expr, average); empty.accepts(emptyVisitor, null); assertEquals(CalcResult.NULL_RESULT, emptyVisitor.getResult()); // test merge assertSame(result, emptyVisitor.getResult().merge(result)); assertSame(result, result.merge(emptyVisitor.getResult())); }
assertEquals(CalcResult.NULL_RESULT, averageVisitor.getResult()); assertSame(averageResult2, averageVisitor.getResult().merge(averageResult2)); assertSame(averageResult2, averageResult2.merge(averageVisitor.getResult()));
assertEquals(CalcResult.NULL_RESULT, maxVisitor.getResult()); assertSame(maxResult2, maxVisitor.getResult().merge(maxResult2)); assertSame(maxResult2, maxResult2.merge(maxVisitor.getResult()));
assertEquals(CalcResult.NULL_RESULT, minVisitor.getResult()); assertSame(minResult2, minVisitor.getResult().merge(minResult2)); assertSame(minResult2, minResult2.merge(minVisitor.getResult()));
assertEquals(CalcResult.NULL_RESULT, sumVisitor.getResult()); assertSame(sumResult2, sumVisitor.getResult().merge(sumResult2)); assertSame(sumResult2, sumResult2.merge(sumVisitor.getResult()));
assertEquals(CalcResult.NULL_RESULT, countVisitor.getResult()); assertSame(countResult2, countVisitor.getResult().merge(countResult2)); assertSame(countResult2, countResult2.merge(countVisitor.getResult()));