⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unicodeescapes1test.java

📁 大名鼎鼎的java动态脚本语言。已经通过了sun的认证
💻 JAVA
字号:
package gls.ch03.s03;import junit.framework.*;import org.codehaus.groovy.tck.*;public class UnicodeEscapes1Test extends TestCase {    public void testPass() throws Throwable {        StringBuffer srcBuffer = new StringBuffer();        srcBuffer.append("package gls.ch03.s03").append(lineSep);        srcBuffer.append("/**").append(lineSep);        srcBuffer.append(" * GLS 3.3:").append(lineSep);        srcBuffer.append(" * Implementations first recognize Unicode escapes in their input, translating ").append(lineSep);        srcBuffer.append(" * the ASCII characters backslash and 'u' followed by four hexadecimal digits").append(lineSep);        srcBuffer.append(" * to the Unicode character with the indicated hexadecimal value, and passing").append(lineSep);        srcBuffer.append(" * all other characters unchanged.  ").append(lineSep);        srcBuffer.append(" *").append(lineSep);        srcBuffer.append(" * @author Alan Green").append(lineSep);        srcBuffer.append(" * @author Jeremy Rayner").append(lineSep);        srcBuffer.append(" */").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("class UnicodeEscapes1 extends GroovyTestCase {").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    void testAllHexDigits() {").append(lineSep);        srcBuffer.append("        // All hex digits work (char def0 is a special codepoint)").append(lineSep);        srcBuffer.append("        def s = \"\\u1234\\u5678\\u9abc\\u0fed\\u9ABC\\u0FEC\"").append(lineSep);        srcBuffer.append("        assert s.charAt(0) == 0x1234").append(lineSep);        srcBuffer.append("        assert s.charAt(1) == 0x5678").append(lineSep);        srcBuffer.append("        assert s.charAt(2) == 0x9abc").append(lineSep);        srcBuffer.append("        assert s.charAt(3) == 0x0fed").append(lineSep);        srcBuffer.append("        assert s.charAt(4) == 0x9abc").append(lineSep);        srcBuffer.append("        assert s.charAt(5) == 0x0fec").append(lineSep);        srcBuffer.append("    }").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    // There can be 1 or more u's after the backslash").append(lineSep);        srcBuffer.append("    void testMultipleUs() {").append(lineSep);        srcBuffer.append("        assert \"\\uu0061\" == \"a\"").append(lineSep);        srcBuffer.append("        assert \"\\uuu0061\" == \"a\"").append(lineSep);        srcBuffer.append("        assert \"\\uuuuu0061\" == \"a\"").append(lineSep);        srcBuffer.append("    }").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    void testOtherVariations() {").append(lineSep);        srcBuffer.append("        // Capital 'U' not allowed").append(lineSep);        srcBuffer.append("        // assert \"\\U0061\" == \"a\" // @fail:parse ").append(lineSep);        srcBuffer.append("    }").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    // todo: Implementations should use the \\ uxxxx notation as an output format to").append(lineSep);        srcBuffer.append("    // display Unicode characters when a suitable font is not available.").append(lineSep);        srcBuffer.append("    // (to be tested as part of the standard library)").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    // todo: Representing supplementary characters requires two consecutive Unicode").append(lineSep);        srcBuffer.append("    // escapes. ").append(lineSep);        srcBuffer.append("    // (not sure how to test)").append(lineSep);        srcBuffer.append("    // see: gls.ch03.s01.Unicode2.testUTF16SupplementaryCharacters()").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    // todo: test unicode escapes last in file").append(lineSep);        srcBuffer.append("    // and invalid escapes at end of file").append(lineSep);        srcBuffer.append("}").append(lineSep);        Object result = helper.evaluate(srcBuffer.toString(),"testPass");        if (result instanceof TestResult) {            TestResult testResult = (TestResult)result;            if (testResult.errorCount() > 0) {                TestFailure firstTestFailure = (TestFailure)testResult.errors().nextElement();                throw firstTestFailure.thrownException();            }            if (testResult.failureCount() > 0) {                AssertionFailedError firstFailure = (AssertionFailedError)(testResult.failures().nextElement());                throw firstFailure;            }        }    }    public void testFailParse1() throws Throwable {        StringBuffer srcBuffer = new StringBuffer();        srcBuffer.append("package gls.ch03.s03").append(lineSep);        srcBuffer.append("/**").append(lineSep);        srcBuffer.append(" * GLS 3.3:").append(lineSep);        srcBuffer.append(" * Implementations first recognize Unicode escapes in their input, translating ").append(lineSep);        srcBuffer.append(" * the ASCII characters backslash and 'u' followed by four hexadecimal digits").append(lineSep);        srcBuffer.append(" * to the Unicode character with the indicated hexadecimal value, and passing").append(lineSep);        srcBuffer.append(" * all other characters unchanged.  ").append(lineSep);        srcBuffer.append(" *").append(lineSep);        srcBuffer.append(" * @author Alan Green").append(lineSep);        srcBuffer.append(" * @author Jeremy Rayner").append(lineSep);        srcBuffer.append(" */").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("class UnicodeEscapes1 extends GroovyTestCase {").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    void testAllHexDigits() {").append(lineSep);        srcBuffer.append("        // All hex digits work (char def0 is a special codepoint)").append(lineSep);        srcBuffer.append("        def s = \"\\u1234\\u5678\\u9abc\\u0fed\\u9ABC\\u0FEC\"").append(lineSep);        srcBuffer.append("        assert s.charAt(0) == 0x1234").append(lineSep);        srcBuffer.append("        assert s.charAt(1) == 0x5678").append(lineSep);        srcBuffer.append("        assert s.charAt(2) == 0x9abc").append(lineSep);        srcBuffer.append("        assert s.charAt(3) == 0x0fed").append(lineSep);        srcBuffer.append("        assert s.charAt(4) == 0x9abc").append(lineSep);        srcBuffer.append("        assert s.charAt(5) == 0x0fec").append(lineSep);        srcBuffer.append("    }").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    // There can be 1 or more u's after the backslash").append(lineSep);        srcBuffer.append("    void testMultipleUs() {").append(lineSep);        srcBuffer.append("        assert \"\\uu0061\" == \"a\"").append(lineSep);        srcBuffer.append("        assert \"\\uuu0061\" == \"a\"").append(lineSep);        srcBuffer.append("        assert \"\\uuuuu0061\" == \"a\"").append(lineSep);        srcBuffer.append("    }").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    void testOtherVariations() {").append(lineSep);        srcBuffer.append("        // Capital 'U' not allowed").append(lineSep);        srcBuffer.append("           assert \"\\U0061\" == \"a\" // @fail:parse ").append(lineSep);        srcBuffer.append("    }").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    // todo: Implementations should use the \\ uxxxx notation as an output format to").append(lineSep);        srcBuffer.append("    // display Unicode characters when a suitable font is not available.").append(lineSep);        srcBuffer.append("    // (to be tested as part of the standard library)").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    // todo: Representing supplementary characters requires two consecutive Unicode").append(lineSep);        srcBuffer.append("    // escapes. ").append(lineSep);        srcBuffer.append("    // (not sure how to test)").append(lineSep);        srcBuffer.append("    // see: gls.ch03.s01.Unicode2.testUTF16SupplementaryCharacters()").append(lineSep);        srcBuffer.append("").append(lineSep);        srcBuffer.append("    // todo: test unicode escapes last in file").append(lineSep);        srcBuffer.append("    // and invalid escapes at end of file").append(lineSep);        srcBuffer.append("}").append(lineSep);        try {            helper.parse(srcBuffer.toString(),"testFailParse1");            fail("This line did not fail to parse:  assert \"\\U0061\" == \"a\" // @fail:parse");        } catch (Exception e) {            // ignore an exception as that is what we're hoping for in this case.        }    }    protected String lineSep = System.getProperty("line.separator");    protected TestGeneratorHelper helper = new ClassicGroovyTestGeneratorHelper();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -