package yuku.alkitab.test;
import junit.framework.TestCase;
import yuku.alkitab.base.U;
public class RemoveSpecialCodesTest extends TestCase {
void testRemoveSpecialCodes(String formatted, String plain) {
assertEquals(plain, U.removeSpecialCodes(formatted));
}
void testRemoveSpecialCodesForced(String formatted, String plain) {
assertEquals(plain, U.removeSpecialCodes(formatted, true));
}
public void testRemoveSpecialCodes() throws Throwable {
testRemoveSpecialCodes("abcdef ghijkl", "abcdef ghijkl");
testRemoveSpecialCodes("abc@1def@2ghi@3jkl", "abc@1def@2ghi@3jkl"); // does not start with "@@"
testRemoveSpecialCodes("@@abc@1def@2ghi@3jkl", "abc def ghi jkl");
testRemoveSpecialCodes("@@abc @1def @2ghi.\n@3jkl", "abc def ghi.\njkl"); // do not double space
testRemoveSpecialCodes("@@abc@1", "abc ");
testRemoveSpecialCodes("@@abc@1@2", "abc "); // do not double space
testRemoveSpecialCodes("@@@1@2abc", "abc"); // do not add space at beginning
testRemoveSpecialCodes("@@@1abc@2", "abc ");
testRemoveSpecialCodesForced("abcdef ghijkl", "abcdef ghijkl");
testRemoveSpecialCodesForced("abc@1def@2ghi@3jkl", "abc def ghi jkl"); // does not start with "@@"
testRemoveSpecialCodesForced("@@abc@1def@2ghi@3jkl", "abc def ghi jkl");
// adding space
testRemoveSpecialCodes("@@a@8b@^c", "a b c");
testRemoveSpecialCodes("@@a@0b@1c@2d@3e@4f", "a b c d e f");
testRemoveSpecialCodes("@@a@5b@6c@7d@9e@8f", "abcde f");
testRemoveSpecialCodes("@@a@8", "a ");
testRemoveSpecialCodes("@@@8a", "a");
// start and end tags
testRemoveSpecialCodes("@@abc@<whatever@>def", "abcdef");
testRemoveSpecialCodes("@@abc@<whatever@>def@/", "abcdef");
testRemoveSpecialCodes("@@abc@<should not crash", "abcshould not crash");
testRemoveSpecialCodes("@@abc@>should not crash", "abcshould not crash");
testRemoveSpecialCodes("@@abc@<should not@>crash@>", "abccrash");
testRemoveSpecialCodes("@@abc@<", "abc");
testRemoveSpecialCodes("@@@<abc@>", "");
testRemoveSpecialCodes("@@@>abc@<", "abc");
testRemoveSpecialCodesForced("@<abc@>", "");
testRemoveSpecialCodesForced("@>abc@<", "abc");
}
}