MathContextTest.java revision adc854b798c1cfe3bfd4c27d68d5cee38ca617da
1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.java.math; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargets; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestLevel; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetNew; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetClass; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.math.BigDecimal; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.math.MathContext; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.math.RoundingMode; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project@TestTargetClass(MathContext.class) 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class MathContextTest extends junit.framework.TestCase { 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @tests java.math.MathContext#MathContext(...) 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargets({ 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "MathContext", 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {int.class} 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "MathContext", 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {int.class, java.math.RoundingMode.class} 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "MathContext", 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class} 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getPrecision", 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getRoundingMode", 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "equals", 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.Object.class} 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "hashCode", 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "toString", 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }) 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_MathContextConstruction() { 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String a = "-12380945E+61"; 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project BigDecimal aNumber = new BigDecimal(a); 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MathContext mcIntRm6hd = new MathContext(6, RoundingMode.HALF_DOWN); 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MathContext mcStr6hd = new MathContext("precision=6 roundingMode=HALF_DOWN"); 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MathContext mcInt6 = new MathContext(6); 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MathContext mcInt134 = new MathContext(134); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // getPrecision() 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("MathContext.getPrecision() returns incorrect value", 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 6, mcIntRm6hd.getPrecision() ); 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("MathContext.getPrecision() returns incorrect value", 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 134, mcInt134.getPrecision() ); 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // getRoundingMode() 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("MathContext.getRoundingMode() returns incorrect value", 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RoundingMode.HALF_UP, 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mcInt6.getRoundingMode()); 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("MathContext.getRoundingMode() returns incorrect value", 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RoundingMode.HALF_DOWN, mcIntRm6hd.getRoundingMode() ); 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // toString() 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("MathContext.toString() returning incorrect value", 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "precision=6 roundingMode=HALF_DOWN", mcIntRm6hd.toString() ); 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("MathContext.toString() returning incorrect value", 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "precision=6 roundingMode=HALF_UP", mcInt6.toString() ); 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // equals(.) 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Equal MathContexts are not equal ", 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mcIntRm6hd, mcStr6hd ); 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse("Different MathContexts are reported as equal ", 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mcInt6.equals(mcStr6hd) ); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse("Different MathContexts are reported as equal ", 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mcInt6.equals(mcInt134) ); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // hashCode(.) 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Equal MathContexts have different hashcodes ", 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mcIntRm6hd.hashCode(), mcStr6hd.hashCode() ); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse("Different MathContexts have equal hashcodes ", 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mcInt6.hashCode() == mcStr6hd.hashCode() ); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse("Different MathContexts have equal hashcodes ", 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project mcInt6.hashCode() == mcInt134.hashCode() ); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // other: 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project BigDecimal res = aNumber.abs(mcInt6); 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("MathContext Constructor with int precision failed", 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new BigDecimal("1.23809E+68"), 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project res); 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}