Package org.geotools.coverage.io.range.impl

Source Code of org.geotools.coverage.io.range.impl.EnumMeasureTest

/*
*    GeoTools - The Open Source Java GIS Toolkit
*    http://geotools.org
*
*    (C) 2012 - 2014, Open Source Geospatial Foundation (OSGeo)
*
*    This library is free software; you can redistribute it and/or
*    modify it under the terms of the GNU Lesser General Public
*    License as published by the Free Software Foundation;
*    version 2.1 of the License.
*
*    This library is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
*    Lesser General Public License for more details.
*/
package org.geotools.coverage.io.range.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.measure.Measure;
import javax.measure.quantity.Dimensionless;
import javax.measure.unit.SI;
import javax.measure.unit.Unit;

import org.geotools.feature.NameImpl;
import org.geotools.referencing.crs.DefaultEngineeringCRS;
import org.geotools.referencing.cs.DefaultCoordinateSystemAxis;
import org.geotools.referencing.cs.DefaultLinearCS;
import org.geotools.referencing.datum.DefaultEngineeringDatum;
import org.geotools.util.SimpleInternationalString;
import org.junit.Assert;
import org.junit.Test;
import org.opengis.coverage.SampleDimension;
import org.opengis.referencing.cs.AxisDirection;
import org.opengis.referencing.cs.CoordinateSystemAxis;
import org.opengis.referencing.datum.EngineeringDatum;

/**
* @author Simone Giannecchini, GeoSolutions
*
* @source $URL$
*/
public class EnumMeasureTest extends Assert {

    /** Bands captured as an enumeration used as an example below */
    enum Band {
        BLUE, GREE, RED, NIR, SWIT, TIR, SWR2
    };

    /**
     * This test uses use the default implementations to express 7 bands of a landsat image.
     */
    @Test
    public void testLandsatAxis() {
        CoordinateSystemAxis csAxis = new DefaultCoordinateSystemAxis(
                new SimpleInternationalString("light"), "light", AxisDirection.OTHER,
                SI.MICRO(SI.METER));

        DefaultLinearCS lightCS = new DefaultLinearCS("light", csAxis);
        Map<String, Object> datumProperties = new HashMap<String, Object>();
        datumProperties.put("name", "light");

        EngineeringDatum lightDatum = new DefaultEngineeringDatum(datumProperties);
        DefaultEngineeringCRS lightCRS = new DefaultEngineeringCRS("wave length", lightDatum,
                lightCS);

        List<Measure<Band, Dimensionless>> keys = EnumMeasure.valueOf(Band.class);

        DefaultAxis<Band, Dimensionless> axis = new DefaultAxis<Band, Dimensionless>(new NameImpl(
                "Bands"), new SimpleInternationalString("Landsat bands by wavelength"), keys,
                Unit.ONE);

        Map<Measure<Integer, Dimensionless>, SampleDimension> samples = new HashMap<Measure<Integer, Dimensionless>, SampleDimension>();
       
        // Ensure that the equals method is correct
        EnumMeasure<Band> band = EnumMeasure.valueOf(Band.BLUE);
        assertTrue(band.equals(keys.get(0)));
       
        // Check if the ordinal value is correct
        assertEquals(Band.BLUE.ordinal(), keys.get(0).doubleValue(null), 0.01d);
       
        // Check if the value is correct
        assertEquals(Band.BLUE, keys.get(0).getValue());
       
        // Check if the TO method is correct
        assertSame(keys.get(0), keys.get(0).to(null));
       
        // Ensure the Unit is one
        assertEquals(Unit.ONE, keys.get(0).getUnit());
    }

}
TOP

Related Classes of org.geotools.coverage.io.range.impl.EnumMeasureTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.