diff options
-rw-r--r-- | src/jrummikub/model/Position.java | 30 | ||||
-rw-r--r-- | test/jrummikub/model/HandTest.java | 31 |
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));
+ }
+}
|