Ranides Atterwim пре 10 година
родитељ
комит
1c414452c7

+ 10 - 11
assira/src/test/java/net/ranides/assira/collection/mockup/CollectionSuite.java

@@ -6,17 +6,16 @@
  */
 package net.ranides.assira.collection.mockup;
 
-import net.ranides.assira.collection.mockup.TPoint;
-import net.ranides.assira.collection.suite.AHashLookupTester;
-import net.ranides.assira.collection.suite.AHashMapTester;
-import net.ranides.assira.collection.suite.ASortedMapTester;
-import net.ranides.assira.collection.suite.IntHashMapTester;
-import net.ranides.assira.collection.suite.IntMapTester;
-import net.ranides.assira.collection.suite.IntSortedMapTester;
-import net.ranides.assira.collection.suite.LookupTester;
-import net.ranides.assira.collection.suite.MapTester;
-import net.ranides.assira.collection.suite.SortedLookupTester;
-import net.ranides.assira.collection.suite.SortedMapTester;
+import net.ranides.assira.collection.suite.lookups.AHashLookupTester;
+import net.ranides.assira.collection.suite.maps.AHashMapTester;
+import net.ranides.assira.collection.suite.maps.ASortedMapTester;
+import net.ranides.assira.collection.suite.maps.IntHashMapTester;
+import net.ranides.assira.collection.suite.maps.IntMapTester;
+import net.ranides.assira.collection.suite.maps.IntSortedMapTester;
+import net.ranides.assira.collection.suite.lookups.LookupTester;
+import net.ranides.assira.collection.suite.maps.MapTester;
+import net.ranides.assira.collection.suite.lookups.SortedLookupTester;
+import net.ranides.assira.collection.suite.maps.SortedMapTester;
 import net.ranides.assira.junit.QTesterSuite;
 
 /**

+ 0 - 1
assira/src/test/java/net/ranides/assira/collection/mockup/TPoint.java

@@ -6,7 +6,6 @@
  */
 package net.ranides.assira.collection.mockup;
 
-import net.ranides.assira.test.TMap;
 import java.io.Serializable;
 import net.ranides.assira.generic.HashUtils;
 

+ 51 - 51
assira/src/test/java/net/ranides/assira/collection/suite/AHashLookupTester.java

@@ -1,51 +1,51 @@
-/*
- * @author Ranides Atterwim <ranides@gmail.com>
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/???
- */
-package net.ranides.assira.collection.suite;
-
-import javax.annotation.Resource;
-import net.ranides.assira.collection.lookups.AHashLookup;
-import net.ranides.assira.test.TMap;
-import net.ranides.assira.junit.QAssert;
-import org.junit.Test;
-
-/**
- *
- * @author Ranides Atterwim <ranides@gmail.com>
- */
-public final class AHashLookupTester<K> {
-    
-    @Resource(name = "map!")
-    private TMap<K,Integer> $map;
-
-    @Test
-    public void basicTrim(AHashLookup<K> target) {
-        $map.range(1024).into(target);
-        target.clear();
-        $map.range(128).into(target);
-        target.trim();
-    }
-    
-    @Test
-    public void basicTrimN1(AHashLookup<K> target) {
-        basicTrim(target, 5*32, 32, 1024);
-    }
-    
-    @Test
-    public void basicTrimN2(AHashLookup<K> target) {
-        QAssert.assertThrows(IllegalArgumentException.class, () -> 
-            basicTrim(target, 5*32, 32, 1)
-        );
-    }
-    
-    private void basicTrim(AHashLookup<K> target, int put1st, int put2nd, int n) {
-        $map.range(put1st).into(target);
-        target.clear();
-        $map.range(put2nd).into(target);
-        target.trim(n);
-    }
-    
-}
+/*
+ * @author Ranides Atterwim <ranides@gmail.com>
+ * @copyright Ranides Atterwim
+ * @license WTFPL
+ * @url http://ranides.net/projects/???
+ */
+package net.ranides.assira.collection.suite.lookups;
+
+import javax.annotation.Resource;
+import net.ranides.assira.collection.lookups.AHashLookup;
+import net.ranides.assira.test.TMap;
+import net.ranides.assira.junit.QAssert;
+import org.junit.Test;
+
+/**
+ *
+ * @author Ranides Atterwim <ranides@gmail.com>
+ */
+public final class AHashLookupTester<K> {
+    
+    @Resource(name = "map!")
+    private TMap<K,Integer> $map;
+
+    @Test
+    public void basicTrim(AHashLookup<K> target) {
+        $map.range(1024).into(target);
+        target.clear();
+        $map.range(128).into(target);
+        target.trim();
+    }
+    
+    @Test
+    public void basicTrimN1(AHashLookup<K> target) {
+        basicTrim(target, 5*32, 32, 1024);
+    }
+    
+    @Test
+    public void basicTrimN2(AHashLookup<K> target) {
+        QAssert.assertThrows(IllegalArgumentException.class, () -> 
+            basicTrim(target, 5*32, 32, 1)
+        );
+    }
+    
+    private void basicTrim(AHashLookup<K> target, int put1st, int put2nd, int n) {
+        $map.range(put1st).into(target);
+        target.clear();
+        $map.range(put2nd).into(target);
+        target.trim(n);
+    }
+    
+}

+ 332 - 332
assira/src/test/java/net/ranides/assira/collection/suite/LookupTester.java

@@ -1,332 +1,332 @@
-/*
- * @author Ranides Atterwim <ranides@gmail.com>
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/???
- */
-package net.ranides.assira.collection.suite;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.util.Set;
-import javax.annotation.Resource;
-import net.ranides.assira.collection.IntCollection;
-import net.ranides.assira.collection.iterators.IntIterator;
-import net.ranides.assira.collection.lookups.Lookup;
-import net.ranides.assira.test.TMap;
-import net.ranides.assira.test.TMap.TItem;
-import net.ranides.assira.test.TMap.TItems;
-import net.ranides.assira.junit.QAssert;
-import static org.junit.Assert.*;
-import org.junit.Test;
-
-/**
- *
- * @author Ranides Atterwim <ranides@gmail.com>
- */
-@SuppressWarnings("PMD.MethodNameRules")
-public final class LookupTester<K> {
-    
-    @Resource(name = "map!")
-    private TMap<K,Integer> $map;
-	
-    private static final int BASIC_PUT_MANY = 128;
-    
-    private static final int BASIC_PUT_REPLACE = 40;
-    
-    private static final int BASIC_PUT_RANDOM = 220;
-    
-    private static final int BASIC_REMOVE_ALL = 97;
-    
-    private static final int BASIC_REMOVE_RANDOM = 273;
-    
-    @Test
-    public void basicPut(Lookup<K> target) {
-        int prev = target.size();
-        for(TItem<K,?> item :$map.range(0, BASIC_PUT_MANY)) {
-            target.put(item.key(), item.valueInt());
-        }
-        assertEquals(prev + BASIC_PUT_MANY, target.size());
-        
-        logicPut(target);
-    }
-    
-    @Test
-    public void logicPut(Lookup<K> target) {
-        int prev = target.size();
-        TItem<K,Integer> item1 = $map.item(1001,0);
-        TItem<K,Integer> item2 = $map.item(1001,1);
-        target.put(item1.key(), item1.valueInt());
-        assertEquals(prev + 1, target.size());
-        
-        target.put(item1.key(), item1.valueInt());
-        assertEquals(prev + 1, target.size());
-        
-        target.put(item2.key(), item2.valueInt()); // identical hash but not eq
-        assertEquals(prev + 2, target.size());
-    }
-    
-    @Test
-    public void basicPutReplace(Lookup<K> target) {
-        int prev = target.size();
-        for (TItem<K,Integer> item : $map.urange(0, BASIC_PUT_REPLACE)) {
-            target.put(item.key(), item.valueInt());
-        }
-        assertEquals(prev + (2 * BASIC_PUT_REPLACE), target.size());
-    }
-	
-	@Test
-    public void basicPutRandom(Lookup<K> target) {
-        int prev = target.size();
-        for (TItem<K,Integer> item : $map.urange(0, BASIC_PUT_RANDOM)) {
-            target.put(item.key(), item.valueInt());
-        }
-        assertEquals(prev + (2 * BASIC_PUT_RANDOM), target.size());
-    }
-	    
-    @Test
-    public void basicRemove(Lookup<K> target) {
-        target.defaultReturnValue(-1);
-        $map.list(1,2,3).into(target);
-        
-        assertNotRemove(target, $map.item(1,1));
-        
-        assertRemove(target, $map.item(1));
-        assertRemove(target, $map.item(2));
-        assertRemove(target, $map.item(3));
-        
-        assertEquals(0, target.size());
-        
-        assertNotRemove(target, $map.item(3));
-    }
-    
-    @Test
-    public void basicRemoveAll(Lookup<K> target) {
-        assertEquals(0, target.size());
-        TItems<K,Integer> items = $map.range(0, BASIC_REMOVE_ALL);
-        
-        items.into(target);
-        assertEquals(BASIC_REMOVE_ALL, target.size());
-        
-        for(int i=0; i<BASIC_REMOVE_ALL; i++) {
-            assertEquals(items.at(i).valueInt(), target.removeInt(items.at(i).key()));
-            assertEquals(BASIC_REMOVE_ALL-i-1, target.size());
-        }
-        assertEquals(0, target.size());
-    }
-    
-    @Test
-    public void basicRemoveRandom(Lookup<K> target) {
-        assertEquals(0, target.size());
-        TItems<K,Integer> items = $map.range(0, BASIC_REMOVE_RANDOM);
-        
-        items.into(target);
-        assertEquals(BASIC_REMOVE_RANDOM, target.size());
-
-        items.shuffle(777);
-        for(int i=0; i<BASIC_REMOVE_RANDOM; i++) {
-            assertEquals(items.at(i).valueInt(), target.removeInt(items.at(i).key()));
-            assertEquals(BASIC_REMOVE_RANDOM-i-1, target.size());
-        }
-        assertEquals(0, target.size());
-    }
-    
-    @Test
-    public void basicGet(Lookup<K> target) {
-        target.defaultReturnValue(-1);
-        assertEquals(-1, target.getInt($map.item(1).key()));
-
-        $map.list(1,2,3).into(target);
-        assertEquals(3, target.size());
-        assertEquals(-1, target.getInt($map.item(1,1).key()));
-        
-        assertEquals($map.item(1).valueInt(), target.getInt($map.item(1).key()));
-        assertEquals($map.item(2).valueInt(), target.getInt($map.item(2).key()));
-        assertEquals($map.item(3).valueInt(), target.getInt($map.item(3).key()));
-    }
-    
-    @Test
-    public void logicRemove(Lookup<K> target) {
-        target.defaultReturnValue(-1);
-		$map.list(1,2,3).into(target);
-        
-        assertEquals(-1, target.removeInt($map.item(1,1).key()));
-        assertEquals(3, target.size());
-		
-        assertContains(target, $map.item(1));
-        assertRemove(target, $map.item(1));
-        assertNotContains(target, $map.item(1));
-        
-        assertContains(target, $map.item(2));
-        assertRemove(target, $map.item(2));
-        assertNotContains(target, $map.item(2));
-        
-        assertContains(target, $map.item(3));
-        assertRemove(target, $map.item(3));
-        assertNotContains(target, $map.item(3));
-    }
-    
-    @Test
-    public void basicContains(Lookup<K> target) {
-        assertEquals(0, target.size());
-		$map.list(1,2).into(target);
-        
-        assertEquals(true, target.containsValue($map.item(1).value()));
-        assertEquals(true, target.containsValue($map.item(2).value()));
-        
-        assertEquals(false, target.containsValue($map.item(1,1).value()));
-        assertEquals(false, target.containsValue($map.item(3).value()));
-    }
-    
-	@Test
-    public void basicEntrySet_Iterator(Lookup<K> target) {
-        Set<Lookup.LookupEntry<K>> set = target.fastEntrySet();
-		
-        assertEquals(0, set.size());
-		$map.list().item(1).item(1,1).item(2).item(3).into(target);
-		assertEquals(4, set.size());
-        
-        Iterator<Lookup.LookupEntry<K>> iterator = set.iterator();
-        while(iterator.hasNext()) {
-            Lookup.LookupEntry<K> entry = iterator.next();
-            assertEquals(target.getInt(entry.getKey()), entry.getIntValue());
-        }
-        
-        QAssert.assertThrows(NoSuchElementException.class, ()-> iterator.next());
-	}
-    
-    @Test
-    public void basicEntrySet_Iterator_SetValue(Lookup<K> target) {
-        Set<Lookup.LookupEntry<K>> set = target.fastEntrySet();
-                
-		assertEquals(0, set.size());
-		$map.list().item(1).item(1,1).item(2).item(3).into(target);
-		K k1 = $map.item(1).key();
-		K k2 = $map.item(2).key();
-        int v1 = $map.item(101).valueInt();
-        int v2 = $map.item(102).valueInt();
-		
-		Iterator<Lookup.LookupEntry<K>> iterator = set.iterator();
-		while(iterator.hasNext()) {
-			Lookup.LookupEntry<K> entry = iterator.next();
-			if(k1.equals(entry.getKey())) {
-				entry.setValue(v1);
-			}
-			if(k2.equals(entry.getKey())) {
-				entry.setValue(v2);
-			}
-		}
-		assertContains(target, $map.item(1).key(), v1);
-		assertContains(target, $map.item(2).key(), v2);
-		assertContains(target, $map.item(1,1));
-		assertContains(target, $map.item(3));
-	}
-    
-    @Test
-    public void basicValues_Contains(Lookup<K> target) {
-        IntCollection set = target.values();
-		
-        assertEquals(0, set.size());
-		
-		$map.list().item(1).item(1,1).item(2).item(3).into(target);
-		assertEquals(4, set.size());
-        assertEquals(true, set.contains($map.item(1).value()));
-        assertEquals(true, set.contains($map.item(1,1).value()));
-        assertEquals(true, set.contains($map.item(2).value()));
-        assertEquals(true, set.contains($map.item(3).value()));
-        
-        assertEquals(false, set.contains($map.item(4).value()));
-        assertEquals(false, set.contains(new Object()));
-	}
-    
-    @Test
-    public void basicValues_Remove(Lookup<K> target) {
-        IntCollection set = target.values();
-		
-        basicValues_Contains(target);
-		
-        assertEquals(true, set.remove($map.item(1).value()));
-        assertEquals(false, set.remove($map.item(4).value()));
-        assertEquals(false, set.remove(new Object()));
-        
-        assertEquals(false, set.contains($map.item(1).value()));
-        assertEquals(true, set.contains($map.item(1,1).value()));
-        assertEquals(true, set.contains($map.item(2).value()));
-        assertEquals(true, set.contains($map.item(3).value()));
-	}
-   
-    @Test
-    public void basicValues_Iterator(Lookup<K> target) {
-        IntCollection set = target.values();
-		
-        assertEquals(0, set.size());
-		$map.list().item(1).item(1,1).item(2).item(3).into(target);
-		assertEquals(4, set.size());
-
-        IntIterator iterator = set.iterator();
-        while(iterator.hasNext()) {
-            int var = iterator.next();
-            assertEquals(true, target.containsValue(var));
-        }
-        
-        QAssert.assertThrows(NoSuchElementException.class, ()-> iterator.next());
-	}
-    
-    @SuppressWarnings("unchecked")
-    @Test
-    public void basicValues_Iterator_Remove(Lookup<K> target) {
-        IntCollection set = target.values();
-        
-		assertEquals(0, set.size());
-		$map.list().item(1).item(1,1).item(2).item(3).into(target);
-		
-		IntIterator iterator = set.iterator();
-		while(iterator.hasNext()) {
-			int var = iterator.next();
-			
-            if(var == $map.item(1).valueInt()) {
-                iterator.remove();
-            }
-            if(var == $map.item(2).valueInt()) {
-                iterator.remove();
-                QAssert.assertThrows(IllegalStateException.class, ()-> iterator.remove());
-            }
-		}
-        
-        assertEquals(2, target.size());
-        assertNotContains(target, $map.item(1));
-        assertNotContains(target, $map.item(2));
-		assertContains(target, $map.item(1,1));
-		assertContains(target, $map.item(3));
-        
-        set.clear();
-        assertEquals(0, target.size());
-	}
-        
-    private void assertRemove(Lookup<K> target, TItem<K,Integer> item) {
-        int size = target.size();
-        assertEquals(item.valueInt(), target.removeInt(item.key()));
-        assertEquals(size-1, target.size());
-    }
-    
-    private void assertNotRemove(Lookup<K> target, TItem<K,Integer> item) {
-        int size = target.size();
-        assertEquals(target.defaultReturnValue(), target.removeInt(item.key()));
-        assertEquals(size, target.size());
-    }
-	
-	private void assertContains(Lookup<K> target, K key, int value) {
-        assertEquals(true, target.containsKey(key));
-        assertEquals(value, target.getInt(key));
-    }
-    
-    private void assertContains(Lookup<K> target, TItem<K,Integer> item) {
-		assertContains(target, item.key(), item.valueInt());
-    }
-    
-    private void assertNotContains(Lookup<K> target, TItem<K,Integer> item) {
-        assertEquals(false, target.containsKey(item.key()));
-        assertEquals(target.defaultReturnValue(), target.getInt(item.key()));
-    }
-    
-}
+/*
+ * @author Ranides Atterwim <ranides@gmail.com>
+ * @copyright Ranides Atterwim
+ * @license WTFPL
+ * @url http://ranides.net/projects/???
+ */
+package net.ranides.assira.collection.suite.lookups;
+
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+import java.util.Set;
+import javax.annotation.Resource;
+import net.ranides.assira.collection.IntCollection;
+import net.ranides.assira.collection.iterators.IntIterator;
+import net.ranides.assira.collection.lookups.Lookup;
+import net.ranides.assira.test.TMap;
+import net.ranides.assira.test.TMap.TItem;
+import net.ranides.assira.test.TMap.TItems;
+import net.ranides.assira.junit.QAssert;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+/**
+ *
+ * @author Ranides Atterwim <ranides@gmail.com>
+ */
+@SuppressWarnings("PMD.MethodNameRules")
+public final class LookupTester<K> {
+    
+    @Resource(name = "map!")
+    private TMap<K,Integer> $map;
+	
+    private static final int BASIC_PUT_MANY = 128;
+    
+    private static final int BASIC_PUT_REPLACE = 40;
+    
+    private static final int BASIC_PUT_RANDOM = 220;
+    
+    private static final int BASIC_REMOVE_ALL = 97;
+    
+    private static final int BASIC_REMOVE_RANDOM = 273;
+    
+    @Test
+    public void basicPut(Lookup<K> target) {
+        int prev = target.size();
+        for(TItem<K,?> item :$map.range(0, BASIC_PUT_MANY)) {
+            target.put(item.key(), item.valueInt());
+        }
+        assertEquals(prev + BASIC_PUT_MANY, target.size());
+        
+        logicPut(target);
+    }
+    
+    @Test
+    public void logicPut(Lookup<K> target) {
+        int prev = target.size();
+        TItem<K,Integer> item1 = $map.item(1001,0);
+        TItem<K,Integer> item2 = $map.item(1001,1);
+        target.put(item1.key(), item1.valueInt());
+        assertEquals(prev + 1, target.size());
+        
+        target.put(item1.key(), item1.valueInt());
+        assertEquals(prev + 1, target.size());
+        
+        target.put(item2.key(), item2.valueInt()); // identical hash but not eq
+        assertEquals(prev + 2, target.size());
+    }
+    
+    @Test
+    public void basicPutReplace(Lookup<K> target) {
+        int prev = target.size();
+        for (TItem<K,Integer> item : $map.urange(0, BASIC_PUT_REPLACE)) {
+            target.put(item.key(), item.valueInt());
+        }
+        assertEquals(prev + (2 * BASIC_PUT_REPLACE), target.size());
+    }
+	
+	@Test
+    public void basicPutRandom(Lookup<K> target) {
+        int prev = target.size();
+        for (TItem<K,Integer> item : $map.urange(0, BASIC_PUT_RANDOM)) {
+            target.put(item.key(), item.valueInt());
+        }
+        assertEquals(prev + (2 * BASIC_PUT_RANDOM), target.size());
+    }
+	    
+    @Test
+    public void basicRemove(Lookup<K> target) {
+        target.defaultReturnValue(-1);
+        $map.list(1,2,3).into(target);
+        
+        assertNotRemove(target, $map.item(1,1));
+        
+        assertRemove(target, $map.item(1));
+        assertRemove(target, $map.item(2));
+        assertRemove(target, $map.item(3));
+        
+        assertEquals(0, target.size());
+        
+        assertNotRemove(target, $map.item(3));
+    }
+    
+    @Test
+    public void basicRemoveAll(Lookup<K> target) {
+        assertEquals(0, target.size());
+        TItems<K,Integer> items = $map.range(0, BASIC_REMOVE_ALL);
+        
+        items.into(target);
+        assertEquals(BASIC_REMOVE_ALL, target.size());
+        
+        for(int i=0; i<BASIC_REMOVE_ALL; i++) {
+            assertEquals(items.at(i).valueInt(), target.removeInt(items.at(i).key()));
+            assertEquals(BASIC_REMOVE_ALL-i-1, target.size());
+        }
+        assertEquals(0, target.size());
+    }
+    
+    @Test
+    public void basicRemoveRandom(Lookup<K> target) {
+        assertEquals(0, target.size());
+        TItems<K,Integer> items = $map.range(0, BASIC_REMOVE_RANDOM);
+        
+        items.into(target);
+        assertEquals(BASIC_REMOVE_RANDOM, target.size());
+
+        items.shuffle(777);
+        for(int i=0; i<BASIC_REMOVE_RANDOM; i++) {
+            assertEquals(items.at(i).valueInt(), target.removeInt(items.at(i).key()));
+            assertEquals(BASIC_REMOVE_RANDOM-i-1, target.size());
+        }
+        assertEquals(0, target.size());
+    }
+    
+    @Test
+    public void basicGet(Lookup<K> target) {
+        target.defaultReturnValue(-1);
+        assertEquals(-1, target.getInt($map.item(1).key()));
+
+        $map.list(1,2,3).into(target);
+        assertEquals(3, target.size());
+        assertEquals(-1, target.getInt($map.item(1,1).key()));
+        
+        assertEquals($map.item(1).valueInt(), target.getInt($map.item(1).key()));
+        assertEquals($map.item(2).valueInt(), target.getInt($map.item(2).key()));
+        assertEquals($map.item(3).valueInt(), target.getInt($map.item(3).key()));
+    }
+    
+    @Test
+    public void logicRemove(Lookup<K> target) {
+        target.defaultReturnValue(-1);
+		$map.list(1,2,3).into(target);
+        
+        assertEquals(-1, target.removeInt($map.item(1,1).key()));
+        assertEquals(3, target.size());
+		
+        assertContains(target, $map.item(1));
+        assertRemove(target, $map.item(1));
+        assertNotContains(target, $map.item(1));
+        
+        assertContains(target, $map.item(2));
+        assertRemove(target, $map.item(2));
+        assertNotContains(target, $map.item(2));
+        
+        assertContains(target, $map.item(3));
+        assertRemove(target, $map.item(3));
+        assertNotContains(target, $map.item(3));
+    }
+    
+    @Test
+    public void basicContains(Lookup<K> target) {
+        assertEquals(0, target.size());
+		$map.list(1,2).into(target);
+        
+        assertEquals(true, target.containsValue($map.item(1).value()));
+        assertEquals(true, target.containsValue($map.item(2).value()));
+        
+        assertEquals(false, target.containsValue($map.item(1,1).value()));
+        assertEquals(false, target.containsValue($map.item(3).value()));
+    }
+    
+	@Test
+    public void basicEntrySet_Iterator(Lookup<K> target) {
+        Set<Lookup.LookupEntry<K>> set = target.fastEntrySet();
+		
+        assertEquals(0, set.size());
+		$map.list().item(1).item(1,1).item(2).item(3).into(target);
+		assertEquals(4, set.size());
+        
+        Iterator<Lookup.LookupEntry<K>> iterator = set.iterator();
+        while(iterator.hasNext()) {
+            Lookup.LookupEntry<K> entry = iterator.next();
+            assertEquals(target.getInt(entry.getKey()), entry.getIntValue());
+        }
+        
+        QAssert.assertThrows(NoSuchElementException.class, ()-> iterator.next());
+	}
+    
+    @Test
+    public void basicEntrySet_Iterator_SetValue(Lookup<K> target) {
+        Set<Lookup.LookupEntry<K>> set = target.fastEntrySet();
+                
+		assertEquals(0, set.size());
+		$map.list().item(1).item(1,1).item(2).item(3).into(target);
+		K k1 = $map.item(1).key();
+		K k2 = $map.item(2).key();
+        int v1 = $map.item(101).valueInt();
+        int v2 = $map.item(102).valueInt();
+		
+		Iterator<Lookup.LookupEntry<K>> iterator = set.iterator();
+		while(iterator.hasNext()) {
+			Lookup.LookupEntry<K> entry = iterator.next();
+			if(k1.equals(entry.getKey())) {
+				entry.setValue(v1);
+			}
+			if(k2.equals(entry.getKey())) {
+				entry.setValue(v2);
+			}
+		}
+		assertContains(target, $map.item(1).key(), v1);
+		assertContains(target, $map.item(2).key(), v2);
+		assertContains(target, $map.item(1,1));
+		assertContains(target, $map.item(3));
+	}
+    
+    @Test
+    public void basicValues_Contains(Lookup<K> target) {
+        IntCollection set = target.values();
+		
+        assertEquals(0, set.size());
+		
+		$map.list().item(1).item(1,1).item(2).item(3).into(target);
+		assertEquals(4, set.size());
+        assertEquals(true, set.contains($map.item(1).value()));
+        assertEquals(true, set.contains($map.item(1,1).value()));
+        assertEquals(true, set.contains($map.item(2).value()));
+        assertEquals(true, set.contains($map.item(3).value()));
+        
+        assertEquals(false, set.contains($map.item(4).value()));
+        assertEquals(false, set.contains(new Object()));
+	}
+    
+    @Test
+    public void basicValues_Remove(Lookup<K> target) {
+        IntCollection set = target.values();
+		
+        basicValues_Contains(target);
+		
+        assertEquals(true, set.remove($map.item(1).value()));
+        assertEquals(false, set.remove($map.item(4).value()));
+        assertEquals(false, set.remove(new Object()));
+        
+        assertEquals(false, set.contains($map.item(1).value()));
+        assertEquals(true, set.contains($map.item(1,1).value()));
+        assertEquals(true, set.contains($map.item(2).value()));
+        assertEquals(true, set.contains($map.item(3).value()));
+	}
+   
+    @Test
+    public void basicValues_Iterator(Lookup<K> target) {
+        IntCollection set = target.values();
+		
+        assertEquals(0, set.size());
+		$map.list().item(1).item(1,1).item(2).item(3).into(target);
+		assertEquals(4, set.size());
+
+        IntIterator iterator = set.iterator();
+        while(iterator.hasNext()) {
+            int var = iterator.next();
+            assertEquals(true, target.containsValue(var));
+        }
+        
+        QAssert.assertThrows(NoSuchElementException.class, ()-> iterator.next());
+	}
+    
+    @SuppressWarnings("unchecked")
+    @Test
+    public void basicValues_Iterator_Remove(Lookup<K> target) {
+        IntCollection set = target.values();
+        
+		assertEquals(0, set.size());
+		$map.list().item(1).item(1,1).item(2).item(3).into(target);
+		
+		IntIterator iterator = set.iterator();
+		while(iterator.hasNext()) {
+			int var = iterator.next();
+			
+            if(var == $map.item(1).valueInt()) {
+                iterator.remove();
+            }
+            if(var == $map.item(2).valueInt()) {
+                iterator.remove();
+                QAssert.assertThrows(IllegalStateException.class, ()-> iterator.remove());
+            }
+		}
+        
+        assertEquals(2, target.size());
+        assertNotContains(target, $map.item(1));
+        assertNotContains(target, $map.item(2));
+		assertContains(target, $map.item(1,1));
+		assertContains(target, $map.item(3));
+        
+        set.clear();
+        assertEquals(0, target.size());
+	}
+        
+    private void assertRemove(Lookup<K> target, TItem<K,Integer> item) {
+        int size = target.size();
+        assertEquals(item.valueInt(), target.removeInt(item.key()));
+        assertEquals(size-1, target.size());
+    }
+    
+    private void assertNotRemove(Lookup<K> target, TItem<K,Integer> item) {
+        int size = target.size();
+        assertEquals(target.defaultReturnValue(), target.removeInt(item.key()));
+        assertEquals(size, target.size());
+    }
+	
+	private void assertContains(Lookup<K> target, K key, int value) {
+        assertEquals(true, target.containsKey(key));
+        assertEquals(value, target.getInt(key));
+    }
+    
+    private void assertContains(Lookup<K> target, TItem<K,Integer> item) {
+		assertContains(target, item.key(), item.valueInt());
+    }
+    
+    private void assertNotContains(Lookup<K> target, TItem<K,Integer> item) {
+        assertEquals(false, target.containsKey(item.key()));
+        assertEquals(target.defaultReturnValue(), target.getInt(item.key()));
+    }
+    
+}

+ 1 - 1
assira/src/test/java/net/ranides/assira/collection/suite/SortedLookupTester.java

@@ -4,7 +4,7 @@
  * @license WTFPL
  * @url http://ranides.net/projects/assira
  */
-package net.ranides.assira.collection.suite;
+package net.ranides.assira.collection.suite.lookups;
 
 import java.util.NoSuchElementException;
 import java.util.SortedSet;

+ 1 - 1
assira/src/test/java/net/ranides/assira/collection/suite/AHashMapTester.java

@@ -4,7 +4,7 @@
  * @license WTFPL
  * @url http://ranides.net/projects/???
  */
-package net.ranides.assira.collection.suite;
+package net.ranides.assira.collection.suite.maps;
 
 import java.util.Iterator;
 import java.util.Map;

+ 3 - 1
assira/src/test/java/net/ranides/assira/collection/suite/ASortedMapTester.java

@@ -4,7 +4,7 @@
  * @license WTFPL
  * @url http://ranides.net/projects/assira
  */
-package net.ranides.assira.collection.suite;
+package net.ranides.assira.collection.suite.maps;
 
 import java.util.ListIterator;
 import java.util.Map.Entry;
@@ -14,6 +14,8 @@ import java.util.SortedSet;
 import javax.annotation.Resource;
 import net.ranides.assira.collection.arrays.ArrayUtils;
 import net.ranides.assira.collection.maps.ASortedMap;
+import net.ranides.assira.collection.suite.IteratorTester;
+import net.ranides.assira.collection.suite.SetTester;
 import net.ranides.assira.junit.QAssert;
 import net.ranides.assira.test.TMap;
 import net.ranides.assira.test.TMap.TItem;

+ 1 - 1
assira/src/test/java/net/ranides/assira/collection/suite/IntHashMapTester.java

@@ -4,7 +4,7 @@
  * @license WTFPL
  * @url http://ranides.net/projects/???
  */
-package net.ranides.assira.collection.suite;
+package net.ranides.assira.collection.suite.maps;
 
 import java.util.Iterator;
 import java.util.NoSuchElementException;

+ 1 - 1
assira/src/test/java/net/ranides/assira/collection/suite/IntMapTester.java

@@ -4,7 +4,7 @@
  * @license WTFPL
  * @url http://ranides.net/projects/???
  */
-package net.ranides.assira.collection.suite;
+package net.ranides.assira.collection.suite.maps;
 
 import java.util.Collection;
 import java.util.Iterator;

+ 3 - 1
assira/src/test/java/net/ranides/assira/collection/suite/IntSortedMapTester.java

@@ -4,11 +4,13 @@
  * @license WTFPL
  * @url http://ranides.net/projects/assira
  */
-package net.ranides.assira.collection.suite;
+package net.ranides.assira.collection.suite.maps;
 
 import java.util.ListIterator;
 import javax.annotation.Resource;
 import net.ranides.assira.collection.maps.IntSortedMap;
+import net.ranides.assira.collection.suite.IteratorTester;
+import net.ranides.assira.collection.suite.SetTester;
 import net.ranides.assira.test.TMap;
 import net.ranides.assira.test.TMap.TItem;
 import net.ranides.assira.test.TMap.TItems;

+ 1 - 1
assira/src/test/java/net/ranides/assira/collection/suite/MapTester.java

@@ -4,7 +4,7 @@
  * @license WTFPL
  * @url http://ranides.net/projects/???
  */
-package net.ranides.assira.collection.suite;
+package net.ranides.assira.collection.suite.maps;
 
 import java.util.Collection;
 import java.util.Iterator;

+ 1 - 1
assira/src/test/java/net/ranides/assira/collection/suite/SortedMapTester.java

@@ -4,7 +4,7 @@
  * @license WTFPL
  * @url http://ranides.net/projects/assira
  */
-package net.ranides.assira.collection.suite;
+package net.ranides.assira.collection.suite.maps;
 
 import java.util.ListIterator;
 import java.util.Map.Entry;