package org.molgenis.data.semanticsearch.string;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
public class NgramDistanceAlgorithmTest
{
@Test
public void calculateScore()
{
assertEquals(NGramDistanceAlgorithm.stringMatching("hypertensive", "hypertensive"), 100.0);
assertEquals(NGramDistanceAlgorithm.stringMatching("hypertensive disorder", "hypertensive order"), 72.727,
0.001);
assertEquals(NGramDistanceAlgorithm.stringMatching("hypertensive", "diabetes"), 0.0);
}
@Test
public void createNGrams()
{
assertEquals(NGramDistanceAlgorithm.createNGrams("hypertensions", true).toString(),
"{hy=1, te=1, s$=1, rt=1, pe=1, ns=1, yp=1, en=1, ^h=1, er=1}");
assertEquals(NGramDistanceAlgorithm.createNGrams("hypertensive disorder", true).toString(),
"{d$=1, rt=1, or=1, ns=1, di=1, ^d=1, en=1, ^h=1, is=1, er=1, hy=1, te=1, s$=1, rd=1, pe=1, yp=1, so=1}");
assertEquals(NGramDistanceAlgorithm.createNGrams("hypertensive disorder disorder", true).toString(),
"{d$=2, rt=1, or=2, ns=1, di=2, ^d=2, en=1, ^h=1, is=2, er=1, hy=1, te=1, s$=1, rd=2, pe=1, yp=1, so=2}");
assertEquals(NGramDistanceAlgorithm.createNGrams("WHERE IS PAitent", true).toString(),
"{t$=1, pa=1, te=1, ^p=1, nt=1, ai=1, en=1, it=1}");
assertEquals(NGramDistanceAlgorithm.createNGrams("WHERE IS PAitent", false).toString(),
"{nt=1, ai=1, en=1, ^i=1, it=1, er=1, t$=1, wh=1, pa=1, te=1, ^p=1, re=1, ^w=1, i$=1, he=1, e$=1}");
}
}