Fix incorrect span indices for normalised search text.

This commit is contained in:
Sagar
2025-04-23 23:03:09 +05:30
committed by Cody Henthorne
parent 64239962fc
commit 7b3897cac6
2 changed files with 101 additions and 24 deletions

View File

@@ -4,6 +4,7 @@ import org.junit.Test;
import org.signal.libsignal.protocol.util.Pair;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
@@ -81,6 +82,60 @@ public class SearchUtilTest {
assertEquals(Arrays.asList(new Pair<>(0, 1)), result);
}
@Test
public void getHighlightRanges_singleHighlightTokenMultipleMatches_turkish_text() {
String text = "İaİ";
String highlight = "i";
List<Pair<Integer, Integer>> result = SearchUtil.getHighlightRanges(LOCALE, text, highlight);
assertEquals(List.of(new Pair<>(0, 1), new Pair<>(2, 3)), result);
}
@Test
public void getHighlightRanges_singleHighlightTokenMultipleMatches_turkish_both() {
String text = "İaİ";
String highlight = "İaİ";
List<Pair<Integer, Integer>> result = SearchUtil.getHighlightRanges(LOCALE, text, highlight);
assertEquals(List.of(new Pair<>(0, 3)), result);
}
@Test
public void getHighlightRanges_singleHighlightTokenMultipleMatches_turkish_highlight() {
String text = "iai";
String highlight = "İaİ";
List<Pair<Integer, Integer>> result = SearchUtil.getHighlightRanges(LOCALE, text, highlight);
assertEquals(Collections.emptyList(), result);
}
@Test
public void getStrictHighlightRanges_singleHighlightToken_turkish_text() {
String text = "İaİ";
String highlight = "i";
List<Pair<Integer, Integer>> result = SearchUtil.getStrictHighlightRanges(LOCALE, text, highlight);
assertEquals(List.of(new Pair<>(0, 1)), result);
}
@Test
public void getStrictHighlightRanges_singleHighlightToken_turkish_highlight() {
String text = "iai";
String highlight = "İaİ";
List<Pair<Integer, Integer>> result = SearchUtil.getStrictHighlightRanges(LOCALE, text, highlight);
assertEquals(Collections.emptyList(), result);
}
@Test
public void getStrictHighlightRanges_singleHighlightToken_turkish_both() {
String text = "İaİ";
String highlight = "İaİ";
List<Pair<Integer, Integer>> result = SearchUtil.getStrictHighlightRanges(LOCALE, text, highlight);
assertEquals(List.of(new Pair<>(0, 3)), result);
}
@Test
public void getHighlightRanges_singleHighlightTokenMultipleMatches() {
String text = "blabla";