### Question:
BigDecimalCombiner extends TypedValueCombiner<BigDecimal> { @Override public void init(SortedKeyValueIterator<Key,Value> source, Map<String,String> options, IteratorEnvironment env) throws IOException { super.init(source, options, env); setEncoder(BDE); }  @Override void init(SortedKeyValueIterator<Key,Value> source, Map<String,String> options,
      IteratorEnvironment env); @Override IteratorOptions describeOptions(); @Override boolean validateOptions(Map<String,String> options);  }### Answer:
@Test public void testSums() throws IOException { ai = new BigDecimalCombiner.BigDecimalSummingCombiner(); IteratorSetting is = new IteratorSetting(1, BigDecimalCombiner.BigDecimalSummingCombiner.class); Combiner.setColumns(is, columns); ai.init(new SortedMapIterator(tm1), is.getOptions(), CombinerTest.SCAN_IE); ai.seek(new Range(), EMPTY_COL_FAMS, false); assertTrue(ai.hasTop()); assertEquals(CombinerTest.newKey(1, 1, 1, 3), ai.getTopKey()); assertEquals(-9.7, encoder.decode(ai.getTopValue().get()).doubleValue(), delta); verify(); }
@Test public void testMin() throws IOException { ai = new BigDecimalCombiner.BigDecimalMinCombiner(); IteratorSetting is = new IteratorSetting(1, BigDecimalCombiner.BigDecimalMinCombiner.class); Combiner.setColumns(is, columns); ai.init(new SortedMapIterator(tm1), is.getOptions(), CombinerTest.SCAN_IE); ai.seek(new Range(), EMPTY_COL_FAMS, false); assertTrue(ai.hasTop()); assertEquals(CombinerTest.newKey(1, 1, 1, 3), ai.getTopKey()); assertEquals(-14.0, encoder.decode(ai.getTopValue().get()).doubleValue(), delta); verify(); }
@Test public void testMax() throws IOException { ai = new BigDecimalCombiner.BigDecimalMaxCombiner(); IteratorSetting is = new IteratorSetting(1, BigDecimalCombiner.BigDecimalMaxCombiner.class); Combiner.setColumns(is, columns); ai.init(new SortedMapIterator(tm1), is.getOptions(), CombinerTest.SCAN_IE); ai.seek(new Range(), EMPTY_COL_FAMS, false); assertTrue(ai.hasTop()); assertEquals(CombinerTest.newKey(1, 1, 1, 3), ai.getTopKey()); assertEquals(2.3, encoder.decode(ai.getTopValue().get()).doubleValue(), delta); verify(); }