blob: 4cf2feda25975f115b3fe720e238ed7f6dd951d9 [file] [log] [blame]
// 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.
/// @assertion Float32x4 withZ(double z)
/// Returns a new Float32x4 copied from this with a new z value.
/// @description Checks that a new object is created and all its lanes except [z]
/// equal to corresponding lanes of [this]. Checks that [z] of new [Float32x4]
/// equals the [z] parameter of the method.
/// @note undocumented
/// @author msyabro
import "dart:typed_data";
import "../../../Utils/expect.dart";
check(x, y, z, w, newZ) {
var obj1 = new Float32x4(x, y, z, w);
var obj2 = obj1.withZ(newZ);
Expect.isFalse(obj1 == obj2);
Expect.approxEquals(w, obj2.w, (w / 1e7).abs());
Expect.approxEquals(x, obj2.x, (x / 1e7).abs());
Expect.approxEquals(y, obj2.y, (y / 1e7).abs());
Expect.approxEquals(newZ, obj2.z, (newZ / 1e7).abs());
main() {
check(0.0, 0.0, 0.0, 0.0, 0.0);
check(1e-1, 1e-1, 1e-1, 1e-1, 0.0);
check(0.12e-5, 1.2e12, 1e40, 4.332e-1, 1.0);