package org.esa.beam.dataio.smos;
import org.junit.Test;
import java.awt.geom.Rectangle2D;
import static org.junit.Assert.assertEquals;
public class DggUtilsTest {
@Test
public void testCreateTileRectangle() {
Rectangle2D rectangle = DggUtils.createTileRectangle(0, 0);
assertEquals(-180.0, rectangle.getX(), 1e-8);
assertEquals(78.75, rectangle.getY(), 1e-8);
assertEquals(11.25, rectangle.getWidth(), 1e-8);
assertEquals(11.25, rectangle.getHeight(), 1e-8);
rectangle = DggUtils.createTileRectangle(31, 0);
assertEquals(168.75, rectangle.getX(), 1e-8);
assertEquals(78.75, rectangle.getY(), 1e-8);
assertEquals(11.25, rectangle.getWidth(), 1e-8);
assertEquals(11.25, rectangle.getHeight(), 1e-8);
rectangle = DggUtils.createTileRectangle(31, 15);
assertEquals(168.75, rectangle.getX(), 1e-8);
assertEquals(-90.0, rectangle.getY(), 1e-8);
assertEquals(11.25, rectangle.getWidth(), 1e-8);
assertEquals(11.25, rectangle.getHeight(), 1e-8);
}
@Test
public void testCreateGridPointRectangle() {
final Rectangle2D rectangle = DggUtils.createGridPointRectangle(34, -10);
assertEquals(33.98, rectangle.getX(), 1e-8);
assertEquals(-10.01, rectangle.getY(), 1e-8);
assertEquals(0.04, rectangle.getWidth(), 1e-8);
assertEquals(0.02, rectangle.getHeight(), 1e-8);
}
@Test
public void testCreateGridPointRectangle_lonCrossesAntiMeridian() {
Rectangle2D rectangle = DggUtils.createGridPointRectangle(-181, 19);
assertEquals(-180.0, rectangle.getX(), 1e-8);
assertEquals(18.99, rectangle.getY(), 1e-8);
assertEquals(0.04, rectangle.getWidth(), 1e-8);
assertEquals(0.02, rectangle.getHeight(), 1e-8);
rectangle = DggUtils.createGridPointRectangle(179.99, 20);
assertEquals(179.93, rectangle.getX(), 1e-8);
assertEquals(19.99, rectangle.getY(), 1e-8);
assertEquals(0.04, rectangle.getWidth(), 1e-8);
assertEquals(0.02, rectangle.getHeight(), 1e-8);
}
@Test
public void testCreateGridPointRectangle_latBeyondPole() {
Rectangle2D rectangle = DggUtils.createGridPointRectangle(35, -90.2);
assertEquals(34.98, rectangle.getX(), 1e-8);
assertEquals(-90.0, rectangle.getY(), 1e-8);
assertEquals(0.04, rectangle.getWidth(), 1e-8);
assertEquals(0.02, rectangle.getHeight(), 1e-8);
rectangle = DggUtils.createGridPointRectangle(36, 90.0);
assertEquals(35.98, rectangle.getX(), 1e-8);
assertEquals(89.97, rectangle.getY(), 1e-8);
assertEquals(0.04, rectangle.getWidth(), 1e-8);
assertEquals(0.02, rectangle.getHeight(), 1e-8);
}
}