blob: 07b524c017f1a796447bd629d5dc6a1925a46772 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
object Test {
def main(args: Array[String]): Unit = {
// SI-4981: avoid being limited by math context when not needed
val big = BigDecimal("32432875832753287583275382753288325325328532875325")
val f = big % BigDecimal(scala.math.Pi)
// SI-1812: use math context to limit decimal expansion
val a = BigDecimal(1) / BigDecimal(3)
val b = BigDecimal(1) / big
// SI-2199: implicit conversions from java.math.BigDecimal to BigDecimal
val c = BigDecimal(1) + (new java.math.BigDecimal(3))
// SI-2024: correctly use BigDecimal.valueOf
assert(BigDecimal(123) + 1.1 == BigDecimal("124.1"))
// SI-3206: BigDecimal cache errors
val d = BigDecimal(2, new java.math.MathContext(33))
val e = BigDecimal(2, new java.math.MathContext(34))
assert(d.mc != e.mc)
// SI-921
assert(BigDecimal(2) / BigDecimal(0.5) == BigDecimal(4))
// SI-2304: enforce equals/hashCode contract
assert(BigDecimal("2").hashCode == BigDecimal("2.00").hashCode)
// SI-4547: implicit conversion
assert(5 + BigDecimal(3) == BigDecimal(8))
// meaningless sanity check
List[BigDecimal](a, b, c, d, e, f) map (_.scale) foreach println
}
}
|