@Test
 public void collectCharWithTarget() {
   CharHashBag target = new CharHashBag();
   CharHashBag result =
       this.newBag().collectChar((CharFunction<String>) string -> string.charAt(0), target);
   Assert.assertSame("Target sent as parameter not returned", target, result);
   Assert.assertEquals(this.numKeys(), result.sizeDistinct());
   for (int i = 1; i <= this.numKeys(); i++) {
     Assert.assertEquals(i, result.occurrencesOf((char) ((int) '0' + i)));
   }
 }
 @Override
 @Test
 public void collectChar() {
   MutableBag<Integer> integers = UnmodifiableBag.of(HashBag.newBagWith(1, 2, 2, 3, 3, 3));
   Assert.assertEquals(
       CharHashBag.newBagWith('A', 'B', 'B', 'C', 'C', 'C'),
       integers.collectChar(
           new CharFunction<Integer>() {
             public char charValueOf(Integer integer) {
               return (char) (integer.intValue() + 64);
             }
           }));
 }