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

Unified Diff: tests/corelib/core_runtime_types_test.dart

Issue 2986503002: Migrate test block 4 to Dart 2.0. (Closed)
Patch Set: Merge with head Created 3 years, 5 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
« no previous file with comments | « tests/corelib/const_list_set_range_test.dart ('k') | tests/corelib/corelib.status » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/corelib/core_runtime_types_test.dart
diff --git a/tests/corelib/core_runtime_types_test.dart b/tests/corelib/core_runtime_types_test.dart
deleted file mode 100644
index 2da72f7b8703c8611d066675774e06c50fa0490b..0000000000000000000000000000000000000000
--- a/tests/corelib/core_runtime_types_test.dart
+++ /dev/null
@@ -1,342 +0,0 @@
-// Copyright (c) 2011, 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";
-
-/**
- * A test of simple runtime behavior on numbers, strings and lists with
- * a focus on both correct behavior and runtime errors.
- *
- * This file is written to use minimal type declarations to match a
- * typical dynamic language coding style.
- */
-class CoreRuntimeTypesTest {
- static testMain() {
- testBooleanOperators();
- testRationalOperators();
- testIntegerOperators();
- testOperatorErrors();
- testRationalMethods();
- testIntegerMethods();
- testStringOperators();
- testStringMethods();
- testListOperators();
- testListMethods();
- testMapOperators();
- testMapMethods();
- testLiterals();
- testDateMethods();
- }
-
- static assertEquals(a, b) {
- Expect.equals(b, a);
- }
-
- static assertListEquals(List a, List b) {
- Expect.equals(b.length, a.length);
- for (int i = 0; i < a.length; i++) {
- Expect.equals(b[i], a[i]);
- }
- }
-
- static assertListContains(List<Comparable> a, List<Comparable> b) {
- a.sort((x, y) => x.compareTo(y));
- b.sort((x, y) => x.compareTo(y));
- assertListEquals(a, b);
- }
-
- static assertTypeError(void f()) {
- Expect.throws(
- f,
- (exception) =>
- (exception is TypeError) ||
- (exception is NoSuchMethodError) ||
- (exception is ArgumentError));
- }
-
- static testBooleanOperators() {
- var x = true, y = false;
- assertEquals(x, true);
- assertEquals(y, false);
- assertEquals(x, !y);
- assertEquals(!x, y);
- }
-
- static testRationalOperators() {
- var x = 10, y = 20;
- assertEquals(x + y, 30);
- assertEquals(x - y, -10);
- assertEquals(x * y, 200);
- assertEquals(x / y, 0.5);
- assertEquals(x ~/ y, 0);
- assertEquals(x % y, 10);
- }
-
- static testIntegerOperators() {
- var x = 18, y = 17;
- assertEquals(x | y, 19);
- assertEquals(x & y, 16);
- assertEquals(x ^ y, 3);
- assertEquals(2 >> 1, 1);
- assertEquals(1 << 1, 2);
- }
-
- static testOperatorErrors() {
- var objs = [
- 1,
- '2',
- [3],
- null,
- true,
- new Map()
- ];
- for (var i = 0; i < objs.length; i++) {
- for (var j = i + 1; j < objs.length; j++) {
- testBinaryOperatorErrors(objs[i], objs[j]);
- // Allow "String * int".
- if (j > 2) testBinaryOperatorErrors(objs[j], objs[i]);
- }
- if (objs[i] != 1) {
- testUnaryOperatorErrors(objs[i]);
- }
- }
- }
-
- static testBinaryOperatorErrors(x, y) {
- assertTypeError(() {
- x - y;
- });
- assertTypeError(() {
- x * y;
- });
- assertTypeError(() {
- x / y;
- });
- assertTypeError(() {
- x | y;
- });
- assertTypeError(() {
- x ^ y;
- });
- assertTypeError(() {
- x & y;
- });
- assertTypeError(() {
- x << y;
- });
- assertTypeError(() {
- x >> y;
- });
- assertTypeError(() {
- x ~/ y;
- });
- assertTypeError(() {
- x % y;
- });
-
- testComparisonOperatorErrors(x, y);
- }
-
- static testComparisonOperatorErrors(x, y) {
- assertEquals(x == y, false);
- assertEquals(x != y, true);
- assertTypeError(() {
- x < y;
- });
- assertTypeError(() {
- x <= y;
- });
- assertTypeError(() {
- x > y;
- });
- assertTypeError(() {
- x >= y;
- });
- }
-
- static testUnaryOperatorErrors(x) {
- // TODO(jimhug): Add guard for 'is num' when 'is' is working
- assertTypeError(() {
- ~x;
- });
- assertTypeError(() {
- -x;
- });
- // TODO(jimhug): Add check for !x as an error when x is not a bool
- }
-
- static testRationalMethods() {
- var x = 10.6;
- assertEquals(x.abs(), 10.6);
- assertEquals((-x).abs(), 10.6);
- assertEquals(x.round(), 11);
- assertEquals(x.floor(), 10);
- assertEquals(x.ceil(), 11);
- }
-
- // TODO(jimhug): Determine correct behavior for mixing ints and floats.
- static testIntegerMethods() {
- var y = 9;
- assertEquals(y.isEven, false);
- assertEquals(y.isOdd, true);
- assertEquals(y.toRadixString(2), '1001');
- assertEquals(y.toRadixString(3), '100');
- assertEquals(y.toRadixString(16), '9');
- assertEquals((0).toRadixString(16), '0');
- try {
- y.toRadixString(0);
- Expect.fail("Illegal radix 0 accepted.");
- } catch (e) {}
- try {
- y.toRadixString(-1);
- Expect.fail("Illegal radix -1 accepted.");
- } catch (e) {}
- }
-
- static testStringOperators() {
- var s = "abcdef";
- assertEquals(s, "abcdef");
- assertEquals(s.codeUnitAt(0), 97);
- assertEquals(s[0], 'a');
- assertEquals(s.length, 6);
- assertTypeError(() {
- s[null];
- });
- assertTypeError(() {
- s['hello'];
- });
- assertTypeError(() {
- s[0] = 'x';
- });
- }
-
- // TODO(jimhug): Fill out full set of string methods.
- static testStringMethods() {
- var s = "abcdef";
- assertEquals(s.isEmpty, false);
- assertEquals(s.isNotEmpty, true);
- assertEquals(s.startsWith("abc"), true);
- assertEquals(s.endsWith("def"), true);
- assertEquals(s.startsWith("aa"), false);
- assertEquals(s.endsWith("ff"), false);
- assertEquals(s.contains('cd', 0), true);
- assertEquals(s.contains('cd', 2), true);
- assertEquals(s.contains('cd', 3), false);
- assertEquals(s.indexOf('cd', 2), 2);
- assertEquals(s.indexOf('cd', 3), -1);
-
- assertTypeError(() {
- s.startsWith(1);
- });
- assertTypeError(() {
- s.endsWith(1);
- });
- }
-
- static testListOperators() {
- var a = [1, 2, 3, 4];
- assertEquals(a[0], 1);
- assertTypeError(() {
- a['0'];
- });
- a[0] = 42;
- assertEquals(a[0], 42);
- assertTypeError(() {
- a['0'] = 99;
- });
- assertEquals(a.length, 4);
- }
-
- // TODO(jimhug): Fill out full set of list methods.
- static testListMethods() {
- var a = [1, 2, 3, 4];
- assertEquals(a.isEmpty, false);
- assertEquals(a.length, 4);
- var exception = null;
- a.clear();
- assertEquals(a.length, 0);
- }
-
- static testMapOperators() {
- var d = new Map();
- d['a'] = 1;
- d['b'] = 2;
- assertEquals(d['a'], 1);
- assertEquals(d['b'], 2);
- assertEquals(d['c'], null);
- }
-
- static testMapMethods() {
- var d = new Map();
- d['a'] = 1;
- d['b'] = 2;
- assertEquals(d.containsValue(2), true);
- assertEquals(d.containsValue(3), false);
- assertEquals(d.containsKey('a'), true);
- assertEquals(d.containsKey('c'), false);
- assertEquals(d.keys.length, 2);
- assertEquals(d.values.length, 2);
-
- assertEquals(d.remove('c'), null);
- assertEquals(d.remove('b'), 2);
- assertEquals(d.keys.single, 'a');
- assertEquals(d.values.single, 1);
-
- d['c'] = 3;
- d['f'] = 4;
- assertEquals(d.keys.length, 3);
- assertEquals(d.values.length, 3);
- assertListContains(d.keys.toList(), ['a', 'c', 'f']);
- assertListContains(d.values.toList(), [1, 3, 4]);
-
- var count = 0;
- d.forEach((key, value) {
- count++;
- assertEquals(value, d[key]);
- });
- assertEquals(count, 3);
-
- d = {'a': 1, 'b': 2};
- assertEquals(d.containsValue(2), true);
- assertEquals(d.containsValue(3), false);
- assertEquals(d.containsKey('a'), true);
- assertEquals(d.containsKey('c'), false);
- assertEquals(d.keys.length, 2);
- assertEquals(d.values.length, 2);
-
- d['g'] = null;
- assertEquals(d.containsKey('g'), true);
- assertEquals(d['g'], null);
- }
-
- static testDateMethods() {
- var msec = 115201000;
- var d = new DateTime.fromMillisecondsSinceEpoch(msec, isUtc: true);
- assertEquals(d.second, 1);
- assertEquals(d.year, 1970);
-
- d = new DateTime.now();
- assertEquals(d.year >= 1970, true);
- }
-
- static testLiterals() {
- true.toString();
- 1.0.toString();
- .5.toString();
- 1.toString();
- if (false) {
- // Depends on http://b/4198808.
- null.toString();
- }
- '${null}'.toString();
- '${true}'.toString();
- '${false}'.toString();
- ''.toString();
- ''.endsWith('');
- }
-}
-
-main() {
- CoreRuntimeTypesTest.testMain();
-}
« no previous file with comments | « tests/corelib/const_list_set_range_test.dart ('k') | tests/corelib/corelib.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698