1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.nio.tests.java.nio;
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.BufferOverflowException;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.BufferUnderflowException;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.ByteOrder;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.DoubleBuffer;
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.FloatBuffer;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.InvalidMarkException;
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/**
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Tests java.nio.FloatBuffer
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class FloatBufferTest extends AbstractBufferTest {
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    protected static final int SMALL_TEST_LENGTH = 5;
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    protected static final int BUFFER_LENGTH = 20;
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    protected FloatBuffer buf;
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    protected void setUp() throws Exception {
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf = FloatBuffer.allocate(BUFFER_LENGTH);
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData1(buf);
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        baseBuf = buf;
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    protected void tearDown() throws Exception {
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf = null;
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        baseBuf = null;
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testArray() {
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float array[] = buf.array();
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData1(array, buf.arrayOffset(), buf.capacity());
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData2(array, buf.arrayOffset(), buf.capacity());
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData1(buf);
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData2(buf);
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testArrayOffset() {
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float array[] = buf.array();
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData1(array, buf.arrayOffset(), buf.capacity());
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData2(array, buf.arrayOffset(), buf.capacity());
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData1(buf);
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData2(buf);
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, buf.arrayOffset(), buf.capacity());
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testAsReadOnlyBuffer() {
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.mark();
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.position(buf.limit());
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // readonly's contents should be the same as buf
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer readonly = buf.asReadOnlyBuffer();
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotSame(buf, readonly);
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(readonly.isReadOnly());
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), readonly.position());
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.limit(), readonly.limit());
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.isDirect(), readonly.isDirect());
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.order(), readonly.order());
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, readonly);
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // readonly's position, mark, and limit should be independent to buf
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        readonly.reset();
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(readonly.position(), 0);
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        readonly.clear();
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), buf.limit());
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.reset();
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), 0);
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testCompact() {
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // case: buffer is full
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.mark();
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData1(buf);
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer ret = buf.compact();
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertSame(ret, buf);
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), buf.capacity());
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.limit(), buf.capacity());
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentLikeTestData1(buf, 0, 0.0f, buf.capacity());
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.reset();
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (InvalidMarkException e) {
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // case: buffer is empty
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.position(0);
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.limit(0);
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.mark();
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ret = buf.compact();
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertSame(ret, buf);
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), 0);
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.limit(), buf.capacity());
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentLikeTestData1(buf, 0, 0.0f, buf.capacity());
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.reset();
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (InvalidMarkException e) {
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // case: normal
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.capacity() > 5);
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.position(1);
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.limit(5);
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.mark();
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        ret = buf.compact();
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertSame(ret, buf);
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), 4);
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.limit(), buf.capacity());
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentLikeTestData1(buf, 0, 1.0f, 4);
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.reset();
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (InvalidMarkException e) {
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testCompareTo() {
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.compareTo(null);
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw NPE");
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // compare to self
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, buf.compareTo(buf));
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // normal cases
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.capacity() > 5);
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer other = FloatBuffer.allocate(buf.capacity());
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData1(other);
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, buf.compareTo(other));
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, other.compareTo(buf));
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.position(1);
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.compareTo(other) > 0);
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(other.compareTo(buf) < 0);
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        other.position(2);
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.compareTo(other) < 0);
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(other.compareTo(buf) > 0);
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.position(2);
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        other.limit(5);
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.compareTo(other) > 0);
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(other.compareTo(buf) < 0);
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer fbuffer1 = FloatBuffer.wrap(new float[] { Float.NaN });
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer fbuffer2 = FloatBuffer.wrap(new float[] { Float.NaN });
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer fbuffer3 = FloatBuffer.wrap(new float[] { 42f });
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Failed equal comparison with NaN entry", 0, fbuffer1
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .compareTo(fbuffer2));
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Failed greater than comparison with NaN entry", 1, fbuffer3
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .compareTo(fbuffer1));
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("Failed greater than comparison with NaN entry", 1, fbuffer1
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                .compareTo(fbuffer3));
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testDuplicate() {
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.mark();
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.position(buf.limit());
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // duplicate's contents should be the same as buf
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer duplicate = buf.duplicate();
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotSame(buf, duplicate);
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), duplicate.position());
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.limit(), duplicate.limit());
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.isReadOnly(), duplicate.isReadOnly());
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.isDirect(), duplicate.isDirect());
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.order(), duplicate.order());
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, duplicate);
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // duplicate's position, mark, and limit should be independent to buf
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        duplicate.reset();
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(duplicate.position(), 0);
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        duplicate.clear();
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), buf.limit());
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.reset();
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), 0);
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // duplicate share the same content with buf
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (!duplicate.isReadOnly()) {
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            loadTestData1(buf);
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertContentEquals(buf, duplicate);
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            loadTestData2(duplicate);
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertContentEquals(buf, duplicate);
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testEquals() {
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // equal to self
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.equals(buf));
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer readonly = buf.asReadOnlyBuffer();
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.equals(readonly));
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer duplicate = buf.duplicate();
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.equals(duplicate));
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // always false, if type mismatch
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(buf.equals(Boolean.TRUE));
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.capacity() > 5);
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.limit(buf.capacity()).position(0);
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        readonly.limit(readonly.capacity()).position(1);
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(buf.equals(readonly));
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.limit(buf.capacity() - 1).position(0);
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        duplicate.limit(duplicate.capacity()).position(0);
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(buf.equals(duplicate));
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /*
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Class under test for float get()
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGet() {
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.position(), i);
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.get(), buf.get(i), 0.01);
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get();
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (BufferUnderflowException e) {
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /*
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Class under test for java.nio.FloatBuffer get(float[])
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetfloatArray() {
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float array[] = new float[1];
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.position(), i);
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            FloatBuffer ret = buf.get(array);
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(array[0], buf.get(i), 0.01);
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertSame(ret, buf);
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get(array);
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (BufferUnderflowException e) {
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.position(buf.limit());
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get((float[])null);
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.get(new float[0]);
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /*
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Class under test for java.nio.FloatBuffer get(float[], int, int)
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetfloatArrayintint() {
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float array[] = new float[buf.capacity()];
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get(new float[buf.capacity() + 1], 0, buf.capacity() + 1);
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (BufferUnderflowException e) {
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), 0);
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get(array, -1, array.length);
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.get(array, array.length, 0);
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get(array, array.length + 1, 1);
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), 0);
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get(array, 2, -1);
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get((float[])null, 2, -1);
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get(array, 2, array.length);
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get(array, 1, Integer.MAX_VALUE);
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
3502a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes        } catch (BufferUnderflowException expected) {
3512a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes        } catch (IndexOutOfBoundsException expected) {
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get(array, Integer.MAX_VALUE, 1);
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), 0);
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer ret = buf.get(array, 0, array.length);
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), buf.capacity());
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, 0, array.length);
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertSame(ret, buf);
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /*
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Class under test for float get(int)
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testGetint() {
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.position(), i);
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.get(), buf.get(i), 0.01);
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get(-1);
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.get(buf.limit());
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testHasArray() {
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertNotNull(buf.array());
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testHashCode() {
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer readonly = buf.asReadOnlyBuffer();
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer duplicate = buf.duplicate();
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.hashCode() == readonly.hashCode());
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.capacity() > 5);
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        duplicate.position(buf.capacity() / 2);
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.hashCode() != duplicate.hashCode());
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testIsDirect() {
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(buf.isDirect());
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testOrder() {
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.order();
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (buf.hasArray()) {
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(ByteOrder.nativeOrder(), buf.order());
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /*
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Class under test for java.nio.FloatBuffer put(float)
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testPutfloat() {
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.position(), i);
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            FloatBuffer ret = buf.put((float) i);
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.get(i), (float) i, 0.0);
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertSame(ret, buf);
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(0);
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (BufferOverflowException e) {
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /*
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Class under test for java.nio.FloatBuffer put(float[])
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testPutfloatArray() {
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float array[] = new float[1];
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.position(), i);
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            array[0] = (float) i;
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            FloatBuffer ret = buf.put(array);
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.get(i), (float) i, 0.0);
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertSame(ret, buf);
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(array);
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (BufferOverflowException e) {
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.position(buf.limit());
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put((float[])null);
458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /*
465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Class under test for java.nio.FloatBuffer put(float[], int, int)
466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testPutfloatArrayintint() {
468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float array[] = new float[buf.capacity()];
470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(new float[buf.capacity() + 1], 0, buf.capacity() + 1);
472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (BufferOverflowException e) {
474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), 0);
477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(array, -1, array.length);
479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(array, array.length + 1, 0);
485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.put(array, array.length, 0);
490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), 0);
491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(array, 0, -1);
493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put((float[])null, 0, -1);
499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(array, 2, array.length);
505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(array, Integer.MAX_VALUE, 1);
511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(array, 1, Integer.MAX_VALUE);
517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
5182a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes        } catch (BufferOverflowException expected) {
5192a68e06b23ceb5b401d5bc784e6882e71c662caeElliott Hughes        } catch (IndexOutOfBoundsException expected) {
520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), 0);
522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData2(array, 0, array.length);
524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer ret = buf.put(array, 0, array.length);
525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), buf.capacity());
526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(buf, array, 0, array.length);
527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertSame(ret, buf);
528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /*
531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Class under test for java.nio.FloatBuffer put(java.nio.FloatBuffer)
532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testPutFloatBuffer() {
534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer other = FloatBuffer.allocate(buf.capacity());
535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(buf);
537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {
539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(FloatBuffer.allocate(buf.capacity() + 1));
543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (BufferOverflowException e) {
545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.flip();
549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put((FloatBuffer)null);
550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        loadTestData2(other);
556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        other.clear();
557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer ret = buf.put(other);
559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(other.position(), other.capacity());
560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.position(), buf.capacity());
561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertContentEquals(other, buf);
562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertSame(ret, buf);
563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /*
566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * Class under test for java.nio.FloatBuffer put(int, float)
567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testPutintfloat() {
569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.position(), 0);
572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            FloatBuffer ret = buf.put(i, (float) i);
573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.get(i), (float) i, 0.0);
574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertSame(ret, buf);
575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(-1, 0);
578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(buf.limit(), 0);
584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IndexOutOfBoundsException e) {
586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testSlice() {
591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.capacity() > 5);
592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.position(1);
593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.limit(buf.capacity() - 1);
594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        FloatBuffer slice = buf.slice();
596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.isReadOnly(), slice.isReadOnly());
597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.isDirect(), slice.isDirect());
598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.order(), slice.order());
599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(slice.position(), 0);
600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(slice.limit(), buf.remaining());
601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(slice.capacity(), buf.remaining());
602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            slice.reset();
604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (InvalidMarkException e) {
606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        // slice share the same content with buf
610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        if (!slice.isReadOnly()) {
611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            loadTestData1(slice);
612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertContentLikeTestData1(buf, 1, 0, slice.capacity());
613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(2, 500);
614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(slice.get(1), 500, 0.0);
615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testToString() {
619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String str = buf.toString();
620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(str.indexOf("Float") >= 0 || str.indexOf("float") >= 0);
621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(str.indexOf("" + buf.position()) >= 0);
622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(str.indexOf("" + buf.limit()) >= 0);
623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(str.indexOf("" + buf.capacity()) >= 0);
624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    void loadTestData1(float array[], int offset, int length) {
627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < length; i++) {
628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            array[offset + i] = (float) i;
629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    void loadTestData2(float array[], int offset, int length) {
633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < length; i++) {
634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            array[offset + i] = (float) length - i;
635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    void loadTestData1(FloatBuffer buf) {
639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(i, (float) i);
642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    void loadTestData2(FloatBuffer buf) {
646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        buf.clear();
647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(i, (float) buf.capacity() - i);
649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    void assertContentEquals(FloatBuffer buf, float array[],
653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            int offset, int length) {
654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < length; i++) {
655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.get(i), array[offset + i], 0.01);
656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    void assertContentEquals(FloatBuffer buf, FloatBuffer other) {
660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.capacity(), other.capacity());
661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < buf.capacity(); i++) {
662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.get(i), other.get(i), 0.01);
663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    void assertContentLikeTestData1(FloatBuffer buf,
667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            int startIndex, float startValue, int length) {
668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        float value = startValue;
669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        for (int i = 0; i < length; i++) {
670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            assertEquals(buf.get(startIndex + i), value, 0.01);
671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            value = value + 1.0f;
672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
675