Package mil.nga.giat.geowave.index.dimension

Source Code of mil.nga.giat.geowave.index.dimension.LongitudeDefinitionTest

package mil.nga.giat.geowave.index.dimension;

import mil.nga.giat.geowave.index.dimension.bin.BinRange;
import mil.nga.giat.geowave.index.sfc.data.NumericRange;

import org.junit.Assert;
import org.junit.Test;

public class LongitudeDefinitionTest
{

  private double DELTA = 1e-15;

  @Test
  public void testNormalizeWithinBoundsRanges() {

    final double minRange = 10;
    final double maxRange = 100;

    BinRange[] binRange = getNormalizedRanges(
        minRange,
        maxRange);

    Assert.assertEquals(
        minRange,
        binRange[0].getNormalizedMin(),
        DELTA);

    Assert.assertEquals(
        maxRange,
        binRange[0].getNormalizedMax(),
        DELTA);

  }

  @Test
  public void testNormalizeWithinBoundsValue() {

    final double easternNormalizedValue = -160;
    final double westernNormalizedValue = 160;

    final double easternValue = 200;
    final double westernValue = -200;

    Assert.assertEquals(
        easternNormalizedValue,
        getNormalizedLongitudeValue(easternValue),
        DELTA);

    Assert.assertEquals(
        westernNormalizedValue,
        getNormalizedLongitudeValue(westernValue),
        DELTA);

  }

  @Test
  public void testNormalizeDateLineCrossingEast() {

    final double minRange = 150;
    final double maxRange = 200;

    final int expectedBinCount = 2;

    final BinRange[] expectedBinRanges = new BinRange[] {
      new BinRange(
          -180,
          -160),
      new BinRange(
          150,
          180)
    };

    BinRange[] binRange = getNormalizedRanges(
        minRange,
        maxRange);

    Assert.assertEquals(
        expectedBinCount,
        binRange.length);

    for (int i = 0; i < binRange.length; i++) {

      Assert.assertEquals(
          expectedBinRanges[i].getNormalizedMin(),
          binRange[i].getNormalizedMin(),
          DELTA);

      Assert.assertEquals(
          expectedBinRanges[i].getNormalizedMax(),
          binRange[i].getNormalizedMax(),
          DELTA);

    }

  }

  @Test
  public void testNormalizeDateLineCrossingWest() {

    final double minRange = -200;
    final double maxRange = -170;

    final int expectedBinCount = 2;

    final BinRange[] expectedBinRanges = new BinRange[] {
      new BinRange(
          -180,
          -170),
      new BinRange(
          160,
          180)
    };

    BinRange[] binRange = getNormalizedRanges(
        minRange,
        maxRange);

    Assert.assertEquals(
        expectedBinCount,
        binRange.length);

    for (int i = 0; i < binRange.length; i++) {

      Assert.assertEquals(
          expectedBinRanges[i].getNormalizedMin(),
          binRange[i].getNormalizedMin(),
          DELTA);

      Assert.assertEquals(
          expectedBinRanges[i].getNormalizedMax(),
          binRange[i].getNormalizedMax(),
          DELTA);

    }

  }

  private BinRange[] getNormalizedRanges(
      final double minRange,
      final double maxRange ) {

    return new LongitudeDefinition().getNormalizedRanges(new NumericRange(
        minRange,
        maxRange));

  }

  private double getNormalizedLongitudeValue(
      final double value ) {

    return LongitudeDefinition.getNormalizedLongitude(value);

  }

}
TOP

Related Classes of mil.nga.giat.geowave.index.dimension.LongitudeDefinitionTest

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.