| // 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=--optimization-counter-threshold=10 --no-background-compilation |
| |
| // Library tag to be able to run in html test framework. |
| library float32x4_shuffle_test; |
| |
| import 'dart:typed_data'; |
| import "package:expect/expect.dart"; |
| |
| void testShuffle00() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.xxxx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xxxy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xxxz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xxxw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xxyx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xxyy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xxyz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xxyw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xxzx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xxzy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xxzz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xxzw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xxwx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xxwy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xxwz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xxww); |
| Expect.equals(1.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle01() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.xyxx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xyxy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xyxz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xyxw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xyyx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xyyy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xyyz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xyyw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xyzx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xyzy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xyzz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xyzw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xywx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xywy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xywz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xyww); |
| Expect.equals(1.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle02() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.xzxx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xzxy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xzxz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xzxw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xzyx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xzyy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xzyz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xzyw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xzzx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xzzy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xzzz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xzzw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xzwx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xzwy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xzwz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xzww); |
| Expect.equals(1.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle03() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.xwxx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xwxy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xwxz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xwxw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xwyx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xwyy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xwyz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xwyw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xwzx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xwzy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xwzz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xwzw); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.xwwx); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.xwwy); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.xwwz); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.xwww); |
| Expect.equals(1.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle10() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.yxxx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yxxy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yxxz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yxxw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.yxyx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yxyy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yxyz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yxyw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.yxzx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yxzy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yxzz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yxzw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.yxwx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yxwy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yxwz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yxww); |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle11() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.yyxx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yyxy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yyxz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yyxw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.yyyx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yyyy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yyyz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yyyw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.yyzx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yyzy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yyzz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yyzw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.yywx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yywy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yywz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yyww); |
| Expect.equals(2.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle12() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.yzxx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yzxy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yzxz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yzxw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.yzyx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yzyy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yzyz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yzyw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.yzzx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yzzy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yzzz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yzzw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.yzwx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.yzwy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.yzwz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.yzww); |
| Expect.equals(2.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle13() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.ywxx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.ywxy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.ywxz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.ywxw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.ywyx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.ywyy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.ywyz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.ywyw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.ywzx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.ywzy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.ywzz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.ywzw); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.ywwx); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.ywwy); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.ywwz); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.ywww); |
| Expect.equals(2.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle20() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.zxxx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zxxy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zxxz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zxxw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zxyx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zxyy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zxyz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zxyw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zxzx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zxzy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zxzz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zxzw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zxwx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zxwy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zxwz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zxww); |
| Expect.equals(3.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle21() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.zyxx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zyxy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zyxz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zyxw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zyyx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zyyy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zyyz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zyyw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zyzx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zyzy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zyzz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zyzw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zywx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zywy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zywz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zyww); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle22() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.zzxx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zzxy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zzxz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zzxw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zzyx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zzyy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zzyz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zzyw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zzzx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zzzy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zzzz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zzzw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zzwx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zzwy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zzwz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zzww); |
| Expect.equals(3.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle23() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.zwxx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zwxy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zwxz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zwxw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zwyx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zwyy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zwyz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zwyw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zwzx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zwzy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zwzz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zwzw); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.zwwx); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.zwwy); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.zwwz); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.zwww); |
| Expect.equals(3.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle30() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.wxxx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wxxy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wxxz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wxxw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wxyx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wxyy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wxyz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wxyw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wxzx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wxzy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wxzz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wxzw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wxwx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wxwy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wxwz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wxww); |
| Expect.equals(4.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle31() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.wyxx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wyxy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wyxz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wyxw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wyyx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wyyy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wyyz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wyyw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wyzx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wyzy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wyzz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wyzw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wywx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wywy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wywz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wyww); |
| Expect.equals(4.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle32() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.wzxx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wzxy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wzxz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wzxw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wzyx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wzyy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wzyz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wzyw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wzzx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wzzy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wzzz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wzzw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wzwx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wzwy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wzwz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wzww); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffle33() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.wwxx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wwxy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wwxz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wwxw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wwyx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wwyy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wwyz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wwyw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wwzx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wwzy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wwzz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wwzw); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(3.0, c.z); |
| Expect.equals(4.0, c.w); |
| c = m.shuffle(Float32x4.wwwx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(1.0, c.w); |
| c = m.shuffle(Float32x4.wwwy); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(2.0, c.w); |
| c = m.shuffle(Float32x4.wwwz); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(3.0, c.w); |
| c = m.shuffle(Float32x4.wwww); |
| Expect.equals(4.0, c.x); |
| Expect.equals(4.0, c.y); |
| Expect.equals(4.0, c.z); |
| Expect.equals(4.0, c.w); |
| } |
| |
| void testShuffleNonConstant(mask) { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(mask); |
| if (mask == 1) { |
| Expect.equals(2.0, c.x); |
| Expect.equals(1.0, c.y); |
| Expect.equals(1.0, c.z); |
| Expect.equals(1.0, c.w); |
| } else { |
| Expect.equals(Float32x4.yyyy + 1, mask); |
| Expect.equals(3.0, c.x); |
| Expect.equals(2.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(2.0, c.w); |
| } |
| } |
| |
| void testInvalidShuffle(mask) { |
| // Not a valid mask. |
| Expect.isFalse(mask <= 255 && mask >= 0); |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| Expect.throws(() { |
| c = m.shuffle(mask); |
| }); |
| } |
| |
| void testShuffle() { |
| var m = new Float32x4(1.0, 2.0, 3.0, 4.0); |
| var c; |
| c = m.shuffle(Float32x4.wzyx); |
| Expect.equals(4.0, c.x); |
| Expect.equals(3.0, c.y); |
| Expect.equals(2.0, c.z); |
| Expect.equals(1.0, c.w); |
| } |
| |
| main() { |
| var xxxx = Float32x4.xxxx + 1; |
| var yyyy = Float32x4.yyyy + 1; |
| for (int i = 0; i < 20; i++) { |
| testShuffle(); |
| testShuffle00(); |
| testShuffle01(); |
| testShuffle02(); |
| testShuffle03(); |
| testShuffle10(); |
| testShuffle11(); |
| testShuffle12(); |
| testShuffle13(); |
| testShuffle20(); |
| testShuffle21(); |
| testShuffle22(); |
| testShuffle23(); |
| testShuffle30(); |
| testShuffle31(); |
| testShuffle32(); |
| testShuffle33(); |
| testShuffleNonConstant(xxxx); |
| testShuffleNonConstant(yyyy); |
| testInvalidShuffle(256); |
| testInvalidShuffle(-1); |
| } |
| } |