/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.ows.kvp;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.geotools.util.NumberRange;
import junit.framework.TestCase;
/**
* Test for the elevation kvp parser
*
* @author Simone Giannecchini, GeoSolutions SAS
*/
public class ElevationKvpParserTest extends TestCase {
public void testPeriod() throws ParseException {
final ElevationKvpParser parser = new ElevationKvpParser("ELEVATION");
List elements = new ArrayList((Collection) parser.parse("1/9000/1"));
assertTrue(elements.get(0) instanceof Double);
assertTrue(elements.size() == 100);
assertEquals(1.0, ((Double) elements.get(0)));
}
public void testMixed() throws ParseException {
final ElevationKvpParser parser = new ElevationKvpParser("ELEVATION");
List elements = new ArrayList((Collection) parser.parse("5,3,4,1,2,8.9,1/9"));
assertTrue(elements.get(0) instanceof NumberRange);
assertEquals(1.0, ((NumberRange<Double>) elements.get(0)).getMinimum());
assertEquals(9.0, ((NumberRange<Double>) elements.get(0)).getMaximum());
}
public void testOutOfOrderSequence() throws ParseException {
final ElevationKvpParser parser = new ElevationKvpParser("ELEVATION");
List elements = new ArrayList((Collection) parser.parse("5,3,4,1,2,8.9"));
assertEquals(1.0, elements.get(0));
assertEquals(2.0, elements.get(1));
assertEquals(3.0, elements.get(2));
assertEquals(4.0, elements.get(3));
assertEquals(5.0, elements.get(4));
assertEquals(8.9, elements.get(5));
}
public ElevationKvpParser testOrderedSequence() throws ParseException {
final ElevationKvpParser parser = new ElevationKvpParser("ELEVATION");
List elements = new ArrayList((Collection) parser.parse("1,2,3,4,5,8.9"));
assertEquals(1.0, elements.get(0));
assertEquals(2.0, elements.get(1));
assertEquals(3.0, elements.get(2));
assertEquals(4.0, elements.get(3));
assertEquals(5.0, elements.get(4));
assertEquals(8.9, elements.get(5));
return parser;
}
}