package com.github.liblevenshtein;
import java.util.Arrays;
import java.util.List;
import org.testng.annotations.Test;
import static org.assertj.core.api.Assertions.assertThat;
import com.github.liblevenshtein.transducer.Algorithm;
import com.github.liblevenshtein.transducer.Candidate;
import com.github.liblevenshtein.transducer.ITransducer;
import com.github.liblevenshtein.transducer.factory.TransducerBuilder;
/**
* Regression test for issue #2, "Standard algorithm seems to be off".
* @see https://github.com/universal-automata/liblevenshtein-java/issues/2
*/
public class Issue2RegrTest {
@Test
@SuppressWarnings("checkstyle:multiplestringliterals")
public void testStandardDistances() {
final List<String> terms = Arrays.asList("foo", "bar", "baz");
final ITransducer<Candidate> transducer = new TransducerBuilder()
.defaultMaxDistance(Integer.MAX_VALUE)
.algorithm(Algorithm.STANDARD)
.includeDistance(true)
.dictionary(terms)
.build();
final Iterable<Candidate> candidates = transducer.transduce("foo");
assertThat(candidates).contains(new Candidate("foo", 0));
}
}