Add operator 'rem' as extension to BigInteger

#KT-14650 Fixed

 Note that after this change behaviour of '%' on BigInteger is changed,
now it works like a proper remainder
This commit is contained in:
Mikhail Zarechenskiy
2016-12-12 17:49:58 +03:00
parent e83568bcf3
commit 5a829809d9
7 changed files with 41 additions and 1 deletions
@@ -31,6 +31,13 @@ public inline operator fun BigInteger.times(other: BigInteger) : BigInteger = th
@kotlin.internal.InlineOnly
public inline operator fun BigInteger.div(other: BigInteger) : BigInteger = this.divide(other)
/**
* Enables the use of the `%` operator for [BigInteger] instances.
*/
@SinceKotlin("1.1")
@kotlin.internal.InlineOnly
public inline operator fun BigInteger.rem(other: BigInteger) : BigInteger = this.remainder(other)
/**
* Enables the use of the unary `-` operator for [BigInteger] instances.
*/
+2 -1
View File
@@ -17,7 +17,8 @@ class MathTest {
assertEquals(BigInteger("6"), a * b)
assertEquals(BigInteger("0"), a / b)
assertEquals(BigInteger("-2"), -a)
assertEquals(BigInteger("1"), -a % b)
assertEquals(BigInteger("-2"), -a % b)
assertEquals(BigInteger("1"), (-a).mod(b))
assertEquals(BigInteger("-2"), (-a).remainder(b))
}