package com.ontology2.bakemono.pse3; import org.junit.Test; import static com.ontology2.bakemono.pse3.PSE3Mapper.unescapeFreebaseKey; import static junit.framework.TestCase.assertEquals; public class TestUnescape { @Test public void passThru() { assertEquals("cover me",unescapeFreebaseKey("cover me")); } @Test public void passThruEmpty() { assertEquals("",unescapeFreebaseKey("")); } @Test public void alternateA() { assertEquals("A",unescapeFreebaseKey("$0041")); } @Test public void alternateAB() { assertEquals("AB",unescapeFreebaseKey("$0041$0042")); } @Test public void alternateABC() { assertEquals("ABC",unescapeFreebaseKey("$0041B$0043")); } @Test public void duckling() { assertEquals("$duckling",unescapeFreebaseKey("$duckling")); } @Test public void justaDollar() { assertEquals("$",unescapeFreebaseKey("$")); } @Test public void threeHexDigits() { assertEquals("$ABC",unescapeFreebaseKey("$ABC")); } @Test public void handlesPeripheralNonHex() { assertEquals("ABC",unescapeFreebaseKey("A$0042C")); }; // // unescapeFreebaseKey is NOT required to process sequences that are not real unicode // characters, it is not fair pool to text hex digit parsing if you don't use a real // character // // // の // JAPANESE HIRAGANA LETTER NO // Codepoint is 12398 // @Test public void hiraganaLetterNo() { assertEquals(0x306E,unescapeFreebaseKey("$306E").charAt(0)); }; // // SHIFT OUT ISO CONTROL CHARACTER // @Test public void tryLetterE() { assertEquals(0x000E,unescapeFreebaseKey("$000E").charAt(0)); }; // // ATAK LETTER MANDAILING NA // @Test public void tryHexLettersBCAAndNonzeroPosition3() { assertEquals(0x1BCA,unescapeFreebaseKey("$1BCA").charAt(0)); }; // // 퇹 // HANGUL SYLLABLE-D1F9 // @Test public void tryHexDFand9AndNegative() { assertEquals(0xD1F9,unescapeFreebaseKey("$D1F9").charAt(0)); } }