Added basic tests for Point, MousePath, and Mouse

This commit is contained in:
davpapp 2018-01-24 04:02:36 -05:00
parent c56c246d4a
commit 5fa3894245
10 changed files with 111 additions and 3 deletions

Binary file not shown.

Binary file not shown.

BIN
bin/MousePathTest.class Normal file

Binary file not shown.

Binary file not shown.

BIN
bin/PointTest.class Normal file

Binary file not shown.

View File

@ -46,7 +46,7 @@ public class Mouse {
continue;
}
if (point.hasSameLocation(lastPoint)) {
if (point.isSameLocation(lastPoint)) {
numberOfRepeats++;
if (numberOfRepeats == 20) {
if (currentPath.size() < 5) {

View File

@ -33,6 +33,10 @@ public class MousePath {
return numPoints;
}
public int getTimespan() {
return timespan;
}
public void display() {
for (Point p : path) {
System.out.println("(" + p.getX() + ", " + p.getY() + "), " + p.getTime());

40
src/MousePathTest.java Normal file
View File

@ -0,0 +1,40 @@
import static org.junit.jupiter.api.Assertions.*;
import java.util.ArrayList;
import org.junit.jupiter.api.Test;
class MousePathTest {
Mouse mouse = new Mouse("/home/dpapp/eclipse-workspace/RunescapeAI/testfiles/mouse_path_test1.txt");
ArrayList<MousePath> mousePaths = mouse.getMousePaths();
@Test
void mousePathLengthTest() {
assertEquals(mousePaths.get(0).getNumPoints(), 45);
assertEquals(mousePaths.get(1).getNumPoints(), 17);
assertEquals(mousePaths.get(2).getNumPoints(), 33);
assertEquals(mousePaths.get(3).getNumPoints(), 14);
assertEquals(mousePaths.get(4).getNumPoints(), 13);
}
@Test
void mousePathTimespanTest() {
assertEquals(mousePaths.get(0).getTimespan(), 1225);
assertEquals(mousePaths.get(1).getTimespan(), 192);
assertEquals(mousePaths.get(2).getTimespan(), 458);
assertEquals(mousePaths.get(3).getTimespan(), 157);
assertEquals(mousePaths.get(4).getTimespan(), 142);
}
@Test
void mousePathStartingPointTest() {
}
@Test
void mousePathEndingPointTest() {
}
}

View File

@ -26,10 +26,14 @@ public class Point {
return time;
}
public boolean hasSameLocation(Point p2) {
public boolean isSameLocation(Point p2) {
return (this.x == p2.getX() && this.y == p2.getY());
}
public double distance(Point p2) {
return Math.hypot(this.x - p2.getX(), this.y - p2.getY());
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
@ -46,6 +50,6 @@ public class Point {
}
public boolean isValid() {
return (x >= 0 && x < 1920 && y >= 0 && y < 1920 && time >= 0);
return (x >= 0 && x < 1920 && y >= 0 && y < 1080 && time >= 0);
}
}

60
src/PointTest.java Normal file
View File

@ -0,0 +1,60 @@
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class PointTest {
@Test
void initializePointTest() {
Point p = new Point(54, 4, 134);
assertEquals(p.getX(), 54);
assertEquals(p.getY(), 4);
assertEquals(p.getTime(), 134);
}
@Test
void isValidPointTest() {
Point p1 = new Point(54, 4, 134);
assertEquals(p1.isValid(), true);
Point p2 = new Point(-3, 84, 832);
assertEquals(p2.isValid(), false);
Point p3 = new Point(1940, 84, 832);
assertEquals(p3.isValid(), false);
Point p4 = new Point(3, -5, 832);
assertEquals(p4.isValid(), false);
Point p5 = new Point(0, 1084, 832);
assertEquals(p5.isValid(), false);
Point p6 = new Point(0, 1001, -4);
assertEquals(p6.isValid(), false);
}
@Test
void isSameLocationTest() {
Point p1 = new Point(54, 4, 134);
Point p2 = new Point(54, 4, 832);
Point p3 = new Point(85, 4, 832);
Point p4 = new Point(54, 12, 832);
assertEquals(p1.isSameLocation(p2), true);
assertEquals(p1.isSameLocation(p3), false);
assertEquals(p1.isSameLocation(p4), false);
}
@Test
void distanceTest() {
Point p1 = new Point(54, 4, 134);
Point p2 = new Point(54, 4, 832);
Point p3 = new Point(85, 4, 832);
Point p4 = new Point(85, 12, 832);
assertEquals(p1.distance(p2), 0.0);
assertEquals(p1.distance(p3), 31.0);
double distance = p1.distance(p4) - 32.01562118;
assertTrue(distance >= 0 && distance < 0.00001);
}
}