1c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes/*
2c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes * Copyright (C) 2011 The Android Open Source Project
3c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes *
4c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes * Licensed under the Apache License, Version 2.0 (the "License");
5c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes * you may not use this file except in compliance with the License.
6c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes * You may obtain a copy of the License at
7c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes *
8c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes *      http://www.apache.org/licenses/LICENSE-2.0
9c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes *
10c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes * Unless required by applicable law or agreed to in writing, software
11c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes * distributed under the License is distributed on an "AS IS" BASIS,
12c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes * See the License for the specific language governing permissions and
14c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes * limitations under the License.
15c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes */
16c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes
17c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughespackage libcore.java.lang;
18c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes
19c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughespublic class ByteTest extends junit.framework.TestCase {
20c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes    public void test_compare() throws Exception {
21c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        final byte min = Byte.MIN_VALUE;
22c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        final byte zero = (byte) 0;
23c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        final byte max = Byte.MAX_VALUE;
24c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        assertTrue(Byte.compare(max,  max)  == 0);
25c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        assertTrue(Byte.compare(min,  min)  == 0);
26c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        assertTrue(Byte.compare(zero, zero) == 0);
27c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        assertTrue(Byte.compare(max,  zero) > 0);
28c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        assertTrue(Byte.compare(max,  min)  > 0);
29c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        assertTrue(Byte.compare(zero, max)  < 0);
30c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        assertTrue(Byte.compare(zero, min)  > 0);
31c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        assertTrue(Byte.compare(min,  zero) < 0);
32c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes        assertTrue(Byte.compare(min,  max)  < 0);
33c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes    }
34cf86f3319e738c76c5e97ad95bb8a4e30654a787Yi Kong
35cf86f3319e738c76c5e97ad95bb8a4e30654a787Yi Kong    public void testStaticHashCode() {
36cf86f3319e738c76c5e97ad95bb8a4e30654a787Yi Kong        assertEquals(new Byte((byte) 567).hashCode(), Byte.hashCode((byte) 567));
37cf86f3319e738c76c5e97ad95bb8a4e30654a787Yi Kong    }
38cf86f3319e738c76c5e97ad95bb8a4e30654a787Yi Kong
39cf86f3319e738c76c5e97ad95bb8a4e30654a787Yi Kong    public void testBYTES() {
40cf86f3319e738c76c5e97ad95bb8a4e30654a787Yi Kong        assertEquals(1, Byte.BYTES);
41cf86f3319e738c76c5e97ad95bb8a4e30654a787Yi Kong    }
42e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong
43e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong    public void testToUnsignedInt() {
44e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong        for(int i = Byte.MIN_VALUE; i < Byte.MAX_VALUE; i++) {
45e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong            final byte b = (byte) i;
46e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong            final int ui = Byte.toUnsignedInt(b);
47e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong            assertEquals(0, ui >>> Byte.BYTES * 8);
48e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong            assertEquals(b, Integer.valueOf(b).byteValue());
49e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong        }
50e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong    }
51e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong
52e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong    public void testToUnsignedLong() {
53e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong        for(int i = Byte.MIN_VALUE; i < Byte.MAX_VALUE; i++) {
54e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong            final byte b = (byte) i;
55e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong            final long ul = Byte.toUnsignedLong(b);
56e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong            assertEquals(0, ul >>> Byte.BYTES * 8);
57e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong            assertEquals(b, Long.valueOf(b).byteValue());
58e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong        }
59e2f147b9b14c7645f29e92758f811a18258feef4Yi Kong    }
60c3adcfb1339de546aed6e7ff00a7edb020b8a85bElliott Hughes}
61