package org.esa.beam.smos.ee2netcdf;
import com.vividsolutions.jts.geom.Coordinate;
import org.esa.beam.framework.dataio.ProductSubsetDef;
import org.esa.beam.framework.gpf.annotations.OperatorMetadata;
import org.junit.Test;
import java.awt.*;
import java.io.File;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import static org.junit.Assert.*;
public class EEToNetCDFExporterOpTest {
@Test
public void testOperatorAnnotations() {
final Annotation[] declaredAnnotations = EEToNetCDFExporterOp.class.getDeclaredAnnotations();
assertEquals(1, declaredAnnotations.length);
final OperatorMetadata operatorMetadata = (OperatorMetadata) declaredAnnotations[0];
assertEquals("SmosEE2NetCDF", operatorMetadata.alias());
assertEquals("1.0", operatorMetadata.version());
assertEquals("Tom Block", operatorMetadata.authors());
assertEquals("(c) 2013, 2014 by Brockmann Consult", operatorMetadata.copyright());
assertEquals("Converts SMOS EE Products to NetCDF format.", operatorMetadata.description());
}
@Test
public void testGetOutputFile() {
final File input = new File("bla/bla/change_my_name.zip");
final File targetDir = new File("/target/di/rectory");
final File outputFile = EEToNetCDFExporterOp.getOutputFile(input, targetDir);
assertEquals("change_my_name.nc", outputFile.getName());
assertEquals(targetDir.getAbsolutePath(), outputFile.getParentFile().getAbsolutePath());
}
@Test
public void testCreateSubsetDef() {
final Rectangle rectangle = new Rectangle(0, 1, 3, 4);
final ProductSubsetDef subsetDef = EEToNetCDFExporterOp.createSubsetDef(rectangle);
assertNotNull(subsetDef);
final Rectangle subsetDefRegion = subsetDef.getRegion();
assertEquals(rectangle.toString(), subsetDefRegion.toString());
assertNull(subsetDef.getNodeNames());
assertEquals(1, subsetDef.getSubSamplingX());
assertEquals(1, subsetDef.getSubSamplingY());
}
@Test
public void testConvert() {
final ArrayList<double[]> rawCoords = new ArrayList<>();
rawCoords.add(new double[]{1.0, 2.0});
rawCoords.add(new double[]{3.0, 4.0});
rawCoords.add(new double[]{5.0, 6.0});
final Coordinate[] coordinates = EEToNetCDFExporterOp.convert(rawCoords);
assertNotNull(coordinates);
assertEquals(3, coordinates.length);
assertEquals(1.0, coordinates[0].x, 1e-8);
assertEquals(2.0, coordinates[0].y, 1e-8);
assertEquals(3.0, coordinates[1].x, 1e-8);
assertEquals(4.0, coordinates[1].y, 1e-8);
assertEquals(5.0, coordinates[2].x, 1e-8);
assertEquals(6.0, coordinates[2].y, 1e-8);
}
@Test
public void testAlias() {
assertEquals("SmosEE2NetCDF", EEToNetCDFExporterOp.ALIAS);
}
}