@Test
public void testDynamicWeights() {
FeatureVectorEncoder enc = new AdaptiveWordValueEncoder("word");
Vector v = new DenseVector(200);
enc.addToVector("word1", v);
enc.addToVector("word2", v);
enc.addToVector("word1", v);
enc.addToVector("word3", v);
Iterator<Vector.Element> i = v.nonZeroes().iterator();
Iterator<Integer> j = ImmutableList.of(7, 101, 118, 119, 152, 199).iterator();
Iterator<Double> k = ImmutableList.of(Math.log(2 / 1.5) + Math.log(4.5 / 2.5),
Math.log(6 / 1.5), Math.log(3.5 / 1.5),
Math.log(3.5 / 1.5), Math.log(6 / 1.5),
Math.log(2 / 1.5) + Math.log(4.5 / 2.5)).iterator();
while (i.hasNext()) {
Vector.Element element = i.next();
assertEquals(j.next().intValue(), element.index());
assertEquals(k.next(), element.get(), 1.0e-6);
}
assertFalse(j.hasNext());
}
}