/******************************************************************************* * Copyright (c) 2011, 2015 itemis AG and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Matthias Wienand (itemis AG) - initial API and implementation * *******************************************************************************/ package org.eclipse.gef.geometry.tests; import static org.junit.Assert.assertTrue; import org.eclipse.gef.geometry.internal.utils.PointListUtils; import org.eclipse.gef.geometry.internal.utils.PrecisionUtils; import org.eclipse.gef.geometry.planar.Line; import org.eclipse.gef.geometry.planar.Point; import org.junit.Test; public class PointListUtilsTests { @Test public void test_toCoordinatesArray() throws Exception { Point[] points = new Point[5]; for (int i = 0; i < 5; i++) { points[i] = new Point(i, i); } double[] coords = PointListUtils.toCoordinatesArray(points); for (int i = 0; i < 10; i += 2) { assertTrue(PrecisionUtils.equal(points[i / 2].x, coords[i])); assertTrue(PrecisionUtils.equal(points[i / 2].y, coords[i + 1])); } } @Test public void test_toIntegerArray() throws Exception { double[] doubles = new double[10]; for (int i = 0; i < 10; i++) { doubles[i] = (double) i / 2f; } int[] ints = PointListUtils.toIntegerArray(doubles); for (int i = 0; i < 10; i++) { assertTrue(PrecisionUtils.equal(ints[i], (int) doubles[i])); } } @Test public void test_toSegmentsArray() { Point[] points = new Point[5]; for (int i = 0; i < points.length; i++) { points[i] = new Point(i, i); } Line[] segments = PointListUtils.toSegmentsArray(points, false); assertTrue(PrecisionUtils.equal(segments.length, points.length - 1)); for (int i = 0; i < segments.length; i++) { assertTrue(segments[i].getP1().equals(points[i])); assertTrue(segments[i].getP2().equals(points[i + 1])); } segments = PointListUtils.toSegmentsArray(points, true); assertTrue(PrecisionUtils.equal(segments.length, points.length)); for (int i = 0; i < segments.length; i++) { assertTrue(segments[i].getP1().equals(points[i])); if (i == points.length - 1) { assertTrue(segments[i].getP2().equals(points[0])); } else { assertTrue(segments[i].getP2().equals(points[i + 1])); } } } }