package org.esa.snap.ui.product.spectrum;
import junit.framework.TestCase;
import org.esa.snap.core.datamodel.Band;
import org.esa.snap.core.datamodel.ProductData;
/**
* Created by E1001827 on 21.2.2014.
*/
public class DisplayableSpectrumTest extends TestCase {
public void testNewDisplayableSpectrumIsSetupCorrectly() {
String spectrumName = "name";
DisplayableSpectrum displayableSpectrum = new DisplayableSpectrum(spectrumName, 1);
assertEquals(spectrumName, displayableSpectrum.getName());
assertEquals(DisplayableSpectrum.NO_UNIT, displayableSpectrum.getUnit());
assertEquals(null, displayableSpectrum.getLineStyle());
assertEquals(SpectrumShapeProvider.DEFAULT_SCALE_GRADE, displayableSpectrum.getSymbolSize());
assertEquals(SpectrumShapeProvider.getScaledShape(1, SpectrumShapeProvider.DEFAULT_SCALE_GRADE),
displayableSpectrum.getScaledShape());
assertEquals(1, displayableSpectrum.getSymbolIndex());
assertEquals(true, displayableSpectrum.isSelected());
assertEquals(false, displayableSpectrum.isRemainingBandsSpectrum());
assertEquals(false, displayableSpectrum.hasBands());
assertEquals(0, displayableSpectrum.getSpectralBands().length);
assertEquals(0, displayableSpectrum.getSelectedBands().length);
}
public void testNewDisplayableSpectrumIsSetUpCorrectlyWithBands() {
String spectrumName = "name";
SpectrumBand[] spectralBands = new SpectrumBand[2];
for (int i = 0; i < spectralBands.length; i++) {
Band band = createBand(i);
band.setUnit("unit");
spectralBands[i] = new SpectrumBand(band, true);
}
DisplayableSpectrum displayableSpectrum = new DisplayableSpectrum(spectrumName, spectralBands, 1);
assertEquals(spectrumName, displayableSpectrum.getName());
assertEquals("unit", displayableSpectrum.getUnit());
assertEquals(true, displayableSpectrum.hasBands());
assertEquals(2, displayableSpectrum.getSpectralBands().length);
assertEquals(2, displayableSpectrum.getSelectedBands().length);
assertEquals(true, displayableSpectrum.isBandSelected(0));
assertEquals(true, displayableSpectrum.isBandSelected(1));
}
public void testBandsAreAddedCorrectlyToDisplayableSpectrum() {
String spectrumName = "name";
DisplayableSpectrum displayableSpectrum = new DisplayableSpectrum(spectrumName, 1);
SpectrumBand[] bands = new SpectrumBand[3];
for (int i = 0; i < bands.length; i++) {
Band band = createBand(i);
band.setUnit("unit" + i);
bands[i] = new SpectrumBand(band, i%2 == 0);
displayableSpectrum.addBand(bands[i]);
}
assertEquals(spectrumName, displayableSpectrum.getName());
assertEquals(DisplayableSpectrum.MIXED_UNITS, displayableSpectrum.getUnit());
assertEquals(true, displayableSpectrum.hasBands());
assertEquals(3, displayableSpectrum.getSpectralBands().length);
assertEquals(bands[0].getOriginalBand(), displayableSpectrum.getSpectralBands()[0]);
assertEquals(bands[1].getOriginalBand(), displayableSpectrum.getSpectralBands()[1]);
assertEquals(bands[2].getOriginalBand(), displayableSpectrum.getSpectralBands()[2]);
assertEquals(2, displayableSpectrum.getSelectedBands().length);
assertEquals(bands[0].getOriginalBand(), displayableSpectrum.getSpectralBands()[0]);
assertEquals(bands[2].getOriginalBand(), displayableSpectrum.getSpectralBands()[2]);
assertEquals(true, displayableSpectrum.isBandSelected(0));
assertEquals(false, displayableSpectrum.isBandSelected(1));
assertEquals(true, displayableSpectrum.isBandSelected(2));
}
private Band createBand(int number) {
return new Band("name" + number, ProductData.TYPE_INT8, 1, 1);
}
}