package org.mongodb.morphia.mapping.primitives; import org.bson.types.ObjectId; import org.junit.Assert; import org.junit.Test; import org.mongodb.morphia.TestBase; import org.mongodb.morphia.annotations.Id; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class DoubleMappingTest extends TestBase { @Test public void testMapping() throws Exception { getMorphia().map(Doubles.class); final Doubles ent = new Doubles(); ent.listWrapperArray.add(new Double[]{1.1, 2.2}); ent.listPrimitiveArray.add(new double[]{2.0, 3.6, 12.4}); ent.listWrapper.addAll(Arrays.asList(1.1, 2.2)); ent.singlePrimitive = 100.0; ent.singleWrapper = 40.7; ent.primitiveArray = new double[]{5.0, 93.5}; ent.wrapperArray = new Double[]{55.7, 16.2, 99.9999}; ent.nestedPrimitiveArray = new double[][]{{42.0, 49152.0}, {5.0, 93.5}}; ent.nestedWrapperArray = new Double[][]{{42.0, 49152.0}, {5.0, 93.5}}; getDs().save(ent); final Doubles loaded = getDs().get(ent); Assert.assertNotNull(loaded.id); Assert.assertArrayEquals(ent.listWrapperArray.get(0), loaded.listWrapperArray.get(0)); Assert.assertEquals(ent.listWrapper, loaded.listWrapper); Assert.assertArrayEquals(ent.listPrimitiveArray.get(0), loaded.listPrimitiveArray.get(0), 0.0); Assert.assertEquals(ent.singlePrimitive, loaded.singlePrimitive, 0); Assert.assertEquals(ent.singleWrapper, loaded.singleWrapper, 0); Assert.assertArrayEquals(ent.primitiveArray, loaded.primitiveArray, 0.0); Assert.assertArrayEquals(ent.wrapperArray, loaded.wrapperArray); Assert.assertArrayEquals(ent.nestedPrimitiveArray, loaded.nestedPrimitiveArray); Assert.assertArrayEquals(ent.nestedWrapperArray, loaded.nestedWrapperArray); } private static class Doubles { private final List<Double[]> listWrapperArray = new ArrayList<Double[]>(); private final List<double[]> listPrimitiveArray = new ArrayList<double[]>(); private final List<Double> listWrapper = new ArrayList<Double>(); @Id private ObjectId id; private double singlePrimitive; private Double singleWrapper; private double[] primitiveArray; private Double[] wrapperArray; private double[][] nestedPrimitiveArray; private Double[][] nestedWrapperArray; } }