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

Unified Diff: test/codegen/lib/typed_data/typed_data_sublist_type_test.dart

Issue 1673863002: Infra for running lib tests (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Reformat Created 4 years, 10 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/lib/typed_data/typed_data_sublist_type_test.dart
diff --git a/test/codegen/lib/typed_data/typed_data_sublist_type_test.dart b/test/codegen/lib/typed_data/typed_data_sublist_type_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..2873693e1d981c216ba9f4ff25eb43e2b44ccde5
--- /dev/null
+++ b/test/codegen/lib/typed_data/typed_data_sublist_type_test.dart
@@ -0,0 +1,93 @@
+// Copyright (c) 2013, 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 'dart:typed_data';
+import 'package:expect/expect.dart';
+
+// Test that the sublist of a typed_data list is of the same type.
+
+var inscrutable;
+
+class Is<T> {
+ final name;
+ Is(this.name);
+ check(x) => x is T;
+ expect(x, part) {
+ Expect.isTrue(check(x), '($part: ${x.runtimeType}) is $name');
+ }
+ expectNot(x, part) {
+ Expect.isFalse(check(x), '($part: ${x.runtimeType}) is! $name');
+ }
+}
+
+void testSublistType(input, positive, all) {
+ var negative = all.where((check) => !positive.contains(check));
+
+ input = inscrutable(input);
+
+ for (var check in positive) check.expect(input, 'input');
+ for (var check in negative) check.expectNot(input, 'input');
+
+ var sub = inscrutable(input.sublist(1));
+
+ for (var check in positive) check.expect(sub, 'sublist');
+ for (var check in negative) check.expectNot(sub, 'sublist');
+
+ var sub2 = inscrutable(input.sublist(10));
+
+ Expect.equals(0, sub2.length);
+ for (var check in positive) check.expect(sub2, 'empty sublist');
+ for (var check in negative) check.expectNot(sub2, 'empty sublist');
+}
+
+
+void testTypes() {
+ var isFloat32list = new Is<Float32List>('Float32List');
+ var isFloat64list = new Is<Float64List>('Float64List');
+
+ var isInt8List = new Is<Int8List>('Int8List');
+ var isInt16List = new Is<Int16List>('Int16List');
+ var isInt32List = new Is<Int32List>('Int32List');
+
+ var isUint8List = new Is<Uint8List>('Uint8List');
+ var isUint16List = new Is<Uint16List>('Uint16List');
+ var isUint32List = new Is<Uint32List>('Uint32List');
+
+ var isUint8ClampedList = new Is<Uint8ClampedList>('Uint8ClampedList');
+
+ var isIntList = new Is<List<int>>('List<int>');
+ var isDoubleList = new Is<List<double>>('List<double>');
+ var isNumList = new Is<List<num>>('List<num>');
+
+ var allChecks = [isFloat32list, isFloat64list,
+ isInt8List, isInt16List, isInt32List,
+ isUint8List, isUint16List, isUint32List,
+ isUint8ClampedList];
+
+ testInt(list, check) {
+ testSublistType(list, [check, isIntList, isNumList], allChecks);
+ }
+
+ testDouble(list, check) {
+ testSublistType(list, [check, isDoubleList, isNumList], allChecks);
+ }
+
+ testDouble(new Float32List(10), isFloat32list);
+ testDouble(new Float64List(10), isFloat64list);
+
+ testInt(new Int8List(10), isInt8List);
+ testInt(new Int16List(10), isInt16List);
+ testInt(new Int32List(10), isInt32List);
+
+ testInt(new Uint8List(10), isUint8List);
+ testInt(new Uint16List(10), isUint16List);
+ testInt(new Uint32List(10), isUint32List);
+
+ testInt(new Uint8ClampedList(10), isUint8ClampedList);
+}
+
+main() {
+ inscrutable = (x) => x;
+ testTypes();
+}
« no previous file with comments | « test/codegen/lib/typed_data/typed_data_load_test.dart ('k') | test/codegen/lib/typed_data/typed_list_iterable_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698