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, WITHOUT
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * License for the specific language governing permissions and limitations under
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.util;
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.UUID;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport org.apache.harmony.testframework.serialization.SerializationTest;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase;
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class UUIDTest extends TestCase {
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#UUID(long, long)
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_ConstructorJJ() {
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = new UUID(0xf81d4fae7dec11d0L, 0xa76500a0c91e6bf6L);
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, uuid.variant());
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, uuid.version());
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0x1d07decf81d4faeL, uuid.timestamp());
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(130742845922168750L, uuid.timestamp());
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0x2765, uuid.clockSequence());
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0xA0C91E6BF6L, uuid.node());
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#getLeastSignificantBits()
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getLeastSignificantBits() {
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = new UUID(0, 0);
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, uuid.getLeastSignificantBits());
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, Long.MIN_VALUE);
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(Long.MIN_VALUE, uuid.getLeastSignificantBits());
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, Long.MAX_VALUE);
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(Long.MAX_VALUE, uuid.getLeastSignificantBits());
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#getMostSignificantBits()
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_getMostSignificantBits() {
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = new UUID(0, 0);
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, uuid.getMostSignificantBits());
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(Long.MIN_VALUE, 0);
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(Long.MIN_VALUE, uuid.getMostSignificantBits());
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(Long.MAX_VALUE, 0);
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(Long.MAX_VALUE, uuid.getMostSignificantBits());
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#version()
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_version() {
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = new UUID(0, 0);
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, uuid.version());
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000001000L, 0);
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, uuid.version());
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000002000L, 0);
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, uuid.version());
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000003000L, 0);
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, uuid.version());
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000004000L, 0);
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(4, uuid.version());
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000005000L, 0);
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(5, uuid.version());
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#variant()
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_variant() {
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = new UUID(0, 0x0000000000000000L);
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, uuid.variant());
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, 0x7000000000000000L);
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, uuid.variant());
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, 0x3000000000000000L);
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, uuid.variant());
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, 0x1000000000000000L);
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, uuid.variant());
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, 0x8000000000000000L);
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, uuid.variant());
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, 0xB000000000000000L);
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, uuid.variant());
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, 0xA000000000000000L);
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, uuid.variant());
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, 0x9000000000000000L);
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, uuid.variant());
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, 0xC000000000000000L);
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(6, uuid.variant());
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, 0xD000000000000000L);
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(6, uuid.variant());
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, 0xE000000000000000L);
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(7, uuid.variant());
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0, 0xF000000000000000L);
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(7, uuid.variant());
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#timestamp()
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_timestamp() {
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = new UUID(0x0000000000001000L, 0x8000000000000000L);
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0x0, uuid.timestamp());
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x7777777755551333L, 0x8000000000000000L);
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0x333555577777777L, uuid.timestamp());
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000000000L, 0x8000000000000000L);
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            uuid.timestamp();
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No UnsupportedOperationException");
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (UnsupportedOperationException e) {}
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000002000L, 0x8000000000000000L);
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            uuid.timestamp();
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No UnsupportedOperationException");
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (UnsupportedOperationException e) {}
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#clockSequence()
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_clockSequence() {
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = new UUID(0x0000000000001000L, 0x8000000000000000L);
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0x0, uuid.clockSequence());
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000001000L, 0x8FFF000000000000L);
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0x0FFF, uuid.clockSequence());
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000001000L, 0xBFFF000000000000L);
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0x3FFF, uuid.clockSequence());
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000000000L, 0x8000000000000000L);
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            uuid.clockSequence();
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No UnsupportedOperationException");
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (UnsupportedOperationException e) {}
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000002000L, 0x8000000000000000L);
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            uuid.clockSequence();
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No UnsupportedOperationException");
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (UnsupportedOperationException e) {}
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#node()
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_node() {
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = new UUID(0x0000000000001000L, 0x8000000000000000L);
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0x0, uuid.node());
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000001000L, 0x8000FFFFFFFFFFFFL);
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0xFFFFFFFFFFFFL, uuid.node());
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000000000L, 0x8000000000000000L);
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            uuid.node();
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No UnsupportedOperationException");
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (UnsupportedOperationException e) {}
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000002000L, 0x8000000000000000L);
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            uuid.node();
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No UnsupportedOperationException");
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (UnsupportedOperationException e) {}
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#compareTo(UUID)
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_compareTo() {
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid1 = new UUID(0, 0);
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, uuid1.compareTo(uuid1));
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid2 = new UUID(1, 0);
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, uuid1.compareTo(uuid2));
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, uuid2.compareTo(uuid1));
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid2 = new UUID(0, 1);
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(-1, uuid1.compareTo(uuid2));
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, uuid2.compareTo(uuid1));
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#hashCode()
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_hashCode() {
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = new UUID(0, 0);
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, uuid.hashCode());
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(123, 123);
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuidClone = new UUID(123, 123);
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(uuid.hashCode(), uuidClone.hashCode());
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#equals(Object)
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_equalsObject() {
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid1 = new UUID(0, 0);
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(uuid1, uuid1);
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(uuid1.equals(null));
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(uuid1.equals("NOT A UUID"));
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid2 = new UUID(0, 0);
223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(uuid1, uuid2);
224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(uuid2, uuid1);
225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid1 = new UUID(0xf81d4fae7dec11d0L, 0xa76500a0c91e6bf6L);
227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid2 = new UUID(0xf81d4fae7dec11d0L, 0xa76500a0c91e6bf6L);
228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(uuid1, uuid2);
229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(uuid2, uuid1);
230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid2 = new UUID(0xf81d4fae7dec11d0L, 0xa76500a0c91e6bf7L);
232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(uuid1.equals(uuid2));
233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(uuid2.equals(uuid1));
234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#toString()
238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_toString() {
240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = new UUID(0xf81d4fae7dec11d0L, 0xa76500a0c91e6bf6L);
241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        String actual = uuid.toString();
242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("f81d4fae-7dec-11d0-a765-00a0c91e6bf6", actual);
243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = new UUID(0x0000000000001000L, 0x8000000000000000L);
245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        actual = uuid.toString();
246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals("00000000-0000-1000-8000-000000000000", actual);
247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests serialization/deserialization.
251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testSerializationSelf() throws Exception {
253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTest.verifySelf(new UUID(0xf81d4fae7dec11d0L,
254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                0xa76500a0c91e6bf6L));
255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @tests serialization/deserialization compatibility with RI.
259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testSerializationCompatibility() throws Exception {
261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        SerializationTest.verifyGolden(this, new UUID(0xf81d4fae7dec11d0L,
262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                0xa76500a0c91e6bf6L));
263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#randomUUID()
267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_randomUUID() {
269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = UUID.randomUUID();
270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, uuid.variant());
271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(4, uuid.version());
272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#nameUUIDFromBytes(byte[])
276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_nameUUIDFromBytes() throws Exception {
278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        byte[] name = { (byte) 0x6b, (byte) 0xa7, (byte) 0xb8, (byte) 0x11,
279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (byte) 0x9d, (byte) 0xad, (byte) 0x11, (byte) 0xd1,
280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (byte) 0x80, (byte) 0xb4, (byte) 0x00, (byte) 0xc0,
281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                (byte) 0x4f, (byte) 0xd4, (byte) 0x30, (byte) 0xc8 };
282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID uuid = UUID.nameUUIDFromBytes(name);
284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, uuid.variant());
286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, uuid.version());
287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0xaff565bc2f771745L, uuid.getLeastSignificantBits());
289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0x14cdb9b4de013faaL, uuid.getMostSignificantBits());
290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        uuid = UUID.nameUUIDFromBytes(new byte[0]);
292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, uuid.variant());
293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(3, uuid.version());
294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0xa9800998ecf8427eL, uuid.getLeastSignificantBits());
296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0xd41d8cd98f003204L, uuid.getMostSignificantBits());
297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            UUID.nameUUIDFromBytes(null);
300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No NPE");
301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {}
302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    /**
305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     * @see UUID#fromString(String)
306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes     */
307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void test_fromString() {
308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID actual = UUID.fromString("f81d4fae-7dec-11d0-a765-00a0c91e6bf6");
309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        UUID expected = new UUID(0xf81d4fae7dec11d0L, 0xa76500a0c91e6bf6L);
310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(expected, actual);
311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, actual.variant());
313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, actual.version());
314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(130742845922168750L, actual.timestamp());
315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(10085, actual.clockSequence());
316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(690568981494L, actual.node());
317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        actual = UUID.fromString("00000000-0000-1000-8000-000000000000");
319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        expected = new UUID(0x0000000000001000L, 0x8000000000000000L);
320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(expected, actual);
321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(2, actual.variant());
323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(1, actual.version());
324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0L, actual.timestamp());
325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0, actual.clockSequence());
326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(0L, actual.node());
327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            UUID.fromString(null);
330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No NPE");
331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {}
332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            UUID.fromString("");
335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IAE");
336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {}
337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            UUID.fromString("f81d4fae_7dec-11d0-a765-00a0c91e6bf6");
340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IAE");
341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {}
342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            UUID.fromString("f81d4fae-7dec_11d0-a765-00a0c91e6bf6");
345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IAE");
346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {}
347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            UUID.fromString("f81d4fae-7dec-11d0_a765-00a0c91e6bf6");
350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IAE");
351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {}
352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            UUID.fromString("f81d4fae-7dec-11d0-a765_00a0c91e6bf6");
355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("No IAE");
356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (IllegalArgumentException e) {}
357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.UUID#fromString(String)
361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_fromString_LString_Exception() {
363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		UUID uuid = UUID.fromString("0-0-0-0-0");
365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			uuid = UUID.fromString("0-0-0-0-");
368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("should throw IllegalArgumentException");
369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			uuid = UUID.fromString("-0-0-0-0-0");
375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("should throw IllegalArgumentException");
376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			uuid = UUID.fromString("-0-0-0-0");
382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("should throw IllegalArgumentException");
383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			uuid = UUID.fromString("-0-0-0-");
389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("should throw IllegalArgumentException");
390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			uuid = UUID.fromString("0--0-0-0");
396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("should throw IllegalArgumentException");
397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			uuid = UUID.fromString("0-0-0-0-");
403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("should throw IllegalArgumentException");
404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			uuid = UUID.fromString("-1-0-0-0-0");
410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("should throw IllegalArgumentException");
411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (IllegalArgumentException e) {
412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		uuid = UUID.fromString("123456789-0-0-0-0");
416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0x2345678900000000L, uuid.getMostSignificantBits());
417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0x0L, uuid.getLeastSignificantBits());
418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		uuid = UUID.fromString("111123456789-0-0-0-0");
420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0x2345678900000000L, uuid.getMostSignificantBits());
421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0x0L, uuid.getLeastSignificantBits());
422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		uuid = UUID.fromString("7fffffffffffffff-0-0-0-0");
424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0xffffffff00000000L, uuid.getMostSignificantBits());
425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0x0L, uuid.getLeastSignificantBits());
426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			uuid = UUID.fromString("8000000000000000-0-0-0-0");
429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("should throw NumberFormatException");
430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NumberFormatException e) {
431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		uuid = UUID
435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.fromString("7fffffffffffffff-7fffffffffffffff-7fffffffffffffff-0-0");
436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0xffffffffffffffffL, uuid.getMostSignificantBits());
437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0x0L, uuid.getLeastSignificantBits());
438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		uuid = UUID.fromString("0-0-0-7fffffffffffffff-7fffffffffffffff");
440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0x0L, uuid.getMostSignificantBits());
441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals(0xffffffffffffffffL, uuid.getLeastSignificantBits());
442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			uuid = UUID.fromString("0-0-0-8000000000000000-0");
445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("should throw NumberFormatException");
446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NumberFormatException e) {
447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			uuid = UUID.fromString("0-0-0-0-8000000000000000");
452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("should throw NumberFormatException");
453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NumberFormatException e) {
454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected
455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
458