package com.github.liblevenshtein; import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; import org.testng.annotations.Test; import static org.assertj.core.api.Assertions.assertThat; import com.github.liblevenshtein.collection.dictionary.Dawg; import com.github.liblevenshtein.collection.dictionary.factory.DawgFactory; /** * Regression test for issue #10, "Out-of-dictionary results returned". * @see https://github.com/universal-automata/liblevenshtein-java/issues/10 */ public class Issue10RegrTest { @Test public void testOverlappingDictionaryTerms() { final List<String> terms = Arrays.asList( "Representatives", "Resource", "Resources"); final DawgFactory factory = new DawgFactory(); final Dawg dictionary = factory.build(terms, false); final Set<String> visited = new HashSet<>(); final Iterator<String> iter = dictionary.iterator(); while (iter.hasNext()) { final String term = iter.next(); assertThat(visited).doesNotContain(term); assertThat(terms).contains(term); visited.add(term); } assertThat(visited.size()).isEqualTo(terms.size()); } }