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 FloatMappingTest extends TestBase {
@Test
public void testMapping() throws Exception {
getMorphia().map(Floats.class);
final Floats ent = new Floats();
ent.listWrapperArray.add(new Float[]{1.1f, 2.2f});
ent.listPrimitiveArray.add(new float[]{2.0f, 3.6f, 12.4f});
ent.listWrapper.addAll(Arrays.asList(1.1f, 2.2f));
ent.singlePrimitive = 100.0f;
ent.singleWrapper = 40.7f;
ent.primitiveArray = new float[]{5.0f, 93.5f};
ent.wrapperArray = new Float[]{55.7f, 16.2f, 99.9999f};
ent.nestedPrimitiveArray = new float[][]{{}, {5.0f, 93.5f}};
ent.nestedWrapperArray = new Float[][]{{55.7f, 16.2f, 99.9999f}, {}};
getDs().save(ent);
final Floats 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.0f);
Assert.assertEquals(ent.singlePrimitive, loaded.singlePrimitive, 0);
Assert.assertEquals(ent.singleWrapper, loaded.singleWrapper, 0);
Assert.assertArrayEquals(ent.primitiveArray, loaded.primitiveArray, 0.0f);
Assert.assertArrayEquals(ent.wrapperArray, loaded.wrapperArray);
Assert.assertArrayEquals(ent.nestedPrimitiveArray, loaded.nestedPrimitiveArray);
Assert.assertArrayEquals(ent.nestedWrapperArray, loaded.nestedWrapperArray);
}
private static class Floats {
private final List<Float[]> listWrapperArray = new ArrayList<Float[]>();
private final List<float[]> listPrimitiveArray = new ArrayList<float[]>();
private final List<Float> listWrapper = new ArrayList<Float>();
@Id
private ObjectId id;
private float singlePrimitive;
private Float singleWrapper;
private float[] primitiveArray;
private Float[] wrapperArray;
private float[][] nestedPrimitiveArray;
private Float[][] nestedWrapperArray;
}
}