//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.annotators.cleaners; import static org.junit.Assert.assertEquals; import org.apache.uima.analysis_engine.AnalysisEngine; import org.apache.uima.fit.factory.AnalysisEngineFactory; import org.apache.uima.fit.util.JCasUtil; import org.junit.Test; import uk.gov.dstl.baleen.annotators.cleaners.CurrencyDetection; import uk.gov.dstl.baleen.annotators.testing.AnnotatorTestBase; import uk.gov.dstl.baleen.types.common.Money; public class CurrencyDetectionTest extends AnnotatorTestBase { @Test public void testText() throws Exception{ jCas.setDocumentText("10 USD is the equivalent of GBP 6.60 or 8.80EUR"); Money usd = new Money(jCas); usd.setValue("10 USD"); usd.addToIndexes(); Money gbp = new Money(jCas); gbp.setValue("GBP 6.60"); gbp.addToIndexes(); Money eur = new Money(jCas); eur.setValue("8.80EUR"); eur.addToIndexes(); AnalysisEngine cleaner = AnalysisEngineFactory.createEngine(CurrencyDetection.class); cleaner.process(jCas); assertEquals(3, JCasUtil.select(jCas, Money.class).size()); assertEquals("10 USD", JCasUtil.selectByIndex(jCas, Money.class, 0).getValue()); assertEquals("USD", JCasUtil.selectByIndex(jCas, Money.class, 0).getCurrency()); assertEquals("GBP 6.60", JCasUtil.selectByIndex(jCas, Money.class, 2).getValue()); assertEquals("GBP", JCasUtil.selectByIndex(jCas, Money.class, 2).getCurrency()); assertEquals("8.80EUR", JCasUtil.selectByIndex(jCas, Money.class, 1).getValue()); assertEquals("EUR", JCasUtil.selectByIndex(jCas, Money.class, 1).getCurrency()); } @Test public void testSymbols() throws Exception{ jCas.setDocumentText("$10 is the equivalent of £6.60 or €8.80"); Money usd = new Money(jCas); usd.setValue("$10"); usd.addToIndexes(); Money gbp = new Money(jCas); gbp.setValue("£6.60"); gbp.addToIndexes(); Money eur = new Money(jCas); eur.setValue("€8.80"); eur.addToIndexes(); AnalysisEngine cleaner = AnalysisEngineFactory.createEngine(CurrencyDetection.class); cleaner.process(jCas); assertEquals(3, JCasUtil.select(jCas, Money.class).size()); assertEquals("$10", JCasUtil.selectByIndex(jCas, Money.class, 0).getValue()); assertEquals("USD", JCasUtil.selectByIndex(jCas, Money.class, 0).getCurrency()); assertEquals("£6.60", JCasUtil.selectByIndex(jCas, Money.class, 2).getValue()); assertEquals("GBP", JCasUtil.selectByIndex(jCas, Money.class, 2).getCurrency()); assertEquals("€8.80", JCasUtil.selectByIndex(jCas, Money.class, 1).getValue()); assertEquals("EUR", JCasUtil.selectByIndex(jCas, Money.class, 1).getCurrency()); } }