@Test
public void testDenseDefaults () throws Exception {
TileSerializer<List<Integer>> serializer = new PrimitiveArrayAvroSerializer<>(Integer.class, CodecFactory.nullCodec());
DenseTileData<List<Integer>> denseBase = new DenseTileData<List<Integer>>(new TileIndex(0, 0, 0, 2, 2), Arrays.asList(1, 2, 3));
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
serializer.serialize(denseBase, baos);
baos.flush();
baos.close();
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
TileData<List<Integer>> out = serializer.deserialize(denseBase.getDefinition(), bais);
Assert.assertTrue(out instanceof DenseTileData<?>);
List<Integer> baseDefault = denseBase.getDefaultValue();
List<Integer> readDefault = ((DenseTileData<List<Integer>>) out).getDefaultValue();
Assert.assertEquals(baseDefault.size(), readDefault.size());
for (int i=0; i<baseDefault.size(); ++i) {
Assert.assertEquals(baseDefault.get(i), readDefault.get(i));
}
}
}