mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 01:45:06 +00:00
e7d4c48a80
Change-Id: I9a51ae6a1f8f4d018da289b6f29ab18053304c19 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132341 Commit-Queue: Erik Ernst <eernst@google.com> Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
1437 lines
38 KiB
Dart
1437 lines
38 KiB
Dart
// 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);
|
|
}
|
|
}
|