blob: 0f8e81cacf771e3ea7046a2108970bf264039696 [file] [log] [blame]
/*
* 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 num operator %(num other)
* The % operator yields the remainder of its operands from an implied division;
* the left operand is the dividend and the right operand is the divisor.
* @description Checks that this operator returns correct value for integer
* arguments (including 0).
* @author vasya
* @reviewer msyabro
* @reviewer rodionov
* @needsreview modulo operatio is not specified (issue 493).
*/
import "../../../Utils/expect.dart";
main() {
Expect.equals(0, 1 % 1);
Expect.equals(0, 0 % 1);
Expect.equals(1, 1 % 2);
Expect.equals(2, 17 % 3);
Expect.equals(2, 17 % -3);
Expect.equals(1, (-17) % 3);
Expect.equals(1, (-17) % -3);
Expect.equals(2147483647, 2147483647 % 2147483648);
Expect.equals(0, 2147483647 % 2147483647);
Expect.equals(1, 2147483647 % 2147483646);
Expect.equals(18446744073709551616,
18446744073709551616 % 18446744073709551617);
Expect.equals(0, 18446744073709551616 % 18446744073709551616);
Expect.equals(1, 18446744073709551616 % 18446744073709551615);
Expect.equals(0, 0 % 18446744073709551616);
Expect.equals(0, 0 % -18446744073709551616);
// 2^100 % 3^50
Expect.equals(691521709937297972926156,
1267650600228229401496703205376 % 717897987691852588770249);
}