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

📄 tupleformattest.java

📁 嵌入式数据库Berkeley DB-4.5.20源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2002-2006 *	Oracle Corporation.  All rights reserved. * * $Id: TupleFormatTest.java,v 12.5 2006/08/24 14:46:45 bostic Exp $ */package com.sleepycat.bind.tuple.test;import java.util.Arrays;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import com.sleepycat.bind.tuple.TupleBinding;import com.sleepycat.bind.tuple.TupleInput;import com.sleepycat.bind.tuple.TupleOutput;import com.sleepycat.collections.test.DbTestUtil;import com.sleepycat.db.DatabaseEntry;/** * @author Mark Hayes */public class TupleFormatTest extends TestCase {    private TupleInput in;    private TupleOutput out;    private DatabaseEntry buffer;    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(TupleFormatTest.class);        return suite;    }    public TupleFormatTest(String name) {        super(name);    }    public void setUp() {        DbTestUtil.printTestName("TupleFormatTest." + getName());        buffer = new DatabaseEntry();        out = new TupleOutput();    }    public void tearDown() {        /* Ensure that GC can cleanup. */        in = null;        out = null;        buffer = null;    }    private void copyOutputToInput() {        TupleBinding.outputToEntry(out, buffer);        assertEquals(out.size(), buffer.getSize());        in = TupleBinding.entryToInput(buffer);        assertEquals(in.available(), buffer.getSize());        assertEquals(in.getBufferLength(), buffer.getSize());    }    private void stringTest(String val) {        out.reset();        out.writeString(val);        assertEquals(val.length() + 1, out.size()); // assume 1-byte chars        copyOutputToInput();        assertEquals(val, in.readString());        assertEquals(0, in.available());    }    public void testString() {        stringTest("");        stringTest("a");        stringTest("abc");        out.reset();        out.writeString("abc");        out.writeString("defg");        assertEquals(9, out.size());        copyOutputToInput();        assertEquals("abc", in.readString());        assertEquals("defg", in.readString());        assertEquals(0, in.available());        out.reset();        out.writeString("abc");        out.writeString("defg");        out.writeString("hijkl");        assertEquals(15, out.size());        copyOutputToInput();        assertEquals("abc", in.readString());        assertEquals("defg", in.readString());        assertEquals("hijkl", in.readString());        assertEquals(0, in.available());    }    private void fixedStringTest(char[] val) {        out.reset();        out.writeString(val);        assertEquals(val.length, out.size()); // assume 1 byte chars        copyOutputToInput();        char[] val2 = new char[val.length];        in.readString(val2);        assertTrue(Arrays.equals(val, val2));        assertEquals(0, in.available());        in.reset();        String val3 = in.readString(val.length);        assertTrue(Arrays.equals(val, val3.toCharArray()));        assertEquals(0, in.available());    }    public void testFixedString() {        fixedStringTest(new char[0]);        fixedStringTest(new char[] {'a'});        fixedStringTest(new char[] {'a', 'b', 'c'});        out.reset();        out.writeString(new char[] {'a', 'b', 'c'});        out.writeString(new char[] {'d', 'e', 'f', 'g'});        assertEquals(7, out.size());        copyOutputToInput();        assertEquals("abc", in.readString(3));        assertEquals("defg", in.readString(4));        assertEquals(0, in.available());        out.reset();        out.writeString(new char[] {'a', 'b', 'c'});        out.writeString(new char[] {'d', 'e', 'f', 'g'});        out.writeString(new char[] {'h', 'i', 'j', 'k', 'l'});        assertEquals(12, out.size());        copyOutputToInput();        assertEquals("abc", in.readString(3));        assertEquals("defg", in.readString(4));        assertEquals("hijkl", in.readString(5));        assertEquals(0, in.available());    }    public void testNullString() {        out.reset();        out.writeString((String) null);        assertEquals(2, out.size());        copyOutputToInput();        assertEquals(null, in.readString());        assertEquals(0, in.available());        out.reset();        out.writeString((String) null);        out.writeString("x");        assertEquals(4, out.size());        copyOutputToInput();        assertEquals(null, in.readString());        assertEquals(2, in.available());        assertEquals("x", in.readString());        assertEquals(0, in.available());        out.reset();        out.writeString("x");        out.writeString((String) null);        assertEquals(4, out.size());        copyOutputToInput();        assertEquals("x", in.readString());        assertEquals(2, in.available());        assertEquals(null, in.readString());        assertEquals(0, in.available());        out.reset();        out.writeString((String) null);        out.writeInt(123);        assertEquals(6, out.size());        copyOutputToInput();        assertEquals(null, in.readString());        assertEquals(4, in.available());        assertEquals(123, in.readInt());        assertEquals(0, in.available());        out.reset();        out.writeInt(123);        out.writeString((String) null);        assertEquals(6, out.size());        copyOutputToInput();        assertEquals(123, in.readInt());        assertEquals(2, in.available());        assertEquals(null, in.readString());        assertEquals(0, in.available());    }    private void charsTest(char[] val) {        for (int mode = 0; mode < 2; mode += 1) {            out.reset();            switch (mode) {                case 0: out.writeChars(val); break;                case 1: out.writeChars(new String(val)); break;                default: throw new IllegalStateException();            }            assertEquals(val.length * 2, out.size());            copyOutputToInput();            char[] val2 = new char[val.length];            in.readChars(val2);            assertTrue(Arrays.equals(val, val2));            assertEquals(0, in.available());            in.reset();            String val3 = in.readChars(val.length);            assertTrue(Arrays.equals(val, val3.toCharArray()));            assertEquals(0, in.available());        }    }    public void testChars() {        charsTest(new char[0]);        charsTest(new char[] {'a'});        charsTest(new char[] {'a', 'b', 'c'});        out.reset();        out.writeChars("abc");        out.writeChars("defg");        assertEquals(7 * 2, out.size());        copyOutputToInput();        assertEquals("abc", in.readChars(3));        assertEquals("defg", in.readChars(4));        assertEquals(0, in.available());        out.reset();        out.writeChars("abc");        out.writeChars("defg");        out.writeChars("hijkl");        assertEquals(12 * 2, out.size());        copyOutputToInput();        assertEquals("abc", in.readChars(3));        assertEquals("defg", in.readChars(4));        assertEquals("hijkl", in.readChars(5));        assertEquals(0, in.available());    }    private void bytesTest(char[] val) {        char[] valBytes = new char[val.length];        for (int i = 0; i < val.length; i += 1)            valBytes[i] = (char) (val[i] & 0xFF);        for (int mode = 0; mode < 2; mode += 1) {            out.reset();            switch (mode) {                case 0: out.writeBytes(val); break;                case 1: out.writeBytes(new String(val)); break;                default: throw new IllegalStateException();            }            assertEquals(val.length, out.size());            copyOutputToInput();            char[] val2 = new char[val.length];            in.readBytes(val2);            assertTrue(Arrays.equals(valBytes, val2));            assertEquals(0, in.available());            in.reset();            String val3 = in.readBytes(val.length);            assertTrue(Arrays.equals(valBytes, val3.toCharArray()));            assertEquals(0, in.available());        }    }    public void testBytes() {        bytesTest(new char[0]);        bytesTest(new char[] {'a'});        bytesTest(new char[] {'a', 'b', 'c'});        bytesTest(new char[] {0x7F00, 0x7FFF, 0xFF00, 0xFFFF});        out.reset();        out.writeBytes("abc");        out.writeBytes("defg");        assertEquals(7, out.size());        copyOutputToInput();        assertEquals("abc", in.readBytes(3));        assertEquals("defg", in.readBytes(4));        assertEquals(0, in.available());        out.reset();        out.writeBytes("abc");        out.writeBytes("defg");        out.writeBytes("hijkl");        assertEquals(12, out.size());        copyOutputToInput();        assertEquals("abc", in.readBytes(3));        assertEquals("defg", in.readBytes(4));        assertEquals("hijkl", in.readBytes(5));        assertEquals(0, in.available());    }    private void booleanTest(boolean val) {        out.reset();        out.writeBoolean(val);        assertEquals(1, out.size());        copyOutputToInput();        assertEquals(val, in.readBoolean());        assertEquals(0, in.available());    }    public void testBoolean() {        booleanTest(true);        booleanTest(false);        out.reset();        out.writeBoolean(true);        out.writeBoolean(false);        assertEquals(2, out.size());        copyOutputToInput();        assertEquals(true, in.readBoolean());        assertEquals(false, in.readBoolean());        assertEquals(0, in.available());        out.reset();        out.writeBoolean(true);        out.writeBoolean(false);        out.writeBoolean(true);        assertEquals(3, out.size());        copyOutputToInput();        assertEquals(true, in.readBoolean());        assertEquals(false, in.readBoolean());        assertEquals(true, in.readBoolean());        assertEquals(0, in.available());    }    private void unsignedByteTest(int val) {        unsignedByteTest(val, val);    }    private void unsignedByteTest(int val, int expected) {        out.reset();        out.writeUnsignedByte(val);        assertEquals(1, out.size());        copyOutputToInput();        assertEquals(expected, in.readUnsignedByte());    }    public void testUnsignedByte() {        unsignedByteTest(0);        unsignedByteTest(1);        unsignedByteTest(254);        unsignedByteTest(255);        unsignedByteTest(256, 0);        unsignedByteTest(-1, 255);        unsignedByteTest(-2, 254);        unsignedByteTest(-255, 1);        out.reset();        out.writeUnsignedByte(0);        out.writeUnsignedByte(1);        out.writeUnsignedByte(255);        assertEquals(3, out.size());        copyOutputToInput();        assertEquals(0, in.readUnsignedByte());        assertEquals(1, in.readUnsignedByte());        assertEquals(255, in.readUnsignedByte());        assertEquals(0, in.available());    }    private void unsignedShortTest(int val) {        unsignedShortTest(val, val);    }    private void unsignedShortTest(int val, int expected) {        out.reset();        out.writeUnsignedShort(val);        assertEquals(2, out.size());        copyOutputToInput();        assertEquals(expected, in.readUnsignedShort());    }    public void testUnsignedShort() {        unsignedShortTest(0);        unsignedShortTest(1);        unsignedShortTest(255);        unsignedShortTest(256);        unsignedShortTest(257);        unsignedShortTest(Short.MAX_VALUE - 1);        unsignedShortTest(Short.MAX_VALUE);        unsignedShortTest(Short.MAX_VALUE + 1);        unsignedShortTest(0xFFFF - 1);        unsignedShortTest(0xFFFF);        unsignedShortTest(0xFFFF + 1, 0);        unsignedShortTest(0x7FFF0000, 0);        unsignedShortTest(0xFFFF0000, 0);        unsignedShortTest(-1, 0xFFFF);        unsignedShortTest(-2, 0xFFFF - 1);        unsignedShortTest(-0xFFFF, 1);        out.reset();        out.writeUnsignedShort(0);        out.writeUnsignedShort(1);        out.writeUnsignedShort(0xFFFF);        assertEquals(6, out.size());        copyOutputToInput();        assertEquals(0, in.readUnsignedShort());        assertEquals(1, in.readUnsignedShort());        assertEquals(0xFFFF, in.readUnsignedShort());        assertEquals(0, in.available());    }    private void unsignedIntTest(long val) {        unsignedIntTest(val, val);    }

⌨️ 快捷键说明

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