package org.archive.util;
import org.archive.util.StringFieldExtractor.StringTuple;
import junit.framework.TestCase;
public class StringFieldExtractorTest extends TestCase {
public void testExtract() {
StringFieldExtractor ex1 = new StringFieldExtractor(' ', 0);
StringFieldExtractor ex2 = new StringFieldExtractor(' ', 1);
StringFieldExtractor ex3 = new StringFieldExtractor(' ', 2);
StringFieldExtractor ex4 = new StringFieldExtractor(' ', 3);
StringFieldExtractor ex5 = new StringFieldExtractor(' ', 4);
assertEquals("1",ex1.extract("1 2 3 4"));
assertEquals("2",ex2.extract("1 2 3 4"));
assertEquals("3",ex3.extract("1 2 3 4"));
assertEquals("4",ex4.extract("1 2 3 4"));
assertEquals(null,ex5.extract("1 2 3 4"));
assertEquals("",ex5.extract("1 2 3 4 "));
assertEquals("",ex1.extract(" 1 2 3 4 "));
assertEquals("1",ex2.extract(" 1 2 3 4 "));
assertEquals("2",ex3.extract(" 1 2 3 4 "));
assertEquals("abc",ex1.extract("abc 1 2 3 4 "));
assertEquals("1",ex2.extract("abc 1 2 3 4 "));
}
private void checkSplit(String f, String s,StringTuple t) {
assertEquals(f,t.first);
assertEquals(s,t.second);
}
public void testSplit() {
StringFieldExtractor sfx = new StringFieldExtractor(' ',2);
checkSplit("a b","x y",sfx.split("a b x y"));
checkSplit("ab ","x y",sfx.split("ab x y"));
checkSplit("ab x","y z",sfx.split("ab x y z"));
checkSplit("ab x","y z",sfx.split("ab x y z"));
checkSplit("ab",null,sfx.split("ab"));
checkSplit("ab x",null,sfx.split("ab x"));
}
}