package org.esa.beam.dataio.smos.dddb; import org.junit.Test; import java.util.ArrayList; import static org.junit.Assert.*; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class BandDescriptorImplTest { @Test public void testConstruction_standardPropertySet() { final String[] tokens = new String[] {"false", "theBand", "theMember", "18", "19", "20.0", "21.1", "22.2", "23.3", "true", "24.4", "pixelExpression", "unit", "description", "codingName", "flagDescriptors", "ancilliaryBandName"}; final Dddb dddb = mock(Dddb.class); when(dddb.getFlagDescriptors(anyString())).thenReturn(new FlagDescriptors(new ArrayList<String[]>())); final BandDescriptorImpl descriptor = new BandDescriptorImpl(tokens, dddb); assertFalse(descriptor.isVisible()); assertEquals("theBand", descriptor.getBandName()); assertEquals("theMember", descriptor.getMemberName()); assertEquals(18, descriptor.getPolarization()); assertEquals(19, descriptor.getSampleModel()); assertEquals(20.0, descriptor.getScalingOffset(), 1e-8); assertEquals(21.1, descriptor.getScalingFactor(), 1e-8); assertEquals(22.2, descriptor.getTypicalMin(), 1e-8); assertEquals(23.3, descriptor.getTypicalMax(), 1e-8); assertTrue(descriptor.isCyclic()); assertEquals(24.4, descriptor.getFillValue(), 1e-8); assertEquals("pitheBandelEtheBandpression", descriptor.getValidPixelExpression()); assertEquals("unit", descriptor.getUnit()); assertEquals("description", descriptor.getDescription()); assertEquals("codingName", descriptor.getFlagCodingName()); assertNotNull(descriptor.getFlagDescriptors()); assertEquals("ancilliaryBandName", descriptor.getAncilliaryBandName()); assertTrue(descriptor.isGridPointData()); assertNull(descriptor.getDimensionNames()); } @Test public void testConstruction_extendedPropertySet() { final String[] tokens = new String[] {"false", "theBand", "theMember", "18", "19", "20.0", "21.1", "22.2", "23.3", "true", "24.4", "pixelExpression", "unit", "description", "codingName", "flagDescriptors", "ancilliaryBandName", "false", "dimension_name"}; final Dddb dddb = mock(Dddb.class); when(dddb.getFlagDescriptors(anyString())).thenReturn(new FlagDescriptors(new ArrayList<String[]>())); final BandDescriptorImpl descriptor = new BandDescriptorImpl(tokens, dddb); assertFalse(descriptor.isVisible()); assertEquals("theBand", descriptor.getBandName()); assertEquals("theMember", descriptor.getMemberName()); assertEquals(18, descriptor.getPolarization()); assertEquals(19, descriptor.getSampleModel()); assertEquals(20.0, descriptor.getScalingOffset(), 1e-8); assertEquals(21.1, descriptor.getScalingFactor(), 1e-8); assertEquals(22.2, descriptor.getTypicalMin(), 1e-8); assertEquals(23.3, descriptor.getTypicalMax(), 1e-8); assertTrue(descriptor.isCyclic()); assertEquals(24.4, descriptor.getFillValue(), 1e-8); assertEquals("pitheBandelEtheBandpression", descriptor.getValidPixelExpression()); assertEquals("unit", descriptor.getUnit()); assertEquals("description", descriptor.getDescription()); assertEquals("codingName", descriptor.getFlagCodingName()); assertNotNull(descriptor.getFlagDescriptors()); assertFalse(descriptor.isGridPointData()); assertEquals("dimension_name", descriptor.getDimensionNames()); } @Test public void testConstruction_withDefaults_standardPropertySet() { final String[] tokens = new String[] {"*", "theBand", "*", "*", "*", "*", "*", "*", "*", "*", "*", "pixelExpression", "*", "*", "*", "flagDescriptors"}; final Dddb dddb = mock(Dddb.class); final BandDescriptorImpl descriptor = new BandDescriptorImpl(tokens, dddb); assertTrue(descriptor.isVisible()); assertEquals("theBand", descriptor.getBandName()); assertEquals("theBand", descriptor.getMemberName()); assertEquals(-1, descriptor.getPolarization()); assertEquals(0, descriptor.getSampleModel()); assertEquals(0.0, descriptor.getScalingOffset(), 1e-8); assertEquals(1.0, descriptor.getScalingFactor(), 1e-8); assertEquals( Double.NEGATIVE_INFINITY, descriptor.getTypicalMin(), 1e-8); assertEquals( Double.POSITIVE_INFINITY, descriptor.getTypicalMax(), 1e-8); assertFalse(descriptor.isCyclic()); assertEquals(Double.NaN, descriptor.getFillValue(), 1e-8); assertEquals("", descriptor.getUnit()); assertEquals("", descriptor.getDescription()); assertEquals("", descriptor.getFlagCodingName()); assertNull(descriptor.getFlagDescriptors()); assertTrue(descriptor.isGridPointData()); assertNull(descriptor.getDimensionNames()); } @Test public void testConstruction_withDefaults_extendedPropertySet() { final String[] tokens = new String[] {"*", "theBand", "*", "*", "*", "*", "*", "*", "*", "*", "*", "pixelExpression", "*", "*", "*", "flagDescriptors", "*", "*", "*"}; final Dddb dddb = mock(Dddb.class); final BandDescriptorImpl descriptor = new BandDescriptorImpl(tokens, dddb); assertTrue(descriptor.isVisible()); assertEquals("theBand", descriptor.getBandName()); assertEquals("theBand", descriptor.getMemberName()); assertEquals(-1, descriptor.getPolarization()); assertEquals(0, descriptor.getSampleModel()); assertEquals(0.0, descriptor.getScalingOffset(), 1e-8); assertEquals(1.0, descriptor.getScalingFactor(), 1e-8); assertEquals( Double.NEGATIVE_INFINITY, descriptor.getTypicalMin(), 1e-8); assertEquals( Double.POSITIVE_INFINITY, descriptor.getTypicalMax(), 1e-8); assertFalse(descriptor.isCyclic()); assertEquals(Double.NaN, descriptor.getFillValue(), 1e-8); assertEquals("", descriptor.getUnit()); assertEquals("", descriptor.getDescription()); assertEquals("", descriptor.getFlagCodingName()); assertNull(descriptor.getFlagDescriptors()); assertTrue(descriptor.isGridPointData()); assertNull(descriptor.getDimensionNames()); } }