  // Copyright (c) 2016, 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 num clamp(num lowerLimit, num upperLimit)
 * Returns this num clamped to be in the range lowerLimit-upperLimit.
 * The comparison is done using compareTo and therefore takes -0.0 into account.
 * This also implies that double.nan is treated as the maximal double value.
 * @description Checks that upperLimit should be => lowerLimit
 * @author sgrekhov@unipro.ru
 */
import "../../../Utils/expect.dart";

main() {
  Expect.throws(() {0.5.clamp(0.5, 0);});
  Expect.throws(() {0.5.clamp(0.0, -0.0);});
  Expect.throws(() {0.5.clamp(0.0, -0.5);});
}
