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.ITransducer; import com.github.liblevenshtein.transducer.factory.TransducerBuilder; /** * Regression test for issue #6, "Dictionary phrases sometimes appear to be * dropped". * @see https://github.com/universal-automata/liblevenshtein-java/issues/6 */ public class Issue6RegrTest { @Test public void testOverlappingDictionaryTerms() { final List<String> terms = Arrays.asList( "Representatives", "Resource", "Resources"); final ITransducer<String> transducer = new TransducerBuilder() .algorithm(Algorithm.TRANSPOSITION) .defaultMaxDistance(2) .includeDistance(false) .dictionary(terms) .build(); for (final String term : terms) { final Iterable<String> candidates = transducer.transduce(term); assertThat(candidates).contains(term); } } }