181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes/* 281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * this work for additional information regarding copyright ownership. 581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * (the "License"); you may not use this file except in compliance with 781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * the License. You may obtain a copy of the License at 881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * 981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 1081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * 1181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * Unless required by applicable law or agreed to in writing, software 1281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 1381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * See the License for the specific language governing permissions and 1581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * limitations under the License. 1681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 1781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes/** 1881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * @author Elena Semukhina 1981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 2081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 2181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughespackage org.apache.harmony.tests.java.math; 2281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 2381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughesimport java.math.BigInteger; 2481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 2581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughesimport junit.framework.TestCase; 2681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 2781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes/** 2881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * Class: java.math.BigInteger 2981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * Method: toString(int radix) 3081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 3181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughespublic class BigIntegerToStringTest extends TestCase { 3281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes /** 3381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * If 36 < radix < 2 it should be set to 10 3481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 3581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes public void testRadixOutOfRange() { 3681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String value = "442429234853876401"; 3781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes int radix = 10; 3881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes BigInteger aNumber = new BigInteger(value, radix); 3981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String result = aNumber.toString(45); 4081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes assertTrue(result.equals(value)); 4181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes } 4281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 4381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes /** 4481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * test negative number of radix 2 4581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 4681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes public void testRadix2Neg() { 4781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String value = "-101001100010010001001010101110000101010110001010010101010101010101010101010101010101010101010010101"; 4881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes int radix = 2; 4981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes BigInteger aNumber = new BigInteger(value, radix); 5081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String result = aNumber.toString(radix); 5181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes assertTrue(result.equals(value)); 5281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes } 5381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 5481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes /** 5581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * test positive number of radix 2 5681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 5781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes public void testRadix2Pos() { 5881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String value = "101000011111000000110101010101010101010001001010101010101010010101010101010000100010010"; 5981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes int radix = 2; 6081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes BigInteger aNumber = new BigInteger(value, radix); 6181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String result = aNumber.toString(radix); 6281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes assertTrue(result.equals(value)); 6381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes } 6481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 6581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes /** 6681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * test negative number of radix 10 6781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 6881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes public void testRadix10Neg() { 6981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String value = "-2489756308572364789878394872984"; 7081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes int radix = 16; 7181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes BigInteger aNumber = new BigInteger(value, radix); 7281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String result = aNumber.toString(radix); 7381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes assertTrue(result.equals(value)); 7481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes } 7581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 7681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes /** 7781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * test positive number of radix 10 7881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 7981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes public void testRadix10Pos() { 8081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String value = "2387627892347567398736473476"; 8181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes int radix = 16; 8281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes BigInteger aNumber = new BigInteger(value, radix); 8381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String result = aNumber.toString(radix); 8481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes assertTrue(result.equals(value)); 8581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes } 8681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 8781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes /** 8881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * test negative number of radix 16 8981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 9081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes public void testRadix16Neg() { 9181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String value = "-287628a883451b800865c67e8d7ff20"; 9281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes int radix = 16; 9381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes BigInteger aNumber = new BigInteger(value, radix); 9481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String result = aNumber.toString(radix); 9581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes assertTrue(result.equals(value)); 9681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes } 9781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 9881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes /** 9981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * test positive number of radix 16 10081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 10181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes public void testRadix16Pos() { 10281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String value = "287628a883451b800865c67e8d7ff20"; 10381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes int radix = 16; 10481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes BigInteger aNumber = new BigInteger(value, radix); 10581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String result = aNumber.toString(radix); 10681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes assertTrue(result.equals(value)); 10781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes } 10881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 10981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes /** 11081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * test negative number of radix 24 11181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 11281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes public void testRadix24Neg() { 11381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String value = "-287628a88gmn3451b8ijk00865c67e8d7ff20"; 11481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes int radix = 24; 11581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes BigInteger aNumber = new BigInteger(value, radix); 11681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String result = aNumber.toString(radix); 11781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes assertTrue(result.equals(value)); 11881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes } 11981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 12081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes /** 12181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * test positive number of radix 24 12281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 12381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes public void testRadix24Pos() { 12481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String value = "287628a883451bg80ijhk0865c67e8d7ff20"; 12581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes int radix = 24; 12681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes BigInteger aNumber = new BigInteger(value, radix); 12781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String result = aNumber.toString(radix); 12881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes assertTrue(result.equals(value)); 12981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes } 13081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 13181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes /** 13281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * test negative number of radix 24 13381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 13481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes public void testRadix36Neg() { 13581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String value = "-uhguweut98iu4h3478tq3985pq98yeiuth33485yq4aiuhalai485yiaehasdkr8tywi5uhslei8"; 13681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes int radix = 36; 13781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes BigInteger aNumber = new BigInteger(value, radix); 13881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String result = aNumber.toString(radix); 13981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes assertTrue(result.equals(value)); 14081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes } 14181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes 14281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes /** 14381ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes * test positive number of radix 24 14481ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes */ 14581ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes public void testRadix36Pos() { 14681ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String value = "23895lt45y6vhgliuwhgi45y845htsuerhsi4586ysuerhtsio5y68peruhgsil4568ypeorihtse48y6"; 14781ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes int radix = 36; 14881ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes BigInteger aNumber = new BigInteger(value, radix); 14981ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes String result = aNumber.toString(radix); 15081ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes assertTrue(result.equals(value)); 15181ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes } 15281ccea015ba3d2a2da1c641b14dd3713c6b40a76Elliott Hughes} 153