blob: 330fb2e3ac7268fa5c43b244b3667e99800dc31c [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 remainder(num other)
* Returns remainder left by division.
* @description Checks that this method returns correct value for integer arguments.
* @author vasya
* @reviewer msyabro
* @reviewer rodionov
* @needsreview Undocumented
* seems to work the same way as JS's operator%: the sign of remainder is the same as dividend's
*/
import "../../../Utils/expect.dart";
main() {
Expect.equals(0, 1.remainder(1));
Expect.equals(0, 1.remainder(1));
Expect.equals(1, 1.remainder(2));
Expect.equals(1, 3.remainder(2));
Expect.equals(1, 3.remainder(-2));
Expect.equals(-2, (-17).remainder(3));
Expect.equals(-2, (-17).remainder(-3));
Expect.equals(2147483647, 2147483647.remainder(2147483648));
Expect.equals(0, 2147483647.remainder(2147483647));
Expect.equals(1, 2147483647.remainder(2147483646));
Expect.equals(9223372036854775807, 9223372036854775807.remainder(9223372036854775808));
Expect.equals(0, 9223372036854775807.remainder(9223372036854775807));
Expect.equals(1, 9223372036854775807.remainder(9223372036854775806));
Expect.equals(-18446744073709551617, (-18446744073709551617).remainder(18446744073709551618));
Expect.equals(0, (-18446744073709551617).remainder(18446744073709551617));
Expect.equals(-1, (-18446744073709551617).remainder(18446744073709551616));
//2^100 % 3^50
Expect.equals(691521709937297972926156, 1267650600228229401496703205376.remainder(717897987691852588770249));
}