/**
* This file is hereby placed into the Public Domain. This means anyone is
* free to do whatever they wish with this file.
*/
package mil.nga.giat.process.elasticsearch;
import static org.junit.Assert.*;
import org.junit.Test;
public class RasterScaleTest {
@Test
public void testRasterScale_noScale() throws Exception {
RasterScale scale = new RasterScale();
assertFalse(scale.isScaleSet());
}
@Test
public void testRasterScale_maxProvided() throws Exception {
float scaleMax = 10.0f;
RasterScale scale = new RasterScale(scaleMax);
assertTrue(scale.isScaleSet());
assertEquals(0, scale.getScaleMin(), 0.0);
assertEquals(scaleMax, scale.getScaleMax(), 0.0);
}
@Test
public void testRasterScale_minMaxProvided() throws Exception {
float scaleMax = 10.0f;
float scaleMin = 1.0f;
RasterScale scale = new RasterScale(scaleMin, scaleMax);
assertTrue(scale.isScaleSet());
assertEquals(scaleMin, scale.getScaleMin(), 0.0);
assertEquals(scaleMax, scale.getScaleMax(), 0.0);
}
@Test(expected=IllegalArgumentException.class)
public void testRasterScale_minMaxSame() throws Exception {
float scaleMax = 10.0f;
float scaleMin = scaleMax;
new RasterScale(scaleMin, scaleMax);
}
@Test
public void testRasterScale_scaleValue() throws Exception {
float scaleMax = 10.0f;
float scaleMin = 0.0f;
RasterScale scale = new RasterScale(scaleMin, scaleMax);
scale.prepareScale(30);
scale.prepareScale(20);
scale.prepareScale(10);
scale.prepareScale(40);
assertEquals(10, scale.scaleValue(40), 0.0);
assertEquals(5, scale.scaleValue(25), 0.0);
assertEquals(0, scale.scaleValue(10), 0.0);
}
@Test
public void testRasterScale_scaleValue_emptyScale() throws Exception {
RasterScale scale = new RasterScale();
scale.prepareScale(30);
scale.prepareScale(20);
scale.prepareScale(10);
assertEquals(30, scale.scaleValue(30), 0.0);
assertEquals(20, scale.scaleValue(20), 0.0);
assertEquals(10, scale.scaleValue(10), 0.0);
}
@Test
public void testRasterScale_scaleValue_dataMinAndDataMaxAreTheSame() throws Exception {
float scaleMax = 10.0f;
float scaleMin = 1.0f;
RasterScale scale = new RasterScale(scaleMin, scaleMax);
scale.prepareScale(30);
assertEquals(10, scale.scaleValue(30), 0.0);
}
@Test
public void testRasterScale_log() throws Exception {
RasterScale scale = new RasterScale(true);
assertEquals(1, scale.scaleValue(10), 0.0);
assertEquals(0, scale.scaleValue(1), 0.0);
}
@Test
public void testRasterScale_logAndScale() throws Exception {
float scaleMax = 10.0f;
float scaleMin = 0.0f;
RasterScale scale = new RasterScale(scaleMin, scaleMax, true);
scale.prepareScale(10);
scale.prepareScale(1);
assertEquals(10, scale.scaleValue(10), 0.0);
assertEquals(0, scale.scaleValue(1), 0.0);
}
}