| Index: test/codegen/corelib/integer_to_radix_string_test.dart
 | 
| diff --git a/test/codegen/corelib/integer_to_radix_string_test.dart b/test/codegen/corelib/integer_to_radix_string_test.dart
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..80d30ccbb9e91364e69797213dd29fae92dae8e0
 | 
| --- /dev/null
 | 
| +++ b/test/codegen/corelib/integer_to_radix_string_test.dart
 | 
| @@ -0,0 +1,61 @@
 | 
| +// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 | 
| +// for details. All rights reserved. Use of this source code is governed by a
 | 
| +// BSD-style license that can be found in the LICENSE file.
 | 
| +
 | 
| +import "package:expect/expect.dart";
 | 
| +
 | 
| +main() {
 | 
| +  // Test that we accept radix 2 to 36 and that we use lower-case
 | 
| +  // letters.
 | 
| +  var expected = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
 | 
| +                  'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
 | 
| +                  'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
 | 
| +                  'u', 'v', 'w', 'x', 'y', 'z'];
 | 
| +  for (var radix = 2; radix <= 36; radix++) {
 | 
| +    for (var i = 0; i < radix; i++) {
 | 
| +      Expect.equals(expected[i], i.toRadixString(radix));
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  var illegalRadices = [ -1, 0, 1, 37 ];
 | 
| +  for (var radix in illegalRadices) {
 | 
| +    try {
 | 
| +      42.toRadixString(radix);
 | 
| +      Expect.fail("Exception expected");
 | 
| +    } on ArgumentError catch (e) {
 | 
| +      // Nothing to do.
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  // Try large numbers (regression test for issue 15316).
 | 
| +  var bignums = [
 | 
| +    0x80000000,
 | 
| +    0x100000000,
 | 
| +    0x10000000000000,
 | 
| +    0x10000000000001,  // 53 significant bits.
 | 
| +    0x20000000000000,
 | 
| +    0x20000000000002,
 | 
| +    0x1000000000000000,
 | 
| +    0x1000000000000100,
 | 
| +    0x2000000000000000,
 | 
| +    0x2000000000000200,
 | 
| +    0x8000000000000000,
 | 
| +    0x8000000000000800,
 | 
| +    0x10000000000000000,
 | 
| +    0x10000000000001000,
 | 
| +    0x100000000000010000,
 | 
| +    0x1000000000000100000,
 | 
| +    0x10000000000001000000,
 | 
| +    0x100000000000010000000,
 | 
| +    0x1000000000000100000000,
 | 
| +    0x10000000000001000000000,
 | 
| +  ];
 | 
| +  for (var bignum in bignums) {
 | 
| +    for (int radix = 2; radix <= 36; radix++) {
 | 
| +      String digits = bignum.toRadixString(radix);
 | 
| +      int result = int.parse(digits, radix: radix);
 | 
| +      Expect.equals(bignum, result,
 | 
| +                    "${bignum.toRadixString(16)} -> $digits/$radix");
 | 
| +    }
 | 
| +  }
 | 
| +}
 | 
| 
 |