|
| 1 | +package fr.zcraft.quartzlib.tools.text; |
| 2 | + |
| 3 | +import java.util.Arrays; |
| 4 | +import java.util.List; |
| 5 | +import org.junit.Test; |
| 6 | +import org.junit.jupiter.api.Assertions; |
| 7 | + |
| 8 | +public class StringUtilsTests { |
| 9 | + @Test |
| 10 | + public void canComputeLevenshteinDistance() { |
| 11 | + Assertions.assertEquals(0, StringUtils.levenshteinDistance("foo", "foo")); |
| 12 | + Assertions.assertEquals(1, StringUtils.levenshteinDistance("fooa", "foo")); |
| 13 | + Assertions.assertEquals(1, StringUtils.levenshteinDistance("foo", "fooa")); |
| 14 | + Assertions.assertEquals(1, StringUtils.levenshteinDistance("fao", "foo")); |
| 15 | + Assertions.assertEquals(6, StringUtils.levenshteinDistance("fooaaaaaa", "foo")); |
| 16 | + Assertions.assertEquals(2, StringUtils.levenshteinDistance("f", "foo")); |
| 17 | + Assertions.assertEquals(3, StringUtils.levenshteinDistance("a", "foo")); |
| 18 | + } |
| 19 | + |
| 20 | + @Test |
| 21 | + public void canFindLevenshteinNearest() { |
| 22 | + List<String> candidates = Arrays.asList("add", "list", "open"); |
| 23 | + |
| 24 | + Assertions.assertEquals("add", StringUtils.levenshteinNearest("foo", candidates, 10)); |
| 25 | + Assertions.assertEquals("add", StringUtils.levenshteinNearest("adf", candidates, 10)); |
| 26 | + Assertions.assertEquals("open", StringUtils.levenshteinNearest("openn", candidates, 10)); |
| 27 | + Assertions.assertNull(StringUtils.levenshteinNearest("kkkkkkkkkkkkkkkk", candidates, 10)); |
| 28 | + } |
| 29 | +} |
0 commit comments