public void testAreaInvalidPolygon() throws IllegalFilterException, IOException { SumAreaVisitor areaVisitor = new SumAreaVisitor(1, ft6); fc6.accepts(areaVisitor, null); double value1 = areaVisitor.getResult().toDouble(); assertEquals(0.0, value1); }
public void testArea() throws IllegalFilterException, IOException { SumAreaVisitor areaVisitor = new SumAreaVisitor(1, ft4); fc4.accepts(areaVisitor, null); SumAreaVisitor areaVisitor2 = new SumAreaVisitor(1, ft5); fc5.accepts(areaVisitor2, null); double value1 = areaVisitor.getResult().toDouble(); assertEquals(10.0, value1); double value2 = areaVisitor2.getResult().toDouble(); assertEquals(12.0, value2); CalcResult areaResult1 = areaVisitor.getResult(); CalcResult areaResult2 = areaVisitor2.getResult(); CalcResult areaResult3 = areaResult1.merge(areaResult2); assertEquals((double) 22.0, areaResult3.toDouble(), 0); }
return null; double standardDeviation = calcResult.toDouble(); if (standardDeviation == 0) { return new RangedClassifier(
public void testCountSumMerge() throws IllegalFilterException, IOException { CountVisitor countVisitor = new CountVisitor(); fc2.accepts(countVisitor, null); // count = 2 SumVisitor sumVisitor = new SumVisitor(3, ft2); fc2.accepts(sumVisitor, null); // sum = 7.5 CalcResult countResult = countVisitor.getResult(); CalcResult sumResult = sumVisitor.getResult(); CalcResult averageResult1 = countResult.merge(sumResult); CalcResult averageResult2 = sumResult.merge(countResult); // both average results were correct? assertEquals((double) 3.75, averageResult1.toDouble(), 0); assertEquals((double) 3.75, averageResult2.toDouble(), 0); // neither sum nor count was destroyed? assertEquals(2, countResult.toInt()); assertEquals((double) 7.5, sumResult.toDouble(), 0); }
CalcResult medianResult2 = medianVisitor2.getResult(); assertEquals(2, medianResult1.toInt()); assertEquals(1.5, medianResult2.toDouble(), 0); assertEquals(2, medianResult3.toDouble(), 0); CalcResult medianResult4 = new MedianResult(vals); CalcResult medianResult5 = medianResult4.merge(medianResult1); assertEquals(2.75, medianResult5.toDouble(), 0); assertEquals(3.5, medianResult4.toDouble(), 0);
assertEquals(3, value1); double value2 = maxVisitor2.getResult().toDouble(); assertEquals((double) 4.5, value2, 0); CalcResult maxResult2 = (MaxResult) maxVisitor2.getResult(); CalcResult maxResult3 = (MaxResult) maxResult1.merge(maxResult2); assertEquals((double) 4.5, maxResult3.toDouble(), 0); assertEquals(3, maxResult5.toDouble(), 0); assertEquals(2, maxResult4.toDouble(), 0); assertEquals(3, maxResult7.toDouble(), 0); assertEquals(-5, maxResult6.toDouble(), 0); assertEquals(544, maxResult7.toDouble(), 0); assertEquals(6453, maxResult7.toDouble(), 0); assertEquals(6453, maxResult7.toInt());
assertEquals(6, value1); double value2 = sumVisitor2.getResult().toDouble(); assertEquals((double) 7.5, value2, 0); CalcResult sumResult2 = sumVisitor2.getResult(); CalcResult sumResult3 = sumResult1.merge(sumResult2); assertEquals((double) 13.5, sumResult3.toDouble(), 0); assertEquals(-28.5, sumResult5.toDouble(), 0); assertEquals(13.5, sumResult3.toDouble(), 0); assertEquals(-42.0, sumResult4.toDouble(), 0);
assertEquals(2, value1); double value2 = averageVisitor2.getResult().toDouble(); assertEquals((double) 3.75, value2, 0); CalcResult averageResult2 = averageVisitor2.getResult(); CalcResult averageResult3 = averageResult1.merge(averageResult2); assertEquals((double) 2.7, averageResult3.toDouble(), 0); assertEquals((double) 3.75, averageResult2.toDouble(), 0); assertEquals(20, averageResult2.toInt()); averageResult3 = averageResult1.merge(averageResult2); assertEquals((double) 13.25, averageResult3.toDouble(), 0); averageVisitor2.setValue(new Double(15.4)); // un-mergeable optimization averageResult2 = averageVisitor2.getResult(); assertEquals((double) 15.4, averageResult2.toDouble(), 0); try { averageResult3 = averageResult1.merge(averageResult2); averageResult2 = averageVisitor2.getResult(); assertEquals((double) 4.33, averageResult3.toDouble(), 0);
public void testSum() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); SumVisitor v = new MySumVisitor(p); dataStore.getFeatureSource(tname("ft1")).accepts(Query.ALL, v, null); assertFalse(visited); assertEquals(3.3, v.getResult().toDouble(), 0.01); }
public void testMin() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); MinVisitor v = new MyMinVisitor(p); dataStore.getFeatureSource(tname("ft1")).accepts(Query.ALL, v, null); assertFalse(visited); assertEquals(0.0, v.getResult().toDouble(), 0.01); }
public void testMax() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); MaxVisitor v = new MyMaxVisitor(p); dataStore.getFeatureSource(tname("ft1")).accepts(Query.ALL, v, null); assertFalse(visited); assertEquals(2.2, v.getResult().toDouble(), 0.01); }
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())); }
public void testSumArea() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("geom")); SumAreaVisitor v = new MySumAreaVisitor(p); dataStore.getFeatureSource(tname("aggregate")).accepts(Query.ALL, v, null); assertEquals( visited, !dataStore.getFilterCapabilities().supports(FilterFunction_area.class)); assertEquals(30.0, v.getResult().toDouble(), 0.01); }
public void testMaxWithFilter() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); MaxVisitor v = new MyMaxVisitor(p); Filter f = ff.less(ff.property(aname("doubleProperty")), ff.literal(2)); Query q = new Query(tname("ft1"), f); dataStore.getFeatureSource(tname("ft1")).accepts(q, v, null); assertFalse(visited); assertEquals(1.1, v.getResult().toDouble(), 0.01); }
public void testSumWithFilter() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); SumVisitor v = new MySumVisitor(p); Filter f = ff.less(ff.property(aname("doubleProperty")), ff.literal(2)); Query q = new Query(tname("ft1"), f); dataStore.getFeatureSource(tname("ft1")).accepts(q, v, null); assertFalse(visited); assertEquals(1.1, v.getResult().toDouble(), 0.01); }
public void testMinWithFilter() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); MinVisitor v = new MyMinVisitor(p); Filter f = ff.greater(ff.property(aname("doubleProperty")), ff.literal(1)); Query q = new Query(tname("ft1"), f); dataStore.getFeatureSource(tname("ft1")).accepts(q, v, null); assertFalse(visited); assertEquals(1.1, v.getResult().toDouble(), 0.01); }
public void testMaxWithLimitOffset() throws Exception { if (!dataStore.getSQLDialect().isLimitOffsetSupported()) { return; } FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); MaxVisitor v = new MyMaxVisitor(p); Query q = new Query(tname("ft1")); q.setStartIndex(0); q.setMaxFeatures(2); dataStore.getFeatureSource(tname("ft1")).accepts(q, v, null); assertFalse(visited); assertEquals(1.1, v.getResult().toDouble(), 0.01); }
public void testSumWithLimitOffset() throws Exception { if (!dataStore.getSQLDialect().isLimitOffsetSupported()) { return; } FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); SumVisitor v = new MySumVisitor(p); Query q = new Query(tname("ft1")); q.setStartIndex(0); q.setMaxFeatures(2); dataStore.getFeatureSource(tname("ft1")).accepts(q, v, null); assertFalse(visited); assertEquals(1.1, v.getResult().toDouble(), 0.01); }
public void testMinWithLimitOffset() throws Exception { if (!dataStore.getSQLDialect().isLimitOffsetSupported()) { return; } FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); MinVisitor v = new MyMinVisitor(p); Query q = new Query(tname("ft1")); q.setStartIndex(0); q.setMaxFeatures(2); dataStore.getFeatureSource(tname("ft1")).accepts(q, v, null); assertFalse(visited); assertEquals(0.0, v.getResult().toDouble(), 0.01); }
minResult1 = minVisitor.getResult(); minResult7 = minResult7.merge(minResult1); assertEquals(-100.0, minResult7.toDouble(), 0); assertEquals(-100, minResult7.toInt());