package hapax.test;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import ch.akuhn.hapax.corpus.CamelCaseScanner;
import ch.akuhn.hapax.corpus.ScannerClient;
import ch.akuhn.hapax.corpus.TermScanner;
public class CamelCaseScannerTest implements ScannerClient {
protected TermScanner scanner = new CamelCaseScanner().client(this);
private List<String> terms = new ArrayList<String>();
@Test
public void empty() {
scannerOn("").run();
assertEquals("[]", terms.toString());
}
@Test
public void innerManySpace() {
scannerOn("Camel\t\t\tCase\t\t\tScanner").run();
assertEquals("[Camel, Case, Scanner]", terms.toString());
}
@Test
public void innerSpace() {
scannerOn("Camel\tCase\tScanner").run();
assertEquals("[Camel, Case, Scanner]", terms.toString());
}
@Test
public void leadingManySpace() {
scannerOn("\t\t\tCamelCaseScanner").run();
assertEquals("[Camel, Case, Scanner]", terms.toString());
}
@Test
public void leadingSpace() {
scannerOn("\tCamelCaseScanner").run();
assertEquals("[Camel, Case, Scanner]", terms.toString());
}
@Test
public void manyLower() {
scannerOn("xxx").run();
assertEquals("[xxx]", terms.toString());
}
@Test
public void manySpace() {
scannerOn("\t\t\t").run();
assertEquals("[]", terms.toString());
}
@Test
public void manyUpper() {
scannerOn("XXX").run();
assertEquals("[XXX]", terms.toString());
}
@Test
public void manyWord() {
scannerOn("FooFoo").run();
assertEquals("[Foo, Foo]", terms.toString());
}
@Test
public void oneLower() {
scannerOn("x").run();
assertEquals("[x]", terms.toString());
}
@Test
public void oneSpace() {
scannerOn("\t").run();
assertEquals("[]", terms.toString());
}
@Test
public void oneUpper() {
scannerOn("X").run();
assertEquals("[X]", terms.toString());
}
@Test
public void oneWord() {
scannerOn("Foo").run();
assertEquals("[Foo]", terms.toString());
}
@Test
public void simple() {
scannerOn("CamelCaseScanner").run();
assertEquals("[Camel, Case, Scanner]", terms.toString());
}
@Test
public void testABRRSpaceWord() {
scannerOn("ABBR\tWord").run();
assertEquals("[ABBR, Word]", terms.toString());
}
@Test
public void testABRRWord() {
scannerOn("ABBRWord").run();
assertEquals("[ABBR, Word]", terms.toString());
}
@Test
public void trailingManySpace() {
scannerOn("CamelCaseScanner\t\t\t").run();
assertEquals("[Camel, Case, Scanner]", terms.toString());
}
protected TermScanner scannerOn(String string) {
return scanner.onString(string);
}
@Test
public void trailingSpace() {
scannerOn("CamelCaseScanner\t").run();
assertEquals("[Camel, Case, Scanner]", terms.toString());
}
//@Override
public void yield(CharSequence term) {
terms.add(term.toString());
}
}