package tests.net.sf.jabref.bst;
import net.sf.jabref.bst.BibtexCaseChanger;
import net.sf.jabref.bst.Warn;
import junit.framework.TestCase;
public class BibtexCaseChangerTest extends TestCase {
public void testChangeCase() {
assertCaseChangerT("i", "i");
assertCaseChangerL("i", "i");
assertCaseChangerU("I", "i");
assertCaseChangerT("0i~ ", "0I~ ");
assertCaseChangerL("0i~ ", "0I~ ");
assertCaseChangerU("0I~ ", "0I~ ");
assertCaseChangerT("Hi hi ", "Hi Hi ");
assertCaseChangerL("hi hi ", "Hi Hi ");
assertCaseChangerU("HI HI ", "Hi Hi ");
assertCaseChangerT("{\\oe}", "{\\oe}");
assertCaseChangerL("{\\oe}", "{\\oe}");
assertCaseChangerU("{\\OE}", "{\\oe}");
assertCaseChangerT("Hi {\\oe }hi ", "Hi {\\oe }Hi ");
assertCaseChangerL("hi {\\oe }hi ", "Hi {\\oe }Hi ");
assertCaseChangerU("HI {\\OE }HI ", "Hi {\\oe }Hi ");
assertCaseChangerT(
"Jonathan meyer and charles louis xavier joseph de la vall{\\'e}e poussin",
"Jonathan Meyer and Charles Louis Xavier Joseph de la Vall{\\'e}e Poussin");
assertCaseChangerL(
"jonathan meyer and charles louis xavier joseph de la vall{\\'e}e poussin",
"Jonathan Meyer and Charles Louis Xavier Joseph de la Vall{\\'e}e Poussin");
assertCaseChangerU(
"JONATHAN MEYER AND CHARLES LOUIS XAVIER JOSEPH DE LA VALL{\\'E}E POUSSIN",
"Jonathan Meyer and Charles Louis Xavier Joseph de la Vall{\\'e}e Poussin");
assertCaseChangerT("{\\'e}", "{\\'e}");
assertCaseChangerL("{\\'e}", "{\\'e}");
assertCaseChangerU("{\\'E}", "{\\'e}");
assertCaseChangerT("{\\'{E}}douard masterly", "{\\'{E}}douard Masterly");
assertCaseChangerL("{\\'{e}}douard masterly", "{\\'{E}}douard Masterly");
assertCaseChangerU("{\\'{E}}DOUARD MASTERLY", "{\\'{E}}douard Masterly");
assertCaseChangerT("Ulrich {\\\"{u}}nderwood and ned {\\~n}et and paul {\\={p}}ot",
"Ulrich {\\\"{U}}nderwood and Ned {\\~N}et and Paul {\\={P}}ot");
assertCaseChangerL("ulrich {\\\"{u}}nderwood and ned {\\~n}et and paul {\\={p}}ot",
"Ulrich {\\\"{U}}nderwood and Ned {\\~N}et and Paul {\\={P}}ot");
assertCaseChangerU("ULRICH {\\\"{U}}NDERWOOD AND NED {\\~N}ET AND PAUL {\\={P}}OT",
"Ulrich {\\\"{U}}nderwood and Ned {\\~N}et and Paul {\\={P}}ot");
assertCaseChangerT("An {$O(n \\log n / \\! \\log\\log n)$} sorting algorithm",
"An {$O(n \\log n / \\! \\log\\log n)$} Sorting Algorithm");
assertCaseChangerL("an {$O(n \\log n / \\! \\log\\log n)$} sorting algorithm",
"An {$O(n \\log n / \\! \\log\\log n)$} Sorting Algorithm");
assertCaseChangerU("AN {$O(n \\log n / \\! \\log\\log n)$} SORTING ALGORITHM",
"An {$O(n \\log n / \\! \\log\\log n)$} Sorting Algorithm");
assertCaseChangerT("hallo", "hallo");
assertCaseChangerT("Hallo", "HAllo");
assertCaseChangerT("Hallo world", "HAllo World");
assertCaseChangerT("Hallo world. how", "HAllo WORLD. HOW");
assertCaseChangerT("Hallo {WORLD}. how", "HAllo {WORLD}. HOW");
assertCaseChangerT("Hallo {\\world}. how", "HAllo {\\WORLD}. HOW");
assertCaseChangerL("hallo", "hallo");
assertCaseChangerL("hallo", "HAllo");
assertCaseChangerL("hallo world", "HAllo World");
assertCaseChangerL("hallo world. how", "HAllo WORLD. HOW");
assertCaseChangerL("hallo {worLD}. how", "HAllo {worLD}. HOW");
assertCaseChangerL("hallo {\\world}. how", "HAllo {\\WORLD}. HOW");
assertCaseChangerU("HALLO", "hallo");
assertCaseChangerU("HALLO", "HAllo");
assertCaseChangerU("HALLO WORLD", "HAllo World");
assertCaseChangerU("HALLO WORLD. HOW", "HAllo World. How");
assertCaseChangerU("HALLO {worLD}. HOW", "HAllo {worLD}. how");
assertCaseChangerU("HALLO {\\WORLD}. HOW", "HAllo {\\woRld}. hoW");
assertCaseChangerT("On notions of information transfer in {VLSI} circuits",
"On Notions of Information Transfer in {VLSI} Circuits");
}
public void testColon() {
assertCaseChangerT("Hallo world: How", "HAllo WORLD: HOW");
assertCaseChangerT("Hallo world! how", "HAllo WORLD! HOW");
assertCaseChangerT("Hallo world? how", "HAllo WORLD? HOW");
assertCaseChangerT("Hallo world. how", "HAllo WORLD. HOW");
assertCaseChangerT("Hallo world, how", "HAllo WORLD, HOW");
assertCaseChangerT("Hallo world; how", "HAllo WORLD; HOW");
assertCaseChangerT("Hallo world- how", "HAllo WORLD- HOW");
}
private void assertCaseChangerT(final String string, final String string2) {
assertEquals(string, BibtexCaseChanger.changeCase(string2, 't', new Warn() {
public void warn(String s) {
fail("Should not Warn (" + s + ")! changeCase('t') should be " + string + " for "
+ string2);
}
}));
}
private void assertCaseChangerL(final String string, final String string2) {
assertEquals(string, BibtexCaseChanger.changeCase(string2, 'l', new Warn() {
public void warn(String s) {
fail("Should not Warn (" + s + ")! changeCase('l') should be " + string + " for "
+ string2);
}
}));
}
private void assertCaseChangerU(final String string, final String string2) {
assertEquals(string, BibtexCaseChanger.changeCase(string2, 'u', new Warn() {
public void warn(String s) {
fail("Should not Warn (" + s + ")! changeCase('u') should be " + string + " for "
+ string2);
}
}));
}
}