Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(504)

Unified Diff: test/codegen/corelib/integer_to_radix_string_test.dart

Issue 1945153002: Add corelib tests (Closed) Base URL: https://github.com/dart-lang/dev_compiler@master
Patch Set: error_test and range_error_test now pass Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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");
+ }
+ }
+}
« no previous file with comments | « test/codegen/corelib/int_truncate_to_double_test.dart ('k') | test/codegen/corelib/integer_to_string_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698