summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/jrummikub/model/Position.java30
-rw-r--r--test/jrummikub/model/HandTest.java31
2 files changed, 59 insertions, 2 deletions
diff --git a/src/jrummikub/model/Position.java b/src/jrummikub/model/Position.java
index 35cf45e..7396120 100644
--- a/src/jrummikub/model/Position.java
+++ b/src/jrummikub/model/Position.java
@@ -6,6 +6,7 @@ package jrummikub.model;
*/
public class Position {
+
private float x;
private float y;
@@ -13,9 +14,9 @@ public class Position {
* Create a new position by specifying the coordinates
*
* @param x
- * x coordinate
+ * x coordinate
* @param y
- * y coordinate
+ * y coordinate
*/
public Position(float x, float y) {
this.x = x;
@@ -45,4 +46,29 @@ public class Position {
return "Position[x=" + x + ",y=" + y + "]";
}
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Position other = (Position) obj;
+ if (Float.floatToIntBits(x) != Float.floatToIntBits(other.x))
+ return false;
+ if (Float.floatToIntBits(y) != Float.floatToIntBits(other.y))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + Float.floatToIntBits(x);
+ result = prime * result + Float.floatToIntBits(y);
+ return result;
+ }
+
}
diff --git a/test/jrummikub/model/HandTest.java b/test/jrummikub/model/HandTest.java
new file mode 100644
index 0000000..25a9c18
--- /dev/null
+++ b/test/jrummikub/model/HandTest.java
@@ -0,0 +1,31 @@
+package jrummikub.model;
+
+import org.junit.Before;
+import org.junit.Test;
+import static jrummikub.model.StoneColor.*;
+import static org.junit.Assert.*;
+
+public class HandTest {
+
+ Hand hand;
+
+ @Before
+ public void setUp() {
+ hand = new Hand();
+ }
+
+ @Test
+ public void testSimpleDrop() {
+ Stone stone1 = new Stone(1, RED);
+ Stone stone2 = new Stone(5, RED);
+ Stone stone3 = new Stone(2, RED);
+
+ hand.drop(stone1, new Position(2, 0));
+ hand.drop(stone2, new Position(3, 0));
+ hand.drop(stone3, new Position(2.5f, 0));
+
+ assertEquals(new Position(1.5f, 0), hand.getPosition(stone1));
+ assertEquals(new Position(3.5f, 0), hand.getPosition(stone2));
+ assertEquals(new Position(2.5f, 0), hand.getPosition(stone3));
+ }
+}