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