package org.esa.snap.netbeans.tile; import org.junit.Test; import java.awt.*; import java.util.Arrays; import java.util.function.Function; import java.util.stream.Stream; import static org.junit.Assert.assertEquals; public class TileUtilitiesTest { @Test public void testComputeMatrixSizeForEqualAreaTiling() throws Exception { assertEquals(new Dimension(-1, -1), TileUtilities.computeMatrixSizeForEqualAreaTiling(0)); assertEquals(new Dimension(1, 1), TileUtilities.computeMatrixSizeForEqualAreaTiling(1)); assertEquals(new Dimension(2, 1), TileUtilities.computeMatrixSizeForEqualAreaTiling(2)); assertEquals(new Dimension(2, 2), TileUtilities.computeMatrixSizeForEqualAreaTiling(3)); assertEquals(new Dimension(2, 2), TileUtilities.computeMatrixSizeForEqualAreaTiling(4)); assertEquals(new Dimension(3, 2), TileUtilities.computeMatrixSizeForEqualAreaTiling(5)); assertEquals(new Dimension(3, 2), TileUtilities.computeMatrixSizeForEqualAreaTiling(6)); assertEquals(new Dimension(3, 3), TileUtilities.computeMatrixSizeForEqualAreaTiling(7)); assertEquals(new Dimension(3, 3), TileUtilities.computeMatrixSizeForEqualAreaTiling(8)); assertEquals(new Dimension(3, 3), TileUtilities.computeMatrixSizeForEqualAreaTiling(9)); assertEquals(new Dimension(4, 3), TileUtilities.computeMatrixSizeForEqualAreaTiling(10)); assertEquals(new Dimension(4, 3), TileUtilities.computeMatrixSizeForEqualAreaTiling(11)); assertEquals(new Dimension(4, 3), TileUtilities.computeMatrixSizeForEqualAreaTiling(12)); assertEquals(new Dimension(4, 4), TileUtilities.computeMatrixSizeForEqualAreaTiling(13)); assertEquals(new Dimension(4, 4), TileUtilities.computeMatrixSizeForEqualAreaTiling(14)); assertEquals(new Dimension(4, 4), TileUtilities.computeMatrixSizeForEqualAreaTiling(15)); assertEquals(new Dimension(4, 4), TileUtilities.computeMatrixSizeForEqualAreaTiling(16)); } @Test public void testStreaming() throws Exception { Object[] input = new Object[]{1, new Object[]{2, 3, 4,}, 5}; Object[] output = Arrays.stream(input).flatMap(new Function<Object, Stream<?>>() { @Override public Stream<?> apply(Object o) { if (o instanceof Object[]) { Object[] objects = (Object[]) o; return Arrays.stream(objects); } else { return Stream.of(o); } } }).toArray(); assertEquals(5, output.length); assertEquals(1, output[0]); assertEquals(2, output[1]); assertEquals(3, output[2]); assertEquals(4, output[3]); assertEquals(5, output[4]); } }