@Test(dataProvider = "doubleVectorDataVector")
public void ofDoubleVectorVector(final DoubleRange[] domain) {

	final Codec<double[], DoubleGene> codec = Codecs.ofVector(domain);
	final Genotype<DoubleGene> gt = codec.encoding().newInstance();
	assertEquals(gt.length(), domain.length);
	for (int i = 0; i < gt.length(); ++i) {
		final Chromosome<DoubleGene> ch = gt.get(i);
		assertEquals(ch.length(), 1);
		final DoubleGene gene = ch.gene();
		assertEquals(gene.min().doubleValue(), domain[i].min());
		assertEquals(gene.max().doubleValue(), domain[i].max());
	}
	final Function<Genotype<DoubleGene>, double[]> f = codec.decoder();
	final double[] value = f.apply(gt);
	assertEquals(value.length, domain.length);
	for (int i = 0; i < domain.length; ++i) {
		assertEquals(gt.get(i).get(0).doubleValue(), value[i]);
	}
}