package org.esa.snap.rcp.spectrum;
import org.esa.snap.core.datamodel.Band;
import org.esa.snap.core.datamodel.ProductData;
import org.esa.snap.ui.product.spectrum.DisplayableSpectrum;
import org.esa.snap.ui.product.spectrum.SpectrumBand;
import org.junit.Test;
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertNotNull;
import static org.junit.Assert.assertSame;
/**
* @author Tonio Fincke
*/
public class SpectrumTopComponentTest {
@Test
public void testCreateSpectraFromUngroupedBands_noUnits() throws Exception {
final Band band_1 = new Band("cfsvbzt", ProductData.TYPE_INT8, 1, 1);
final Band band_2 = new Band("cgvg", ProductData.TYPE_INT8, 1, 1);
final Band band_3 = new Band("hbhn", ProductData.TYPE_INT8, 1, 1);
final Band band_4 = new Band("nhbjz", ProductData.TYPE_INT8, 1, 1);
final Band band_5 = new Band("tjbu", ProductData.TYPE_INT8, 1, 1);
SpectrumBand[] spectrumBands = new SpectrumBand[]{new SpectrumBand(band_1, false),
new SpectrumBand(band_2, false), new SpectrumBand(band_3, false),
new SpectrumBand(band_4, false), new SpectrumBand(band_5, false)
};
final DisplayableSpectrum[] spectraFromUngroupedBands =
SpectrumTopComponent.createSpectraFromUngroupedBands(spectrumBands, 1, 0);
assertNotNull(spectraFromUngroupedBands);
assertEquals(1, spectraFromUngroupedBands.length);
final Band[] spectralBands = spectraFromUngroupedBands[0].getSpectralBands();
assertEquals(DisplayableSpectrum.DEFAULT_SPECTRUM_NAME, spectraFromUngroupedBands[0].getName());
assertEquals(5, spectralBands.length);
assertSame(band_1, spectralBands[0]);
assertSame(band_2, spectralBands[1]);
assertSame(band_3, spectralBands[2]);
assertSame(band_4, spectralBands[3]);
assertSame(band_5, spectralBands[4]);
}
@Test
public void testCreateSpectraFromUngroupedBands() throws Exception {
final Band band_1 = new Band("cfsvbzt", ProductData.TYPE_INT8, 1, 1);
band_1.setUnit("dvgf");
final Band band_2 = new Band("cgvg", ProductData.TYPE_INT8, 1, 1);
band_2.setUnit("bzhui");
final Band band_3 = new Band("hbhn", ProductData.TYPE_INT8, 1, 1);
band_3.setUnit("drstf");
final Band band_4 = new Band("nhbjz", ProductData.TYPE_INT8, 1, 1);
band_4.setUnit("dvgf");
final Band band_5 = new Band("tjbu", ProductData.TYPE_INT8, 1, 1);
final Band band_6 = new Band("fgzvf", ProductData.TYPE_INT8, 1, 1);
band_6.setUnit("drstf");
SpectrumBand[] spectrumBands = new SpectrumBand[]{new SpectrumBand(band_1, false),
new SpectrumBand(band_2, false), new SpectrumBand(band_3, false),
new SpectrumBand(band_4, false), new SpectrumBand(band_5, false),
new SpectrumBand(band_6, false)
};
final DisplayableSpectrum[] spectraFromUngroupedBands =
SpectrumTopComponent.createSpectraFromUngroupedBands(spectrumBands, 1, 0);
assertNotNull(spectraFromUngroupedBands);
assertEquals(4, spectraFromUngroupedBands.length);
assertEquals("Bands measured in dvgf", spectraFromUngroupedBands[0].getName());
assertEquals(2, spectraFromUngroupedBands[0].getSpectralBands().length);
assertSame(band_1, spectraFromUngroupedBands[0].getSpectralBands()[0]);
assertSame(band_4, spectraFromUngroupedBands[0].getSpectralBands()[1]);
assertEquals("Bands measured in bzhui", spectraFromUngroupedBands[1].getName());
assertEquals(1, spectraFromUngroupedBands[1].getSpectralBands().length);
assertSame(band_2, spectraFromUngroupedBands[1].getSpectralBands()[0]);
assertEquals("Bands measured in drstf", spectraFromUngroupedBands[2].getName());
assertEquals(2, spectraFromUngroupedBands[2].getSpectralBands().length);
assertSame(band_3, spectraFromUngroupedBands[2].getSpectralBands()[0]);
assertSame(band_6, spectraFromUngroupedBands[2].getSpectralBands()[1]);
assertEquals(DisplayableSpectrum.REMAINING_BANDS_NAME, spectraFromUngroupedBands[3].getName());
assertEquals(1, spectraFromUngroupedBands[3].getSpectralBands().length);
assertSame(band_5, spectraFromUngroupedBands[3].getSpectralBands()[0]);
}
}