public void testDotProduct() { HashedSparseVector t1 = new HashedSparseVector(new int[] {7}, new double[] {0.2}); assertEquals(0.6, t1.dotProduct(s1), 0.00001); assertEquals(0.6, s1.dotProduct(t1), 0.00001); assertEquals(19.0, s1.dotProduct(s2), 0.00001); assertEquals(19.0, s2.dotProduct(s1), 0.00001); assertEquals(11.9, s1.dotProduct(d1), 0.00001); assertEquals(10.1, s2.dotProduct(d1), 0.00001); }
public void testBinaryVector() { HashedSparseVector binary1 = new HashedSparseVector(idxs, null, idxs.length, idxs.length, false, false, false); HashedSparseVector binary2 = new HashedSparseVector(idx2, null, idx2.length, idx2.length, false, false, false); assertEquals(3, binary1.dotProduct(binary2), 0.0001); assertEquals(3, binary2.dotProduct(binary1), 0.0001); assertEquals(15.0, binary1.dotProduct(s1), 0.0001); assertEquals(15.0, s1.dotProduct(binary1), 0.0001); assertEquals(9.0, binary2.dotProduct(s1), 0.0001); assertEquals(9.0, s1.dotProduct(binary2), 0.0001); HashedSparseVector dblVec = (HashedSparseVector) s1.cloneMatrix(); dblVec.plusEqualsSparse(binary1); checkAnswer(dblVec, new double[] {2, 3, 4, 5, 6}); HashedSparseVector dblVec2 = (HashedSparseVector) s1.cloneMatrix(); dblVec2.plusEqualsSparse(binary2); checkAnswer(dblVec2, new double[] {2, 2, 4, 4, 6}); }