/*
* Copyright (c) 2015, Effektif GmbH. All rights reserved.
*/
package com.effektif.workflow.test.diagram;
import static org.junit.Assert.*;
import org.junit.Test;
import com.effektif.workflow.api.workflow.diagram.Point;
public class PointTest {
@Test
public void testCreateEmptyPoint() {
Point p = new Point();
assertEquals(0.0, p.x, 0.0);
assertEquals(0.0, p.y, 0.0);
}
@Test
public void testCreatePoint() {
Point p = new Point(2.0, 3.0);
assertEquals(2.0, p.x, 0.0);
assertEquals(3.0, p.y, 0.0);
Point p2 = Point.of(2.0, 3.0);
assertEquals(2.0, p2.x, 0.0);
assertEquals(3.0, p2.y, 0.0);
assertEquals(p, p2);
assertEquals(p.hashCode(), p2.hashCode());
Point p3 = Point.of(2, 3);
assertEquals(2.0, p2.x, 0.0);
assertEquals(3.0, p2.y, 0.0);
assertEquals(p, p3);
assertEquals(p.hashCode(), p2.hashCode());
}
@Test
public void testNotEquals() {
Point p1 = Point.of(2.0, 3.0);
Point p2 = Point.of(2.0, 4.0);
Point p3 = Point.of(1.0, 3.0);
assertNotEquals(p1, p2);
assertNotEquals(p1, p3);
assertNotEquals(p2, p3);
}
@Test
public void testSetX() {
Point p = new Point();
p.x(5.0);
assertEquals(5.0, p.x, 0.01);
p = new Point(2.0, 3.0);
p.x(5.0);
assertEquals(5.0, p.x, 0.01);
}
@Test
public void testSetY() {
Point p = new Point();
p.y(5.0);
assertEquals(5.0, p.y, 0.01);
p = new Point(2.0, 3.0);
p.y(5.0);
assertEquals(5.0, p.y, 0.01);
}
@Test
public void testDistanceTo() {
Point p1 = Point.of(10, 10);
Point p2 = Point.of(13, 14);
double distance = p1.distanceTo(p2);
assertEquals(5.0, distance, 0.0);
distance = p2.distanceTo(p1);
assertEquals(5.0, distance, 0.0);
distance = p1.distanceTo(p1);
assertEquals(0.0, distance, 0.0);
p1 = Point.of(-10, 10);
p2 = Point.of(-13, 14);
distance = p1.distanceTo(p2);
assertEquals(5.0, distance, 0.0);
}
}