1dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes/*
2dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *  Licensed to the Apache Software Foundation (ASF) under one or more
3dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *  contributor license agreements.  See the NOTICE file distributed with
4dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *  this work for additional information regarding copyright ownership.
5dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *  The ASF licenses this file to You under the Apache License, Version 2.0
6dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *  (the "License"); you may not use this file except in compliance with
7dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *  the License.  You may obtain a copy of the License at
8dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *
9dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *
11dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *  Unless required by applicable law or agreed to in writing, software
12dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
13dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *  See the License for the specific language governing permissions and
15dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *  limitations under the License.
16dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes */
17dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
18e5fea3d504609d22337a5311d3ce0e72314bceeeNarayan Kamathpackage org.apache.harmony.tests.java.nio;
19dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
20dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.BufferOverflowException;
21dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.BufferUnderflowException;
22dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.ByteOrder;
23dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.InvalidMarkException;
24dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.ShortBuffer;
25dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
26dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes/**
27dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * Tests java.nio.ShortBuffer
28dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *
29dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes */
30dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughespublic class ShortBufferTest extends AbstractBufferTest {
31dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
32dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    protected static final int SMALL_TEST_LENGTH = 5;
33dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
34dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    protected static final int BUFFER_LENGTH = 20;
35dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
36dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    protected ShortBuffer buf;
37dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
38dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    protected void setUp() throws Exception {
39dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf = ShortBuffer.allocate(BUFFER_LENGTH);
40dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData1(buf);
41dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        baseBuf = buf;
42dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
43dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
44dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    protected void tearDown() throws Exception {
45dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf = null;
46dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        baseBuf = null;
47dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
48dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
49dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testArray() {
50dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        short array[] = buf.array();
51dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
52dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
53dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData1(array, buf.arrayOffset(), buf.capacity());
54dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
55dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
56dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData2(array, buf.arrayOffset(), buf.capacity());
57dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
58dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
59dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData1(buf);
60dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
61dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
62dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData2(buf);
63dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
64dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
65dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
66dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testArrayOffset() {
67dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        short array[] = buf.array();
68dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
69dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
70dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData1(array, buf.arrayOffset(), buf.capacity());
71dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
72dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
73dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData2(array, buf.arrayOffset(), buf.capacity());
74dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
75dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
76dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData1(buf);
77dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
78dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
79dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData2(buf);
80dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
81dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
82dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
83dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testAsReadOnlyBuffer() {
84dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
85dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.mark();
86dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.position(buf.limit());
87dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
88dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // readonly's contents should be the same as buf
89dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer readonly = buf.asReadOnlyBuffer();
90dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertNotSame(buf, readonly);
91dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(readonly.isReadOnly());
92dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), readonly.position());
93dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.limit(), readonly.limit());
94dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.isDirect(), readonly.isDirect());
95dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.order(), readonly.order());
96dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, readonly);
97dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
98dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // readonly's position, mark, and limit should be independent to buf
99dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        readonly.reset();
100dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(readonly.position(), 0);
101dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        readonly.clear();
102dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), buf.limit());
103dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.reset();
104dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), 0);
105dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
106dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
107dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testCompact() {
108dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // case: buffer is full
109dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
110dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.mark();
111dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData1(buf);
112dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer ret = buf.compact();
113dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertSame(ret, buf);
114dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), buf.capacity());
115dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.limit(), buf.capacity());
116dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentLikeTestData1(buf, 0, (short) 0, buf.capacity());
117dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
118dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.reset();
119dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
120dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (InvalidMarkException e) {
121dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
122dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
123dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
124dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // case: buffer is empty
125dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.position(0);
126dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.limit(0);
127dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.mark();
128dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ret = buf.compact();
129dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertSame(ret, buf);
130dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), 0);
131dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.limit(), buf.capacity());
132dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentLikeTestData1(buf, 0, (short) 0, buf.capacity());
133dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
134dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.reset();
135dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
136dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (InvalidMarkException e) {
137dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
138dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
139dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
140dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // case: normal
141dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.capacity() > 5);
142dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.position(1);
143dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.limit(5);
144dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.mark();
145dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ret = buf.compact();
146dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertSame(ret, buf);
147dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), 4);
148dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.limit(), buf.capacity());
149dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentLikeTestData1(buf, 0, (short) 1, 4);
150dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
151dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.reset();
152dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
153dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (InvalidMarkException e) {
154dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
155dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
156dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
157dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
158dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testCompareTo() {
159dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // compare to self
160dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(0, buf.compareTo(buf));
161dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
162dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // normal cases
163dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.capacity() > 5);
164dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
165dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer other = ShortBuffer.allocate(buf.capacity());
166dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData1(other);
167dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(0, buf.compareTo(other));
168dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(0, other.compareTo(buf));
169dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.position(1);
170dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.compareTo(other) > 0);
171dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(other.compareTo(buf) < 0);
172dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        other.position(2);
173dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.compareTo(other) < 0);
174dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(other.compareTo(buf) > 0);
175dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.position(2);
176dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        other.limit(5);
177dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.compareTo(other) > 0);
178dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(other.compareTo(buf) < 0);
179dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
180dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
181dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testDuplicate() {
182dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
183dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.mark();
184dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.position(buf.limit());
185dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
186dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // duplicate's contents should be the same as buf
187dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer duplicate = buf.duplicate();
188dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertNotSame(buf, duplicate);
189dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), duplicate.position());
190dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.limit(), duplicate.limit());
191dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.isReadOnly(), duplicate.isReadOnly());
192dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.isDirect(), duplicate.isDirect());
193dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.order(), duplicate.order());
194dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, duplicate);
195dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
196dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // duplicate's position, mark, and limit should be independent to buf
197dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        duplicate.reset();
198dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(duplicate.position(), 0);
199dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        duplicate.clear();
200dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), buf.limit());
201dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.reset();
202dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), 0);
203dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
204dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // duplicate share the same content with buf
205dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        if (!duplicate.isReadOnly()) {
206dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            loadTestData1(buf);
207dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertContentEquals(buf, duplicate);
208dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            loadTestData2(duplicate);
209dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertContentEquals(buf, duplicate);
210dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
211dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
212dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
213dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testEquals() {
214dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // equal to self
215dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.equals(buf));
216dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer readonly = buf.asReadOnlyBuffer();
217dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.equals(readonly));
218dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer duplicate = buf.duplicate();
219dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.equals(duplicate));
220dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
221dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // always false, if type mismatch
222dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertFalse(buf.equals(Boolean.TRUE));
223dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
224dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.capacity() > 5);
225dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
226dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.limit(buf.capacity()).position(0);
227dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        readonly.limit(readonly.capacity()).position(1);
228dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertFalse(buf.equals(readonly));
229dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
230dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.limit(buf.capacity() - 1).position(0);
231dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        duplicate.limit(duplicate.capacity()).position(0);
232dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertFalse(buf.equals(duplicate));
233dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
234dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
235dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    /*
236dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     * Class under test for short get()
237dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     */
238dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testGet() {
239dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
240dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
241dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.position(), i);
242dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.get(), buf.get(i));
243dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
244dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
245dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.get();
246dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
247dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (BufferUnderflowException e) {
248dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
249dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
250dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
251dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
252dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    /*
253dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     * Class under test for java.nio.ShortBuffer get(short[])
254dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     */
255dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testGetshortArray() {
256dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        short array[] = new short[1];
257dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
258dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
259dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.position(), i);
260dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            ShortBuffer ret = buf.get(array);
261dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(array[0], buf.get(i));
262dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertSame(ret, buf);
263dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
264dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
265dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.get(array);
266dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
267dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (BufferUnderflowException e) {
268dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
269dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
270dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
271dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
272dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    /*
273dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     * Class under test for java.nio.ShortBuffer get(short[], int, int)
274dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     */
275dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testGetshortArrayintint() {
276dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
277dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        short array[] = new short[buf.capacity()];
278dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
279dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
280dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.get(new short[buf.capacity() + 1], 0, buf.capacity() + 1);
281dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
282dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (BufferUnderflowException e) {
283dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
284dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
285dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), 0);
286dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
287dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.get(array, -1, array.length);
288dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
289dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
290dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
291dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
292dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.get(array, array.length, 0);
293dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
294dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.get(array, array.length + 1, 1);
295dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
296dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
297dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
298dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
299dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), 0);
300dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
301dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.get((short[])null, 2, -1);
302dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
303dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (NullPointerException e) {
304dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
305dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
306dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
307dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.get(array, 2, array.length);
308dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
309dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
310dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
311dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
312dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
313dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.get(array, 1, Integer.MAX_VALUE);
314dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
315dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (BufferUnderflowException expected) {
316dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException expected) {
317dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
318dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
319dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.get(array, Integer.MAX_VALUE, 1);
320dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
321dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
322dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
323dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
324dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), 0);
325dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
326dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
327dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer ret = buf.get(array, 0, array.length);
328dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), buf.capacity());
329dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, 0, array.length);
330dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertSame(ret, buf);
331dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
332dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
333dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    /*
334dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     * Class under test for short get(int)
335dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     */
336dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testGetint() {
337dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
338dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
339dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.position(), i);
340dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.get(), buf.get(i));
341dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
342dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
343dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.get(-1);
344dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
345dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
346dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
347dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
348dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
349dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.get(buf.limit());
350dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
351dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
352dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
353dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
354dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
355dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
356dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testHasArray() {
357dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertNotNull(buf.array());
358dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
359dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
360dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testHashCode() {
361dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
362dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer readonly = buf.asReadOnlyBuffer();
363dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer duplicate = buf.duplicate();
364dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.hashCode() == readonly.hashCode());
365dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
366dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.capacity() > 5);
367dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        duplicate.position(buf.capacity() / 2);
368dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.hashCode() != duplicate.hashCode());
369dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
370dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
371dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testIsDirect() {
372dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertFalse(buf.isDirect());
373dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
374dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
375dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testOrder() {
376dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.order();
377dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(ByteOrder.nativeOrder(), buf.order());
378dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
379dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
380dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    /*
381dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     * Class under test for java.nio.ShortBuffer put(short)
382dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     */
383dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testPutshort() {
384dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
385dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
386dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.position(), i);
387dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            ShortBuffer ret = buf.put((short) i);
388dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.get(i), (short) i);
389dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertSame(ret, buf);
390dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
391dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
392dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put((short) 0);
393dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
394dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (BufferOverflowException e) {
395dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
396dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
397dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
398dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
399dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    /*
400dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     * Class under test for java.nio.ShortBuffer put(short[])
401dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     */
402dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testPutshortArray() {
403dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        short array[] = new short[1];
404dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
405dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
406dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.position(), i);
407dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            array[0] = (short) i;
408dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            ShortBuffer ret = buf.put(array);
409dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.get(i), (short) i);
410dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertSame(ret, buf);
411dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
412dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
413dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(array);
414dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
415dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (BufferOverflowException e) {
416dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
417dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
418dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
419dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.position(buf.limit());
420dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put((short[])null);
421dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
422dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (NullPointerException e) {
423dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
424dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
425dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
426dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
427dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    /*
428dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     * Class under test for java.nio.ShortBuffer put(short[], int, int)
429dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     */
430dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testPutshortArrayintint() {
431dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
432dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        short array[] = new short[buf.capacity()];
433dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
434dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(new short[buf.capacity() + 1], 0, buf.capacity() + 1);
435dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
436dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (BufferOverflowException e) {
437dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
438dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
439dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), 0);
440dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
441dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(array, -1, array.length);
442dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
443dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
444dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
445dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
446dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
447dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(array, array.length + 1, 0);
448dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
449dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
450dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
451dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
452dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.put(array, array.length, 0);
453dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), 0);
454dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
455dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(array, 0, -1);
456dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
457dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
458dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
459dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
460dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
461dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put((short[])null, 0, -1);
462dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
463dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (NullPointerException e) {
464dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
465dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
466dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
467dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(array, 2, array.length);
468dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
469dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
470dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
471dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
472dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
473dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(array, Integer.MAX_VALUE, 1);
474dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
475dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
476dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
477dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
478dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
479dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(array, 1, Integer.MAX_VALUE);
480dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
481dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (BufferOverflowException expected) {
482dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException expected) {
483dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
484dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), 0);
485dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
486dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData2(array, 0, array.length);
487dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer ret = buf.put(array, 0, array.length);
488dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), buf.capacity());
489dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(buf, array, 0, array.length);
490dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertSame(ret, buf);
491dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
492dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
493dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    /*
494dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     * Class under test for java.nio.ShortBuffer put(java.nio.ShortBuffer)
495dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     */
496dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testPutShortBuffer() {
497dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer other = ShortBuffer.allocate(buf.capacity());
498dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
499dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(buf);
500dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
501dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IllegalArgumentException e) {
502dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
503dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
504dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
505dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(ShortBuffer.allocate(buf.capacity() + 1));
506dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
507dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (BufferOverflowException e) {
508dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
509dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
510dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
511dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.flip();
512dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put((ShortBuffer)null);
513dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
514dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (NullPointerException e) {
515dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
516dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
517dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
518dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        loadTestData2(other);
519dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        other.clear();
520dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
521dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer ret = buf.put(other);
522dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(other.position(), other.capacity());
523dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.position(), buf.capacity());
524dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertContentEquals(other, buf);
525dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertSame(ret, buf);
526dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
527dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
528dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    /*
529dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     * Class under test for java.nio.ShortBuffer put(int, short)
530dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes     */
531dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testPutintshort() {
532dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
533dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
534dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.position(), 0);
535dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            ShortBuffer ret = buf.put(i, (short) i);
536dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.get(i), (short) i);
537dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertSame(ret, buf);
538dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
539dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
540dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(-1, (short) 0);
541dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
542dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
543dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
544dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
545dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
546dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(buf.limit(), (short) 0);
547dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
548dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (IndexOutOfBoundsException e) {
549dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
550dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
551dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
552dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
553dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testSlice() {
554dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.capacity() > 5);
555dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.position(1);
556dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.limit(buf.capacity() - 1);
557dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
558dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer slice = buf.slice();
559dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.isReadOnly(), slice.isReadOnly());
560dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.isDirect(), slice.isDirect());
561dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.order(), slice.order());
562dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(slice.position(), 0);
563dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(slice.limit(), buf.remaining());
564dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(slice.capacity(), buf.remaining());
565dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
566dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            slice.reset();
567dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
568dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (InvalidMarkException e) {
569dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
570dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
571dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
572dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        // slice share the same content with buf
573dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        if (!slice.isReadOnly()) {
574dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            loadTestData1(slice);
575dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertContentLikeTestData1(buf, 1, (short) 0, slice.capacity());
576dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(2, (short) 500);
577dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(slice.get(1), 500);
578dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
579dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
580dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
581dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testToString() {
582dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        String str = buf.toString();
583dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(str.indexOf("Short") >= 0 || str.indexOf("short") >= 0);
584dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(str.indexOf("" + buf.position()) >= 0);
585dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(str.indexOf("" + buf.limit()) >= 0);
586dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(str.indexOf("" + buf.capacity()) >= 0);
587dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
588dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
589dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    void loadTestData1(short array[], int offset, int length) {
590dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < length; i++) {
591dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            array[offset + i] = (short) i;
592dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
593dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
594dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
595dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    void loadTestData2(short array[], int offset, int length) {
596dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < length; i++) {
597dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            array[offset + i] = (short) (length - i);
598dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
599dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
600dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
601dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    void loadTestData1(ShortBuffer buf) {
602dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
603dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
604dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(i, (short) i);
605dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
606dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
607dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
608dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    void loadTestData2(ShortBuffer buf) {
609dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf.clear();
610dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
611dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(i, (short) (buf.capacity() - i));
612dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
613dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
614dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
615dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    void assertContentEquals(ShortBuffer buf, short array[],
616dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            int offset, int length) {
617dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < length; i++) {
618dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.get(i), array[offset + i]);
619dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
620dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
621dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
622dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    void assertContentEquals(ShortBuffer buf, ShortBuffer other) {
623dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.capacity(), other.capacity());
624dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
625dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.get(i), other.get(i));
626dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
627dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
628dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
629dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    void assertContentLikeTestData1(ShortBuffer buf,
630dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            int startIndex, short startValue, int length) {
631dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        short value = startValue;
632dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        for (int i = 0; i < length; i++) {
633dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            assertEquals(buf.get(startIndex + i), value);
634dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            value = (short) (value + 1);
635dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
636dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
637dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes}
638