package edu.stanford.nlp.classify;
import edu.stanford.nlp.ling.RVFDatum;
import edu.stanford.nlp.stats.Counters;
import junit.framework.TestCase;
import java.util.Arrays;
/**
* TODO(gabor) JavaDoc
*
* @author Gabor Angeli
*/
public class WeightedRVFDatasetTest extends TestCase {
public void testWeightingWorks() {
WeightedRVFDataset<String, String> dataset = new WeightedRVFDataset<>();
RVFDatum<String, String> datum1 = newRVFDatum(null, "a", "b", "a");
dataset.add(datum1, 42.0f);
RVFDatum<String, String> datum2 = newRVFDatum(null, "a", "b", "a");
dataset.add(datum2, 7.3f);
assertEquals(42.0f, dataset.getWeights()[0], 1e-10);
assertEquals(7.3f, dataset.getWeights()[1], 1e-10);
}
public void testBackwardsCompatibility() {
RVFDataset<String, String> dataset = new WeightedRVFDataset<>();
RVFDatum<String, String> datum1 = newRVFDatum(null, "a", "b", "a");
dataset.add(datum1);
RVFDatum<String, String> datum2 = newRVFDatum(null, "a", "b", "a");
dataset.add(datum2);
assertEquals(1.0f, ((WeightedRVFDataset<String, String>) dataset).getWeights()[0], 1e-10);
assertEquals(1.0f, ((WeightedRVFDataset<String, String>) dataset).getWeights()[1], 1e-10);
}
public void testMixedCompatibility() {
WeightedRVFDataset<String, String> dataset = new WeightedRVFDataset<>();
RVFDatum<String, String> datum1 = newRVFDatum(null, "a", "b", "a");
dataset.add(datum1, 42.0f);
RVFDatum<String, String> datum2 = newRVFDatum(null, "a", "b", "a");
dataset.add(datum2);
RVFDatum<String, String> datum3 = newRVFDatum(null, "a", "b", "a");
dataset.add(datum3, 7.3f);
assertEquals(42.0f, dataset.getWeights()[0], 1e-10);
assertEquals(1.0f, dataset.getWeights()[1], 1e-10);
assertEquals(7.3f, dataset.getWeights()[2], 1e-10);
}
private static <L, F> RVFDatum<L, F> newRVFDatum(L label, F ... items) {
return new RVFDatum<>(Counters.asCounter(Arrays.asList(items)), label);
}
}