blob: adf63034cde773227fc1a6d7d6ba7123a1ad7230 [file] [log] [blame]
/*
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package libcore.java.lang;
import java.util.Properties;
public class LongTest extends junit.framework.TestCase {
public void testSystemProperties() {
Properties originalProperties = System.getProperties();
try {
Properties testProperties = new Properties();
testProperties.put("testIncLong", "string");
System.setProperties(testProperties);
assertNull(Long.getLong("testIncLong"));
assertEquals(new Long(4), Long.getLong("testIncLong", 4L));
assertEquals(new Long(4), Long.getLong("testIncLong", new Long(4)));
} finally {
System.setProperties(originalProperties);
}
}
public void testCompare() throws Exception {
final long min = Long.MIN_VALUE;
final long zero = 0L;
final long max = Long.MAX_VALUE;
assertTrue(Long.compare(max, max) == 0);
assertTrue(Long.compare(min, min) == 0);
assertTrue(Long.compare(zero, zero) == 0);
assertTrue(Long.compare(max, zero) > 0);
assertTrue(Long.compare(max, min) > 0);
assertTrue(Long.compare(zero, max) < 0);
assertTrue(Long.compare(zero, min) > 0);
assertTrue(Long.compare(min, zero) < 0);
assertTrue(Long.compare(min, max) < 0);
}
public void testSignum() throws Exception {
assertEquals(0, Long.signum(0));
assertEquals(1, Long.signum(1));
assertEquals(-1, Long.signum(-1));
assertEquals(1, Long.signum(Long.MAX_VALUE));
assertEquals(-1, Long.signum(Long.MIN_VALUE));
}
/*
public void testParsePositiveLong() throws Exception {
assertEquals(0, Long.parsePositiveLong("0", 10));
assertEquals(473, Long.parsePositiveLong("473", 10));
assertEquals(255, Long.parsePositiveLong("FF", 16));
try {
Long.parsePositiveLong("-1", 10);
fail();
} catch (NumberFormatException e) {}
try {
Long.parsePositiveLong("+1", 10);
fail();
} catch (NumberFormatException e) {}
try {
Long.parsePositiveLong("+0", 16);
fail();
} catch (NumberFormatException e) {}
}
*/
public void testParseLong() throws Exception {
assertEquals(0, Long.parseLong("+0", 10));
assertEquals(473, Long.parseLong("+473", 10));
assertEquals(255, Long.parseLong("+FF", 16));
assertEquals(102, Long.parseLong("+1100110", 2));
assertEquals(Long.MAX_VALUE, Long.parseLong("+" + Long.MAX_VALUE, 10));
assertEquals(411787, Long.parseLong("Kona", 27));
assertEquals(411787, Long.parseLong("+Kona", 27));
assertEquals(-145, Long.parseLong("-145", 10));
try {
Long.parseLong("--1", 10); // multiple sign chars
fail();
} catch (NumberFormatException expected) {}
try {
Long.parseLong("++1", 10); // multiple sign chars
fail();
} catch (NumberFormatException expected) {}
try {
Long.parseLong("Kona", 10); // base to small
fail();
} catch (NumberFormatException expected) {}
}
public void testDecodeLong() throws Exception {
assertEquals(0, Long.decode("+0").longValue());
assertEquals(473, Long.decode("+473").longValue());
assertEquals(255, Long.decode("+0xFF").longValue());
assertEquals(16, Long.decode("+020").longValue());
assertEquals(Long.MAX_VALUE, Long.decode("+" + Long.MAX_VALUE).longValue());
assertEquals(-73, Long.decode("-73").longValue());
assertEquals(-255, Long.decode("-0xFF").longValue());
assertEquals(255, Long.decode("+#FF").longValue());
assertEquals(-255, Long.decode("-#FF").longValue());
try {
Long.decode("--1"); // multiple sign chars
fail();
} catch (NumberFormatException expected) {}
try {
Long.decode("++1"); // multiple sign chars
fail();
} catch (NumberFormatException expected) {}
try {
Long.decode("+-1"); // multiple sign chars
fail();
} catch (NumberFormatException expected) {}
try {
Long.decode("Kona"); // invalid number
fail();
} catch (NumberFormatException expected) {}
}
public void testStaticHashCode() {
assertEquals(Long.valueOf(567L).hashCode(), Long.hashCode(567L));
}
public void testMax() {
long a = 567L;
long b = 578L;
assertEquals(Math.max(a, b), Long.max(a, b));
}
public void testMin() {
long a = 567L;
long b = 578L;
assertEquals(Math.min(a, b), Long.min(a, b));
}
public void testSum() {
long a = 567L;
long b = 578L;
assertEquals(a + b, Long.sum(a, b));
}
public void testBYTES() {
assertEquals(8, Long.BYTES);
}
}