@Test
  public void testVersionAndModelTransformation() {
    metadata.setModelTransformation(
        new double[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16});
    final List<TIFFField> list = Utils.createGeoTIFFFields(metadata);

    assertNotNull(list);
    assertEquals(2, list.size());

    final TIFFField dirField = list.get(0);
    assertEquals(GeoTIFFTagSet.TAG_GEO_KEY_DIRECTORY, dirField.getTag());
    assertEquals(TIFFField.TIFF_SHORT, dirField.getType());
    assertEquals(4, dirField.getCount());
    assertArrayEquals(new char[] {1, 1, 2, 0}, dirField.getAsChars());

    final TIFFField transformField = list.get(1);
    assertEquals(GeoTIFFTagSet.TAG_MODEL_TRANSFORMATION, transformField.getTag());
    assertEquals(TIFFField.TIFF_DOUBLE, transformField.getType());
    assertEquals(16, transformField.getCount());
    final double[] expected = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    assertEquals(true, Arrays.equals(expected, transformField.getAsDoubles()));
  }