@Test
public void testSparseDefaults () throws Exception {
TileSerializer<List<Integer>> serializer = new PrimitiveArrayAvroSerializer<>(Integer.class, CodecFactory.nullCodec());
SparseTileData<List<Integer>> sparseBase = new SparseTileData<List<Integer>>(new TileIndex(0, 0, 0, 2, 2), Arrays.asList(4, 5, 6));
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
serializer.serialize(sparseBase, baos);
baos.flush();
baos.close();
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
TileData<List<Integer>> out = serializer.deserialize(sparseBase.getDefinition(), bais);
Assert.assertTrue(out instanceof SparseTileData<?>);
List<Integer> baseDefault = sparseBase.getDefaultValue();
List<Integer> readDefault = ((SparseTileData<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));
}
}
}
}