You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by bi...@apache.org on 2010/01/17 13:47:32 UTC

svn commit: r900132 - /lucene/mahout/trunk/math/src/test/java-templates/org/apache/mahout/math/set/OpenKeyTypeHashSetTest.java.t

Author: bimargulies
Date: Sun Jan 17 12:47:32 2010
New Revision: 900132

URL: http://svn.apache.org/viewvc?rev=900132&view=rev
Log:
MAHOUT-254: unit tests for primitive sets

Added:
    lucene/mahout/trunk/math/src/test/java-templates/org/apache/mahout/math/set/OpenKeyTypeHashSetTest.java.t

Added: lucene/mahout/trunk/math/src/test/java-templates/org/apache/mahout/math/set/OpenKeyTypeHashSetTest.java.t
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/math/src/test/java-templates/org/apache/mahout/math/set/OpenKeyTypeHashSetTest.java.t?rev=900132&view=auto
==============================================================================
--- lucene/mahout/trunk/math/src/test/java-templates/org/apache/mahout/math/set/OpenKeyTypeHashSetTest.java.t (added)
+++ lucene/mahout/trunk/math/src/test/java-templates/org/apache/mahout/math/set/OpenKeyTypeHashSetTest.java.t Sun Jan 17 12:47:32 2010
@@ -0,0 +1,177 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ 
+#if (${keyTypeFloating} == 'true')
+#set ($keyEpsilon = ", (${keyType})0.000001")
+#else 
+#set ($keyEpsilon = "")
+#end
+  
+package org.apache.mahout.math.set;
+ 
+import java.util.Arrays;
+
+import org.apache.mahout.math.function.${keyTypeCap}Procedure;
+import org.apache.mahout.math.list.${keyTypeCap}ArrayList;
+import org.apache.mahout.math.map.PrimeFinder;
+import org.apache.mahout.math.set.AbstractSet;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class Open${keyTypeCap}HashSetTest extends Assert {
+
+  
+  @Test
+  public void testConstructors() {
+    Open${keyTypeCap}HashSet map = new Open${keyTypeCap}HashSet();
+    int[] capacity = new int[1];
+    double[] minLoadFactor = new double[1];
+    double[] maxLoadFactor = new double[1];
+    
+    map.getInternalFactors(capacity, minLoadFactor, maxLoadFactor);
+    assertEquals(AbstractSet.defaultCapacity, capacity[0]);
+    assertEquals(AbstractSet.defaultMaxLoadFactor, maxLoadFactor[0], 0.001);
+    assertEquals(AbstractSet.defaultMinLoadFactor, minLoadFactor[0], 0.001);
+    int prime = PrimeFinder.nextPrime(907);
+    map = new Open${keyTypeCap}HashSet(prime);
+    
+    map.getInternalFactors(capacity, minLoadFactor, maxLoadFactor);
+    assertEquals(prime, capacity[0]);
+    assertEquals(AbstractSet.defaultMaxLoadFactor, maxLoadFactor[0], 0.001);
+    assertEquals(AbstractSet.defaultMinLoadFactor, minLoadFactor[0], 0.001);
+    
+    map = new Open${keyTypeCap}HashSet(prime, 0.4, 0.8);
+    map.getInternalFactors(capacity, minLoadFactor, maxLoadFactor);
+    assertEquals(prime, capacity[0]);
+    assertEquals(0.4, minLoadFactor[0], 0.001);
+    assertEquals(0.8, maxLoadFactor[0], 0.001);
+  }
+  
+  @Test
+  public void testEnsureCapacity() {
+    Open${keyTypeCap}HashSet map = new Open${keyTypeCap}HashSet();
+    int prime = PrimeFinder.nextPrime(907);
+    
+    map.ensureCapacity(prime);
+    int[] capacity = new int[1];
+    double[] minLoadFactor = new double[1];
+    double[] maxLoadFactor = new double[1];
+    
+    map.getInternalFactors(capacity, minLoadFactor, maxLoadFactor);
+    assertEquals(prime, capacity[0]);
+  }
+  
+  @Test
+  public void testClear() {
+    Open${keyTypeCap}HashSet map = new Open${keyTypeCap}HashSet();
+    map.add((${keyType}) 11);
+    assertEquals(1, map.size());
+    map.clear();
+    assertEquals(0, map.size());
+  }
+  
+  @Test
+  public void testClone() {
+    Open${keyTypeCap}HashSet map = new Open${keyTypeCap}HashSet();
+    map.add((${keyType}) 11);
+    Open${keyTypeCap}HashSet map2 = (Open${keyTypeCap}HashSet) map.clone();
+    map.clear();
+    assertEquals(1, map2.size());
+  }
+  
+  @Test
+  public void testContains() {
+    Open${keyTypeCap}HashSet map = new Open${keyTypeCap}HashSet();
+    map.add(($keyType) 11);
+    assertTrue(map.contains(($keyType) 11));
+    assertFalse(map.contains(($keyType) 12));
+  }
+  
+  @Test
+  public void testForEachKey() {
+    final ${keyTypeCap}ArrayList keys = new ${keyTypeCap}ArrayList();
+    Open${keyTypeCap}HashSet map = new Open${keyTypeCap}HashSet();
+    map.add(($keyType) 11);
+    map.add(($keyType) 12);
+    map.add(($keyType) 13);
+    map.add(($keyType) 14);
+    map.remove(($keyType) 13);
+    map.forEachKey(new ${keyTypeCap}Procedure() {
+      
+      @Override
+      public boolean apply(${keyType} element) {
+        keys.add(element);
+        return true;
+      }
+    });
+    
+    ${keyType}[] keysArray = keys.toArray(new ${keyType}[keys.size()]);
+    Arrays.sort(keysArray);
+    
+    assertArrayEquals(new ${keyType}[] {11, 12, 14}, keysArray ${keyEpsilon});
+  }
+  
+  @Test
+  public void testKeys() {
+    Open${keyTypeCap}HashSet map = new Open${keyTypeCap}HashSet();
+    map.add(($keyType) 11);
+    map.add(($keyType) 12);
+    ${keyTypeCap}ArrayList keys = new ${keyTypeCap}ArrayList();
+    map.keys(keys);
+    keys.sort();
+    assertEquals(11, keys.get(0) ${keyEpsilon});
+    assertEquals(12, keys.get(1) ${keyEpsilon});
+    ${keyTypeCap}ArrayList k2 = map.keys();
+    k2.sort();
+    assertEquals(keys, k2);
+  }
+  
+  // tests of the code in the abstract class
+  
+  @Test
+  public void testCopy() {
+    Open${keyTypeCap}HashSet map = new Open${keyTypeCap}HashSet();
+    map.add(($keyType) 11);
+    Open${keyTypeCap}HashSet map2 = (Open${keyTypeCap}HashSet) map.copy();
+    map.clear();
+    assertEquals(1, map2.size());
+  }
+  
+  @Test
+  public void testEquals() {
+    // since there are no other subclasses of 
+    // Abstractxxx available, we have to just test the
+    // obvious.
+    Open${keyTypeCap}HashSet map = new Open${keyTypeCap}HashSet();
+    map.add(($keyType) 11);
+    map.add(($keyType) 12);
+    map.add(($keyType) 13);
+    map.add(($keyType) 14);
+    map.remove(($keyType) 13);
+    Open${keyTypeCap}HashSet map2 = (Open${keyTypeCap}HashSet) map.copy();
+    assertTrue(map.equals(map2));
+    assertTrue(map2.equals(map));
+    assertFalse("Hello Sailor".equals(map));
+    assertFalse(map.equals("hello sailor"));
+    map2.remove(($keyType) 11);
+    assertFalse(map.equals(map2));
+    assertFalse(map2.equals(map));
+  }
+ }