DoubleGene implements
		NumericGene<Double, DoubleGene>,
		Mean<DoubleGene>,
		Comparable<DoubleGene>,
		Serializable { @Override public boolean isValid() { return Double.isFinite(_allele) && Double.isFinite(_min) && Double.isFinite(_max) && Double.compare(_allele, _min) >= 0 && Double.compare(_allele, _max) < 0; } private  DoubleGene(final double allele, final double min, final double max); @Override Double allele(); @Override Double min(); @Override Double max(); DoubleRange range(); @Override byte byteValue(); @Override short shortValue(); @Override int intValue(); @Override long longValue(); @Override float floatValue(); @Override double doubleValue(); @Override boolean isValid(); @Override int compareTo(final DoubleGene other); @Override DoubleGene mean(final DoubleGene that); DoubleGene newInstance(final double allele); @Override DoubleGene newInstance(final Double allele); @Override DoubleGene newInstance(final Number allele); @Override DoubleGene newInstance(); @Override int hashCode(); @Override boolean equals(final Object obj); @Override String toString(); static DoubleGene of(
		final double allele,
		final double min,
		final double max
	); static DoubleGene of(final double allele, final DoubleRange range); static DoubleGene of(final double min, final double max); static DoubleGene of(final DoubleRange range);  }
@Test(dataProvider = "validationData") public void isValid(final DoubleGene gene, final boolean valid) { Assert.assertEquals(gene.isValid(), valid); }