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

Unified Diff: test/codegen/lib/typed_data/float64x2_functional_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/float64x2_functional_test.dart
diff --git a/test/codegen/lib/typed_data/float64x2_functional_test.dart b/test/codegen/lib/typed_data/float64x2_functional_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..7ae6cee99885664cdfd49fda9f60b1a278b2888e
--- /dev/null
+++ b/test/codegen/lib/typed_data/float64x2_functional_test.dart
@@ -0,0 +1,294 @@
+// 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.
+// VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-threshold=10
+
+library float64x2_functional_test;
+
+import 'dart:typed_data';
+import "package:expect/expect.dart";
+
+testConstructor() {
+ var a = new Float64x2(1.0, 2.0);
+ Expect.equals(1.0, a.x);
+ Expect.equals(2.0, a.y);
+ var b = new Float64x2.splat(1.0);
+ Expect.equals(1.0, b.x);
+ Expect.equals(1.0, b.y);
+ var c = new Float64x2.zero();
+ Expect.equals(0.0, c.x);
+ Expect.equals(0.0, c.y);
+}
+
+testCastConstructor() {
+ var a = new Float32x4(9.0, 8.0, 7.0, 6.0);
+ var b = new Float64x2.fromFloat32x4(a);
+ Expect.equals(9.0, b.x);
+ Expect.equals(8.0, b.y);
+ var c = new Float32x4.fromFloat64x2(b);
+ Expect.equals(9.0, c.x);
+ Expect.equals(8.0, c.y);
+ Expect.equals(0.0, c.z);
+ Expect.equals(0.0, c.w);
+}
+
+testLaneSetter() {
+ var a = new Float64x2.zero();
+ Expect.equals(0.0, a.x);
+ Expect.equals(0.0, a.y);
+ var b = a.withX(99.0);
+ Expect.equals(0.0, a.x);
+ Expect.equals(0.0, a.y);
+ Expect.equals(99.0, b.x);
+ Expect.equals(0.0, b.y);
+ var c = a.withY(88.0);
+ Expect.equals(0.0, a.x);
+ Expect.equals(0.0, a.y);
+ Expect.equals(0.0, c.x);
+ Expect.equals(88.0, c.y);
+ var d = c.withX(11.0);
+ Expect.equals(0.0, c.x);
+ Expect.equals(88.0, c.y);
+ Expect.equals(11.0, d.x);
+ Expect.equals(88.0, d.y);
+}
+
+testNegate() {
+ var m = new Float64x2(1.0, -2.0);
+ var o = -m;
+ Expect.equals(-1.0, o.x);
+ Expect.equals(2.0, o.y);
+}
+
+testAdd() {
+ var m = new Float64x2(1.0, -2.0);
+ var n = new Float64x2(1.0, 2.0);
+ var o = m + n;
+ Expect.equals(2.0, o.x);
+ Expect.equals(0.0, o.y);
+}
+
+testSub() {
+ var m = new Float64x2(1.5, -2.0);
+ var n = new Float64x2(1.0, 2.0);
+ var o = m - n;
+ Expect.equals(0.5, o.x);
+ Expect.equals(-4.0, o.y);
+}
+
+testMul() {
+ var m = new Float64x2(1.0, -2.0);
+ var n = new Float64x2(2.0, 2.0);
+ var o = m * n;
+ Expect.equals(2.0, o.x);
+ Expect.equals(-4.0, o.y);
+}
+
+testDiv() {
+ var m = new Float64x2(1.0, -2.0);
+ var n = new Float64x2(2.0, 2.0);
+ var o = m / n;
+ Expect.equals(0.5, o.x);
+ Expect.equals(-1.0, o.y);
+}
+
+testScale() {
+ var m = new Float64x2(1.0, 0.5);
+ var n = m.scale(2.0);
+ Expect.equals(2.0, n.x);
+ Expect.equals(1.0, n.y);
+}
+
+testAbs() {
+ var m = new Float64x2(1.0, -0.5).abs();
+ var n = new Float64x2(-2.0, 1.0).abs();
+ Expect.equals(1.0, m.x);
+ Expect.equals(0.5, m.y);
+ Expect.equals(2.0, n.x);
+ Expect.equals(1.0, n.y);
+}
+
+testClamp() {
+ var m = new Float64x2(1.0, -2.0);
+ var lo = new Float64x2(0.0, 0.5);
+ var hi = new Float64x2(2.0, 2.0);
+ m = m.clamp(lo, hi);
+ Expect.equals(1.0, m.x);
+ Expect.equals(0.5, m.y);
+}
+
+testSignMask() {
+ var m = new Float64x2(-1.0, -0.0);
+ Expect.equals(3, m.signMask);
+ m = new Float64x2(0.0, 0.0);
+ Expect.equals(0, m.signMask);
+ m = new Float64x2(-1.0, 0.0);
+ Expect.equals(1, m.signMask);
+ m = new Float64x2(1.0, -0.0);
+ Expect.equals(2, m.signMask);
+}
+
+testMin() {
+ var m = new Float64x2(0.0, -99.0);
+ var n = new Float64x2(-1.0, -1.0);
+ var o = m.min(n);
+ Expect.equals(-1.0, o.x);
+ Expect.equals(-99.0, o.y);
+}
+
+testMax() {
+ var m = new Float64x2(0.5, -99.0);
+ var n = new Float64x2(-1.0, -1.0);
+ var o = m.max(n);
+ Expect.equals(0.5, o.x);
+ Expect.equals(-1.0, o.y);
+}
+
+testSqrt() {
+ var m = new Float64x2(9.0, 16.0);
+ var o = m.sqrt();
+ Expect.equals(3.0, o.x);
+ Expect.equals(4.0, o.y);
+}
+
+testTypedList() {
+ var m = new Float64x2List(2);
+ var n = m[0];
+ Expect.equals(0.0, n.x);
+ Expect.equals(0.0, n.y);
+ n = n.withX(1.0);
+ n = n.withY(2.0);
+ m[0] = n;
+ n = n.withX(99.0);
+ Expect.equals(99.0, n.x);
+ Expect.equals(1.0, m[0].x);
+ Expect.equals(2.0, m[0].y);
+}
+
+testTypedListFromList() {
+ var l = [new Float64x2(1.0, 2.0), new Float64x2(3.0, 4.0)];
+ var m = new Float64x2List.fromList(l);
+ Expect.equals(2, m.length);
+ Expect.equals(16, m.elementSizeInBytes);
+ Expect.equals(32, m.lengthInBytes);
+ Expect.equals(1.0, m[0].x);
+ Expect.equals(2.0, m[0].y);
+ Expect.equals(3.0, m[1].x);
+ Expect.equals(4.0, m[1].y);
+}
+
+testTypedListFromTypedList() {
+ var l = new Float64x2List(2);
+ l[0] = new Float64x2(1.0, 2.0);
+ l[1] = new Float64x2(3.0, 4.0);
+ Expect.equals(2, l.length);
+ Expect.equals(16, l.elementSizeInBytes);
+ Expect.equals(32, l.lengthInBytes);
+ Expect.equals(1.0, l[0].x);
+ Expect.equals(2.0, l[0].y);
+ Expect.equals(3.0, l[1].x);
+ Expect.equals(4.0, l[1].y);
+ var m = new Float64x2List.fromList(l);
+ Expect.equals(2, m.length);
+ Expect.equals(16, m.elementSizeInBytes);
+ Expect.equals(32, m.lengthInBytes);
+ Expect.equals(2, m.length);
+ Expect.equals(1.0, m[0].x);
+ Expect.equals(2.0, m[0].y);
+ Expect.equals(3.0, m[1].x);
+ Expect.equals(4.0, m[1].y);
+}
+
+testTypedListView() {
+ var l = [1.0, 2.0, 3.0, 4.0];
+ Expect.equals(4, l.length);
+ l = new Float64List.fromList(l);
+ Expect.equals(4, l.length);
+ var m = new Float64x2List.view(l.buffer);
+ Expect.equals(2, m.length);
+ Expect.equals(1.0, m[0].x);
+ Expect.equals(2.0, m[0].y);
+ Expect.equals(3.0, m[1].x);
+ Expect.equals(4.0, m[1].y);
+}
+
+testTypedListFullView() {
+ var l = [new Float64x2(1.0, 2.0), new Float64x2(3.0, 4.0)];
+ var m = new Float64x2List.fromList(l);
+ Expect.equals(2, m.length);
+ Expect.equals(1.0, m[0].x);
+ Expect.equals(2.0, m[0].y);
+ Expect.equals(3.0, m[1].x);
+ Expect.equals(4.0, m[1].y);
+ // Create a view which spans the entire buffer.
+ var n = new Float64x2List.view(m.buffer);
+ Expect.equals(2, n.length);
+ Expect.equals(1.0, n[0].x);
+ Expect.equals(2.0, n[0].y);
+ Expect.equals(3.0, n[1].x);
+ Expect.equals(4.0, n[1].y);
+ // Create a view which spans the entire buffer by specifying length.
+ var o = new Float64x2List.view(m.buffer, 0, 2);
+ Expect.equals(2, o.length);
+ Expect.equals(1.0, o[0].x);
+ Expect.equals(2.0, o[0].y);
+ Expect.equals(3.0, o[1].x);
+ Expect.equals(4.0, o[1].y);
+}
+
+testSubList() {
+ var l = [new Float64x2(1.0, 2.0), new Float64x2(3.0, 4.0)];
+ var m = new Float64x2List.fromList(l);
+ var n = m.sublist(0, 1);
+ Expect.equals(1, n.length);
+ Expect.equals(1.0, n[0].x);
+ Expect.equals(2.0, n[0].y);
+ var o = m.sublist(1, 2);
+ Expect.equals(1, o.length);
+ Expect.equals(3.0, o[0].x);
+ Expect.equals(4.0, o[0].y);
+}
+
+testSubView() {
+ var l = [new Float64x2(1.0, 2.0), new Float64x2(3.0, 4.0)];
+ var m = new Float64x2List.fromList(l);
+ var n = new Float64x2List.view(m.buffer, 16, 1);
+ Expect.equals(1, n.length);
+ Expect.equals(16, n.offsetInBytes);
+ Expect.equals(16, n.lengthInBytes);
+ Expect.equals(3.0, n[0].x);
+ Expect.equals(4.0, n[0].y);
+ var o = new Float64x2List.view(m.buffer, 0, 1);
+ Expect.equals(1, o.length);
+ Expect.equals(0, o.offsetInBytes);
+ Expect.equals(16, o.lengthInBytes);
+ Expect.equals(1.0, o[0].x);
+ Expect.equals(2.0, o[0].y);
+}
+
+main() {
+ for (int i = 0; i < 20; i++) {
+ testConstructor();
+ testCastConstructor();
+ testLaneSetter();
+ testNegate();
+ testAdd();
+ testSub();
+ testMul();
+ testDiv();
+ testScale();
+ testAbs();
+ testClamp();
+ testSignMask();
+ testMin();
+ testMax();
+ testSqrt();
+ testTypedList();
+ testTypedListFromList();
+ testTypedListFromTypedList();
+ testTypedListView();
+ testTypedListFullView();
+ testSubList();
+ testSubView();
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698