@Test
 public void testApply_notUnique() {
   Generator<String> source = new SequenceTestGenerator<String>("A", "B");
   source.init(new DefaultBeneratorContext());
   Generator<String> generator = fcn.applyTo(source, false);
   generator.init(context);
   int n = 1000;
   Map<String, AtomicInteger> counts = super.countProducts(generator, n);
   assertEquals(2, counts.size());
   assertTrue(counts.get("A").doubleValue() > counts.get("B").doubleValue());
 }
 @Test
 public void testCreateDoubleGenerator_notUnique() {
   Generator<Double> generator = fcn.createNumberGenerator(Double.class, 1., 2., 0.5, false);
   generator.init(context);
   int n = 2000;
   Map<Double, AtomicInteger> counts = super.countProducts(generator, n);
   assertEquals(3, counts.size());
   int lastCount = n + 1;
   for (double d = 1; d <= 2; d += 0.5) {
     int count = counts.get(d).intValue();
     assertTrue(count < lastCount);
     lastCount = count;
   }
 }
 @Test(expected = IllegalArgumentException.class)
 public void testApply_unique() {
   Generator<String> source = new SequenceTestGenerator<String>("A", "B");
   source.init(new DefaultBeneratorContext());
   fcn.applyTo(source, true);
 }
 @Test(expected = IllegalArgumentException.class)
 public void testCreateDoubleGenerator_unique() {
   fcn.createNumberGenerator(Double.class, 1., 4., 0.5, true);
 }