/** * Calculate count (using FeatureCalc) - only one parameter is used. * * @param collection collection to calculate the count * @return An object containing the count value of the attributes * @throws IllegalFilterException * @throws IOException */ static CalcResult calculateCount(SimpleFeatureCollection collection) throws IllegalFilterException, IOException { CountVisitor countVisitor = new CountVisitor(); collection.accepts(countVisitor, null); return countVisitor.getResult(); }
public void testBadMerge() throws IllegalFilterException, IOException { // count + max = boom! CountVisitor countVisitor = new CountVisitor(); countVisitor.setValue(8); CalcResult countResult = countVisitor.getResult(); MaxVisitor maxVisitor = new MaxVisitor((Expression) null); maxVisitor.setValue(new Double(99)); CalcResult maxResult = maxVisitor.getResult(); try { CalcResult boomResult = maxResult.merge(countResult); fail(); // merge should throw an exception } catch (Exception e) { assertEquals("Parameter is not a compatible type", e.getMessage()); } }
fc2.accepts(countVisitor2, null); int value1 = countVisitor.getResult().toInt(); assertEquals(3, value1); int value2 = countVisitor2.getResult().toInt(); assertEquals(2, value2); CalcResult countResult1 = countVisitor.getResult(); CalcResult countResult2 = countVisitor2.getResult(); CalcResult countResult3 = countResult1.merge(countResult2); assertEquals(5, countResult3.toInt()); CalcResult countResult4 = countVisitor.getResult(); assertEquals(20, countResult4.toInt()); assertEquals(CalcResult.NULL_RESULT, countVisitor.getResult()); assertSame(countResult2, countVisitor.getResult().merge(countResult2)); assertSame(countResult2, countResult2.merge(countVisitor.getResult()));
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); }
/** * Calculate count (using FeatureCalc) - only one parameter is used. * * @param collection * collection to calculate the count * * @return An object containing the count value of the attributes * * @throws IllegalFilterException * @throws IOException */ static CalcResult calculateCount(SimpleFeatureCollection collection) throws IllegalFilterException, IOException { CountVisitor countVisitor = new CountVisitor(); collection.accepts(countVisitor, null); return countVisitor.getResult(); }
/** * Calculate count (using FeatureCalc) - only one parameter is used. * * @param collection * collection to calculate the count * * @return An object containing the count value of the attributes * * @throws IllegalFilterException * @throws IOException */ public static CalcResult calculateCount(FeatureCollection collection) throws IllegalFilterException, IOException { CountVisitor countVisitor = new CountVisitor(); collection.accepts(countVisitor, null); return countVisitor.getResult(); }