|
|
@@ -0,0 +1,293 @@
|
|
|
+/*
|
|
|
+ * @author Ranides Atterwim <ranides@gmail.com>
|
|
|
+ * @copyright Ranides Atterwim
|
|
|
+ * @license WTFPL
|
|
|
+ * @url http://ranides.net/projects/???
|
|
|
+ */
|
|
|
+package net.ranides.assira.collection.mockup;
|
|
|
+
|
|
|
+import java.util.Map;
|
|
|
+import net.ranides.assira.collection.lookups.Lookup;
|
|
|
+import static net.ranides.assira.collection.mockup.TPointEnum.*;
|
|
|
+import static org.junit.Assert.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ *
|
|
|
+ * @author Ranides Atterwim <ranides@gmail.com>
|
|
|
+ */
|
|
|
+public final class ALookupTester extends TPointTester {
|
|
|
+
|
|
|
+ public ALookupTester(TPointGenerator generator) {
|
|
|
+ super(generator);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void put(Map<TPoint, Integer> target, TPointEnum... items) {
|
|
|
+ for(TPointEnum item : items) {
|
|
|
+ target.put($key(item), $value(item));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicPutInt(Lookup<TPoint> target, int count) {
|
|
|
+ int prev = target.size();
|
|
|
+ int value = 200;
|
|
|
+ for (TPoint point : $keys(count)) {
|
|
|
+ target.put(point, value++);
|
|
|
+ }
|
|
|
+ assertEquals(prev + count, target.size());
|
|
|
+
|
|
|
+ basicPutInt(target);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicPutInteger(Map<TPoint, Integer> target, int count) {
|
|
|
+ int prev = target.size();
|
|
|
+ int value = 200;
|
|
|
+ for (TPoint point : $keys(count)) {
|
|
|
+ target.put(point, value++);
|
|
|
+ }
|
|
|
+ assertEquals(prev + count, target.size());
|
|
|
+
|
|
|
+ basicPutInteger(target);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicPutInt(Lookup<TPoint> target) {
|
|
|
+ int prev = target.size();
|
|
|
+ target.put($key(A1), $value(A1));
|
|
|
+ assertEquals(prev + 1, target.size());
|
|
|
+
|
|
|
+ target.put($key(A1_EQ), $value(A1_EQ)); // identical hash & eq
|
|
|
+ assertEquals(prev + 1, target.size());
|
|
|
+
|
|
|
+ target.put($key(A1_NE), $value(A1_NE)); // identical hash but not eq
|
|
|
+ assertEquals(prev + 2, target.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicPutInteger(Map<TPoint, Integer> target) {
|
|
|
+ int prev = target.size();
|
|
|
+ target.put($key(A1), $object(A1));
|
|
|
+ assertEquals(prev + 1, target.size());
|
|
|
+
|
|
|
+ target.put($key(A1_EQ), $object(A1_EQ)); // identical hash & eq
|
|
|
+ assertEquals(prev + 1, target.size());
|
|
|
+
|
|
|
+ target.put($key(A1_NE), $object(A1_NE)); // identical hash but not eq
|
|
|
+ assertEquals(prev + 2, target.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicReplaceInt(Lookup<TPoint> target, int count) {
|
|
|
+ int prev = target.size();
|
|
|
+ for (TPoint point : $ukeys(count)) {
|
|
|
+ target.put(point, $value(B1));
|
|
|
+ }
|
|
|
+ assertEquals(prev + (2 * count), target.size());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void basicReplaceInteger(Map<TPoint, Integer> target, int count) {
|
|
|
+ int prev = target.size();
|
|
|
+ for (TPoint point : $ukeys(count)) {
|
|
|
+ target.put(point, $object(B1));
|
|
|
+ }
|
|
|
+ assertEquals(prev + (2 * count), target.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicRemoveInt(Lookup<TPoint> target) {
|
|
|
+ target.defaultReturnValue(-1);
|
|
|
+ put(target, A1, B1, C1);
|
|
|
+
|
|
|
+ assertNotRemoveInt(target, A1_NE);
|
|
|
+
|
|
|
+ assertRemoveInt(target, A1_EQ, A1);
|
|
|
+ assertRemoveInt(target, B1, B1);
|
|
|
+ assertRemoveInt(target, C1, C1);
|
|
|
+
|
|
|
+ assertEquals(0, target.size());
|
|
|
+
|
|
|
+ assertNotRemoveInt(target, C1);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicRemoveInteger(Map<TPoint, Integer> target) {
|
|
|
+ put(target, A1, B1, C1);
|
|
|
+
|
|
|
+ assertNotRemoveInteger(target, A1_NE);
|
|
|
+
|
|
|
+ assertRemoveInteger(target, A1_EQ, A1);
|
|
|
+ assertRemoveInteger(target, B1, B1);
|
|
|
+ assertRemoveInteger(target, C1, C1);
|
|
|
+
|
|
|
+ assertEquals(0, target.size());
|
|
|
+
|
|
|
+ assertNotRemoveInteger(target, C1);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicRemoveInt(Lookup<TPoint> target, int count) {
|
|
|
+ assertEquals(0, target.size());
|
|
|
+ TPoint[] keys = $keys(count);
|
|
|
+ int[] values = $values(count);
|
|
|
+
|
|
|
+ for(int i=0; i<count; i++) {
|
|
|
+ target.put(keys[i], values[i]);
|
|
|
+ }
|
|
|
+ assertEquals(count, target.size());
|
|
|
+
|
|
|
+ for(int i=0; i<count; i++) {
|
|
|
+ assertEquals(values[i], target.removeInt(keys[i]));
|
|
|
+ assertEquals(count-i-1, target.size());
|
|
|
+ }
|
|
|
+ assertEquals(0, target.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicRemoveInteger(Map<TPoint, Integer> target, int count) {
|
|
|
+ assertEquals(0, target.size());
|
|
|
+ TPoint[] keys = $keys(count);
|
|
|
+ Integer[] values = $objects(count);
|
|
|
+
|
|
|
+ for(int i=0; i<count; i++) {
|
|
|
+ target.put(keys[i], values[i]);
|
|
|
+ }
|
|
|
+ assertEquals(count, target.size());
|
|
|
+
|
|
|
+ for(int i=0; i<count; i++) {
|
|
|
+ assertEquals(values[i], target.remove(keys[i]));
|
|
|
+ assertEquals(count-i-1, target.size());
|
|
|
+ }
|
|
|
+ assertEquals(0, target.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicGetInt(Lookup<TPoint> target) {
|
|
|
+ assertEquals(0, target.getInt($key(A1)));
|
|
|
+
|
|
|
+ put(target, A1, B1, C1);
|
|
|
+
|
|
|
+ assertEquals(0, target.getInt($key(A1_NE)));
|
|
|
+
|
|
|
+ assertEquals($value(A1), target.getInt($key(A1)));
|
|
|
+ assertEquals($value(A1), target.getInt($key(A1_EQ)));
|
|
|
+ assertEquals($value(B1), target.getInt($key(B1)));
|
|
|
+ assertEquals($value(C1), target.getInt($key(C1)));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicGetInteger(Map<TPoint, Integer> target) {
|
|
|
+ assertEquals(null, target.get($key(A1)));
|
|
|
+
|
|
|
+ put(target, A1, B1, C1);
|
|
|
+
|
|
|
+ assertEquals(null, target.get($key(A1_NE)));
|
|
|
+
|
|
|
+ assertEquals($object(A1), target.get($key(A1)));
|
|
|
+ assertEquals($object(A1), target.get($key(A1_EQ)));
|
|
|
+ assertEquals($object(B1), target.get($key(B1)));
|
|
|
+ assertEquals($object(C1), target.get($key(C1)));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void logicRemoveInt(Lookup<TPoint> target) {
|
|
|
+ target.defaultReturnValue(-1);
|
|
|
+ put(target, A1, B1, C1);
|
|
|
+
|
|
|
+ assertEquals(-1, target.removeInt($key(A1_NE)));
|
|
|
+ assertEquals(3, target.size());
|
|
|
+
|
|
|
+ assertContainsInt(target, A1_EQ, A1);
|
|
|
+ assertContainsInt(target, A1, A1);
|
|
|
+ assertRemoveInt(target, A1_EQ, A1);
|
|
|
+ assertNotContainsInt(target, A1_EQ);
|
|
|
+ assertNotContainsInt(target, A1);
|
|
|
+
|
|
|
+ assertContainsInt(target, B1, B1);
|
|
|
+ assertRemoveInt(target, B1, B1);
|
|
|
+ assertNotContainsInt(target, B1);
|
|
|
+
|
|
|
+ assertContainsInt(target, C1, C1);
|
|
|
+ assertRemoveInt(target, C1, C1);
|
|
|
+ assertNotContainsInt(target, C1);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void logicRemoveInteger(Map<TPoint, Integer> target) {
|
|
|
+ put(target, A1, B1, C1);
|
|
|
+
|
|
|
+ assertEquals(null, target.remove($key(A1_NE)));
|
|
|
+ assertEquals(3, target.size());
|
|
|
+
|
|
|
+ assertContainsInteger(target, A1_EQ, A1);
|
|
|
+ assertContainsInteger(target, A1, A1);
|
|
|
+ assertRemoveInteger(target, A1_EQ, A1);
|
|
|
+ assertNotContainsInteger(target, A1_EQ);
|
|
|
+ assertNotContainsInteger(target, A1);
|
|
|
+
|
|
|
+ assertContainsInteger(target, B1, B1);
|
|
|
+ assertRemoveInteger(target, B1, B1);
|
|
|
+ assertNotContainsInteger(target, B1);
|
|
|
+
|
|
|
+ assertContainsInteger(target, C1, C1);
|
|
|
+ assertRemoveInteger(target, C1, C1);
|
|
|
+ assertNotContainsInteger(target, C1);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicContainsInt(Lookup<TPoint> target) {
|
|
|
+ assertEquals(0, target.size());
|
|
|
+ put(target, A1, B1);
|
|
|
+
|
|
|
+ assertEquals(true, target.containsValue($value(A1)));
|
|
|
+ assertEquals(true, target.containsValue($value(B1)));
|
|
|
+
|
|
|
+ assertEquals(false, target.containsValue($value(A1_EQ)));
|
|
|
+ assertEquals(false, target.containsValue($value(A1_NE)));
|
|
|
+ assertEquals(false, target.containsValue($value(C1)));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void basicContainsInteger(Map<TPoint, Integer> target) {
|
|
|
+ assertEquals(0, target.size());
|
|
|
+ put(target, A1, B1);
|
|
|
+
|
|
|
+ assertEquals(true, target.containsValue($object(A1)));
|
|
|
+ assertEquals(true, target.containsValue($object(B1)));
|
|
|
+
|
|
|
+ assertEquals(false, target.containsValue($object(A1_EQ)));
|
|
|
+ assertEquals(false, target.containsValue($object(A1_NE)));
|
|
|
+ assertEquals(false, target.containsValue($object(C1)));
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void assertRemoveInt(Lookup<TPoint> target, TPointEnum key, TPointEnum prev) {
|
|
|
+ int size = target.size();
|
|
|
+ assertEquals($value(prev), target.removeInt($key(key)));
|
|
|
+ assertEquals(size-1, target.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void assertNotRemoveInt(Lookup<TPoint> target, TPointEnum key) {
|
|
|
+ int size = target.size();
|
|
|
+ assertEquals(target.defaultReturnValue(), target.removeInt($key(key)));
|
|
|
+ assertEquals(size, target.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void assertContainsInt(Lookup<TPoint> target, TPointEnum key, TPointEnum value) {
|
|
|
+ assertEquals(true, target.containsKey($key(key)));
|
|
|
+ assertEquals($value(value), target.getInt($key(key)));
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void assertNotContainsInt(Lookup<TPoint> target, TPointEnum key) {
|
|
|
+ assertEquals(false, target.containsKey($key(key)));
|
|
|
+ assertEquals(target.defaultReturnValue(), target.getInt($key(key)));
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void assertRemoveInteger(Map<TPoint, Integer> target, TPointEnum key, TPointEnum prev) {
|
|
|
+ int size = target.size();
|
|
|
+ assertEquals($object(prev), target.remove($key(key)));
|
|
|
+ assertEquals(size-1, target.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void assertNotRemoveInteger(Map<TPoint, Integer> target, TPointEnum key) {
|
|
|
+ int size = target.size();
|
|
|
+ assertEquals(null, target.remove($key(key)));
|
|
|
+ assertEquals(size, target.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void assertContainsInteger(Map<TPoint, Integer> target, TPointEnum key, TPointEnum value) {
|
|
|
+ assertEquals(true, target.containsKey($key(key)));
|
|
|
+ assertEquals($object(value), target.get($key(key)));
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void assertNotContainsInteger(Map<TPoint, Integer> target, TPointEnum key) {
|
|
|
+ assertEquals(false, target.containsKey($key(key)));
|
|
|
+ assertEquals(null, target.get($key(key)));
|
|
|
+ }
|
|
|
+
|
|
|
+}
|