@Test
public void testGeodesicAreaForPolygonWithHoles() throws
                                                  Exception {

    // when computing the geodesic area of a given Polygon with holes
    final double areaWithHole = getGeodesicArea(createPolygon(gf,
                                                              createLinearRing(gf,
                                                                               createCoordinate(gf,
                                                                                                47.226257d,
                                                                                                -1.554564d),
                                                                               createCoordinate(gf,
                                                                                                47.226295d,
                                                                                                -1.554202d),
                                                                               createCoordinate(gf,
                                                                                                47.226075d,
                                                                                                -1.554169d),
                                                                               createCoordinate(gf,
                                                                                                47.226049d,
                                                                                                -1.554496d),
                                                                               createCoordinate(gf,
                                                                                                47.226257d,
                                                                                                -1.554564d)),
                                                              createLinearRing(gf,
                                                                               createCoordinate(gf,
                                                                                                47.226219d,
                                                                                                -1.554430d),
                                                                               createCoordinate(gf,
                                                                                                47.226237d,
                                                                                                -1.554261d),
                                                                               createCoordinate(gf,
                                                                                                47.226122d,
                                                                                                -1.554245d),
                                                                               createCoordinate(gf,
                                                                                                47.226106d,
                                                                                                -1.554411d),
                                                                               createCoordinate(gf,
                                                                                                47.226219d,
                                                                                                -1.554430d))),
                                                true);
    // then the computed area should be roughly equals to 470m
    assertEquals(470d,
                 areaWithHole,
                 1d);
    // when computing the geodesic area of the same Polygon but without checking holes
    final double area = getGeodesicArea(createPolygon(gf,
                                                      createLinearRing(gf,
                                                                       createCoordinate(gf,
                                                                                        47.226257d,
                                                                                        -1.554564d),
                                                                       createCoordinate(gf,
                                                                                        47.226295d,
                                                                                        -1.554202d),
                                                                       createCoordinate(gf,
                                                                                        47.226075d,
                                                                                        -1.554169d),
                                                                       createCoordinate(gf,
                                                                                        47.226049d,
                                                                                        -1.554496d),
                                                                       createCoordinate(gf,
                                                                                        47.226257d,
                                                                                        -1.554564d)),
                                                      createLinearRing(gf,
                                                                       createCoordinate(gf,
                                                                                        47.226219d,
                                                                                        -1.554430d),
                                                                       createCoordinate(gf,
                                                                                        47.226237d,
                                                                                        -1.554261d),
                                                                       createCoordinate(gf,
                                                                                        47.226122d,
                                                                                        -1.554245d),
                                                                       createCoordinate(gf,
                                                                                        47.226106d,
                                                                                        -1.554411d),
                                                                       createCoordinate(gf,
                                                                                        47.226219d,
                                                                                        -1.554430d))),
                                        false);
    // then the computed area should be roughly equals to 634m
    assertEquals(634d,
                 area,
                 1d);
}