// Copyright (c) 2017, 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 double acos(num x)
 * Returns a value in the range 0..PI, or NaN if [x] is outside the range -1..1.
 * @description Checks returned values are in the range 0..PI, if an argument
 * is in the range -1..1.
 * @author ngl@unipro.ru
 */
import "dart:math" as Math;
import "../../Utils/expect.dart";

main() {
  var a;
  for (var d = -1.0; d <= 1.0; d += 0.5) {
    a = Math.acos(d);
    Expect.isTrue(a >= 0);
    Expect.isTrue(a <= Math.pi);
  }
}
