// 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 int operator ~/(num other)
 * Truncating division operator.
 *
 * If either operand is a double then the result of the truncating division
 * a ~/ b is equivalent to (a / b).truncate().toInt().
 * If both operands are ints then a ~/ b performs the truncating integer
 * division.
 * @description Tries to pass zero as argument.
 * @author vasya
 */
import "../../../Utils/expect.dart";

main() {
  check(1);
  check(-1);
  check(0);
  check(0x1000000000000000);
}

void check(int x) {
  Expect.throws(() {x ~/ 0;}, (e) => e is IntegerDivisionByZeroException);
}
