Subversion Repositories mkgmap

Rev

Rev 4093 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
 * Copyright (C) 2018.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 3 or
 * version 2 as published by the Free Software Foundation.
 *
 * This program 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
 * General Public License for more details.
 */

package uk.me.parabola.imgfmt.app.dem;

import static org.junit.Assert.assertEquals;

import java.util.Arrays;

import org.junit.Test;

import uk.me.parabola.mkgmap.reader.hgt.HGTReader;

/**
 * Test some inputs for class DemTile.
 * @author Gerd Petermann
 *
 */

public class DemTileTest {
       
        @Test
        public void testKnownBitstream() throws Exception {
                // Example from Dem-Daten.pdf by Frank Stinner
                short[] realHeights = new short[64*64];
                realHeights[63 * 64] = 3;
                DEMTile dt = new DEMTile(0, 0, 64,64, realHeights);
                int bsLen = dt.getBitStreamLen();
                byte[] exprectedRes = {(byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xC0, 0x2e};
                assertEquals(12, bsLen);
                String res = Arrays.toString(dt.getBitStream());
                assertEquals(Arrays.toString(exprectedRes), res);
        }      
       
        @Test
        public void testAllZero() throws Exception {
                short[] realHeights = new short[64*64];
                DEMTile dt = new DEMTile(0, 0, 64,64, realHeights);
                int bsLen = dt.getBitStreamLen();
                assertEquals(0, bsLen);
                assertEquals(0, dt.getBaseHeight());
                assertEquals(0, dt.getMaxDeltaHeight());
                assertEquals(0, dt.getEncodingType());
        }      
       
        @Test
        public void testAllOne() throws Exception {
                short[] realHeights = new short[64*64];
                Arrays.fill(realHeights, (short)1);
                DEMTile dt = new DEMTile(0, 0, 64,64, realHeights);
                int bsLen = dt.getBitStreamLen();
                assertEquals(0, bsLen);
                assertEquals(1, dt.getBaseHeight());
                assertEquals(0, dt.getMaxDeltaHeight());
                assertEquals(0, dt.getEncodingType());
        }      

        @Test
        public void testAllZeroOneUndef() throws Exception {
                short[] realHeights = new short[64*64];
                realHeights[63 * 64] = HGTReader.UNDEF;
                byte[] exprectedRes = {(byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xC0, 0x3e};
                DEMTile dt = new DEMTile(0, 0, 64,64, realHeights);
                int bsLen = dt.getBitStreamLen();
                assertEquals(12, bsLen);
                assertEquals(0, dt.getBaseHeight());
                assertEquals(1, dt.getMaxDeltaHeight());
                assertEquals(2, dt.getEncodingType());
                String res = Arrays.toString(dt.getBitStream());
                assertEquals(Arrays.toString(exprectedRes), res);
        }      
}