package org.voyanttools.trombone.tool; import static org.junit.Assert.*; import java.io.IOException; import java.util.List; import org.junit.Test; import org.voyanttools.trombone.model.DocumentCollocate; import org.voyanttools.trombone.storage.Storage; import org.voyanttools.trombone.storage.file.FileStorage; import org.voyanttools.trombone.tool.corpus.CorpusCreator; import org.voyanttools.trombone.tool.corpus.DocumentCollocates; import org.voyanttools.trombone.util.FlexibleParameters; import org.voyanttools.trombone.util.TestHelper; public class DocumentCollocatesTest { @Test public void test() throws IOException { // Storage storage = TestHelper.getDefaultTestStorage(); Storage storage = new FileStorage(TestHelper.getTemporaryTestStorageDirectory()); // add another file to the storage FlexibleParameters parameters = new FlexibleParameters(new String[]{"file="+TestHelper.getResource("udhr/udhr-fr.txt")}); CorpusCreator creator = new CorpusCreator(storage, parameters); creator.run(); // add the testing file to the storage parameters = new FlexibleParameters(new String[]{"file="+TestHelper.getResource("udhr/udhr-en.txt")}); creator = new CorpusCreator(storage, parameters); creator.run(); parameters.setParameter("corpus", creator.getStoredId()); parameters.setParameter("query", "human"); DocumentCollocates documentCollocates; List<DocumentCollocate> documentCollocatesList; DocumentCollocate documentCollocate; // run with default sort contextDocumentRelativeDifferenceDescending documentCollocates = new DocumentCollocates(storage, parameters); documentCollocates.run(); documentCollocatesList = documentCollocates.getDocumentCollocates(); documentCollocate = documentCollocatesList.get(0); assertEquals("1", documentCollocate.getTerm()); // run with terms sort parameters.setParameter("sort", "termAsc"); documentCollocates = new DocumentCollocates(storage, parameters); documentCollocates.run(); documentCollocatesList = documentCollocates.getDocumentCollocates(); documentCollocate = documentCollocatesList.get(documentCollocatesList.size()-1); assertEquals(documentCollocate.getTerm(), "world"); // run with terms relative frequency of context terms sort parameters.setParameter("sort", "relDesc"); documentCollocates = new DocumentCollocates(storage, parameters); documentCollocates.run(); documentCollocatesList = documentCollocates.getDocumentCollocates(); documentCollocate = documentCollocatesList.get(0); assertEquals("1", documentCollocate.getTerm()); documentCollocate = documentCollocatesList.get(documentCollocatesList.size()-1); assertEquals("world", documentCollocate.getTerm()); // run with terms relative frequency of context terms sort parameters.setParameter("sort", "rawDesc"); documentCollocates = new DocumentCollocates(storage, parameters); documentCollocates.run(); documentCollocatesList = documentCollocates.getDocumentCollocates(); documentCollocate = documentCollocatesList.get(0); assertEquals("should", documentCollocate.getTerm()); documentCollocate = documentCollocatesList.get(documentCollocatesList.size()-1); assertEquals("world", documentCollocate.getTerm()); // run with terms relative frequency of context terms sort parameters.setParameter("sort", DocumentCollocate.Sort.docRelDesc.name()); documentCollocates = new DocumentCollocates(storage, parameters); documentCollocates.run(); documentCollocatesList = documentCollocates.getDocumentCollocates(); documentCollocate = documentCollocatesList.get(0); assertEquals("1", documentCollocate.getTerm()); documentCollocate = documentCollocatesList.get(documentCollocatesList.size()-1); assertEquals("world", documentCollocate.getTerm()); // run with terms relative frequency of context terms sort parameters.setParameter("sort", "docRawDesc"); documentCollocates = new DocumentCollocates(storage, parameters); documentCollocates.run(); documentCollocatesList = documentCollocates.getDocumentCollocates(); documentCollocate = documentCollocatesList.get(0); assertEquals("the", documentCollocate.getTerm()); documentCollocate = documentCollocatesList.get(documentCollocatesList.size()-1); assertEquals("world", documentCollocate.getTerm()); } }