// Copyright (c) 2011, 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 abstract double ceilToDouble()
/// Returns the least integer value no smaller than this.
/// The result is a double.
/// @description Checks that if [:ceilToDouble():] is called on a value less than
/// zero but greater than -1.0,then the result is zero.
/// @author pagolubev

import "../../../Utils/expect.dart";

check(double d) {
  Expect.equals(0, d.ceilToDouble());
}

main() {
  check(-4.9406564584124654e-324); // min value
  check(-2.2250738585072014e-308); // min normal
  check(-0.1);
  check(-0.5);
  check(-0.6);
  check(-0.8);
  check(-0.95);
  check(-0.9999999999999999); // adjacent to -1.0
}
