package com.interview.string;
import com.interview.TestUtil;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
public class PalindromePairTest {
@Test
public void testDifferentCases() {
PalindromePair palindromePair = new PalindromePair();
TestUtil testUtil = new TestUtil();
String[] words = {"bat", "tab"};
List<List<Integer>> result = palindromePair.palindromePairs(words);
testUtil.compareListOfList(createList(0, 1, 1, 0), result);
String[] words1 = {"abcd", "dcba", "lls", "s", "sssll"};
result = palindromePair.palindromePairs(words1);
testUtil.compareListOfList(createList(0, 1, 1, 0, 3, 2, 2, 4), result);
String[] words2 = {"", "abcd", "abba"};
result = palindromePair.palindromePairs(words2);
testUtil.compareListOfList(createList(0, 2, 2, 0), result);
String[] words3 = {"a","abc","aba",""};
result = palindromePair.palindromePairs(words3);
testUtil.compareListOfList(createList(3, 0, 0, 3, 3, 2, 2, 3), result);
String[] words4 = {"abcd","dcba","lls","s","sssll"};
result = palindromePair.palindromePairs(words4);
testUtil.compareListOfList(createList(0, 1, 1, 0, 3, 2, 2, 4), result);
}
private List<List<Integer>> createList(int... index) {
List<List<Integer>> result = new ArrayList<>();
for (int i = 0; i < index.length; i += 2) {
List<Integer> r = new ArrayList<>();
r.add(index[i]);
r.add((index[i + 1]));
result.add(r);
}
return result;
}
}