@Test
public void mean() {

	final double min = -Double.MAX_VALUE;
	final double max = Double.MAX_VALUE;
	final DoubleGene template = DoubleGene.of(min, max);
	for (int i = 1; i < 500; ++i) {
		final DoubleGene a = template.newInstance(i - 50.0);
		final DoubleGene b = template.newInstance((i - 100)*3.0);
		final DoubleGene c = a.mean(b);
		assertEquals(a.min().doubleValue(), min);
		assertEquals(a.max().doubleValue(), max);
		assertEquals(b.min().doubleValue(), min);
		assertEquals(b.max().doubleValue(), max);
		assertEquals(c.min().doubleValue(), min);
		assertEquals(c.max().doubleValue(), max);
		assertEquals(c.allele().doubleValue(), ((i - 50) + ((i - 100)*3))/2.0);
	}
}