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

📄 utftest.java

📁 嵌入式数据库Berkeley DB-4.5.20源代码
💻 JAVA
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2002-2006 *	Oracle Corporation.  All rights reserved. * * $Id: UtfTest.java,v 12.3 2006/08/24 14:46:47 bostic Exp $ */package com.sleepycat.util.test;import java.io.DataOutputStream;import java.util.Arrays;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import com.sleepycat.collections.test.DbTestUtil;import com.sleepycat.util.FastOutputStream;import com.sleepycat.util.UtfOps;/** * @author Mark Hayes */public class UtfTest extends TestCase {    public static void main(String[] args)        throws Exception {        junit.framework.TestResult tr =            junit.textui.TestRunner.run(suite());        if (tr.errorCount() > 0 ||            tr.failureCount() > 0) {            System.exit(1);        } else {            System.exit(0);        }    }    public static Test suite()        throws Exception {        TestSuite suite = new TestSuite(UtfTest.class);        return suite;    }    public UtfTest(String name) {        super(name);    }    public void setUp() {        DbTestUtil.printTestName("UtfTest." + getName());    }    /**     * Compares the UtfOps implementation to the java.util.DataOutputStream     * (and by implication DataInputStream) implementation, character for     * character in the full Unicode set.     */    public void testMultibyte()        throws Exception {        char c = 0;        byte[] buf = new byte[10];        byte[] javaBuf = new byte[10];        char[] cArray = new char[1];        FastOutputStream javaBufStream = new FastOutputStream(javaBuf);        DataOutputStream javaOutStream = new DataOutputStream(javaBufStream);        try {            for (int cInt = Character.MIN_VALUE; cInt <= Character.MAX_VALUE;                 cInt += 1) {                c = (char) cInt;                cArray[0] = c;                int byteLen = UtfOps.getByteLength(cArray);                javaBufStream.reset();                javaOutStream.writeUTF(new String(cArray));                int javaByteLen = javaBufStream.size() - 2;                if (byteLen != javaByteLen) {                    fail("Character 0x" + Integer.toHexString(c) +                         " UtfOps size " + byteLen +                         " != JavaIO size " + javaByteLen);                }                Arrays.fill(buf, (byte) 0);                UtfOps.charsToBytes(cArray, 0, buf, 0, 1);                if (byteLen == 1 && buf[0] == (byte) 0xff) {                    fail("Character 0x" + Integer.toHexString(c) +                         " was encoded as FF, which is reserved for null");                }                for (int i = 0; i < byteLen; i += 1) {                    if (buf[i] != javaBuf[i + 2]) {                        fail("Character 0x" + Integer.toHexString(c) +                             " byte offset " + i +                             " UtfOps byte " + Integer.toHexString(buf[i]) +                             " != JavaIO byte " +                             Integer.toHexString(javaBuf[i + 2]));                    }                }                int charLen = UtfOps.getCharLength(buf, 0, byteLen);                if (charLen != 1) {                    fail("Character 0x" + Integer.toHexString(c) +                         " UtfOps char len " + charLen +                         " but should be one");                }                cArray[0] = (char) 0;                int len = UtfOps.bytesToChars(buf, 0, cArray, 0, byteLen,                                              true);                if (len != byteLen) {                    fail("Character 0x" + Integer.toHexString(c) +                         " UtfOps bytesToChars(w/byteLen) len " + len +                         " but should be " + byteLen);                }                if (cArray[0] != c) {                    fail("Character 0x" + Integer.toHexString(c) +                         " UtfOps bytesToChars(w/byteLen) char " +                         Integer.toHexString(cArray[0]));                }                cArray[0] = (char) 0;                len = UtfOps.bytesToChars(buf, 0, cArray, 0, 1, false);                if (len != byteLen) {                    fail("Character 0x" + Integer.toHexString(c) +                         " UtfOps bytesToChars(w/charLen) len " + len +                         " but should be " + byteLen);                }                if (cArray[0] != c) {                    fail("Character 0x" + Integer.toHexString(c) +                         " UtfOps bytesToChars(w/charLen) char " +                         Integer.toHexString(cArray[0]));                }                String s = new String(cArray, 0, 1);                byte[] sBytes = UtfOps.stringToBytes(s);                if (sBytes.length != byteLen) {                    fail("Character 0x" + Integer.toHexString(c) +                         " UtfOps stringToBytes() len " + sBytes.length +                         " but should be " + byteLen);                }                for (int i = 0; i < byteLen; i += 1) {                    if (sBytes[i] != javaBuf[i + 2]) {                        fail("Character 0x" + Integer.toHexString(c) +                             " byte offset " + i +                             " UtfOps byte " + Integer.toHexString(sBytes[i]) +                             " != JavaIO byte " +                             Integer.toHexString(javaBuf[i + 2]));                    }                }            }        } catch (Exception e) {            System.out.println("Character 0x" + Integer.toHexString(c) +                               " exception occurred");            throw e;        }    }}

⌨️ 快捷键说明

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