summaryrefslogtreecommitdiff
path: root/test/files/jvm/bigints.scala
blob: f4ca2d17a38a9cfc805b255f63eea1b56bc1b18d (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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//############################################################################
// BigInt, BigDecimal
//############################################################################

//############################################################################

import testing.SUnit._

/** Test the Scala implementation of class <code>scala.BigDecimal</code>.
*
*  @author Stephane Micheloud
*/
object Test extends TestConsoleMain {
  def suite = new TestSuite(
    Test_BigInt,
    Test_BigDecimal
  )
}

object Test_BigInt extends TestCase("BigInt") with Assert {
  override def enableStackTrace = false
  override def runTest {
    import BigInt._

    val x: BigInt = 1
    val y = x + 1
    val z = 1 + y
    assertEquals("int_add_bigint", 1+y, y+1)
    assertEquals("int_sub_bigint", 1-y, -(y-1))
    assertEquals("int_mul_bigint", 2*x*y, y*x*2)
    assertTrue("z_<=_3", z <= 3)
    assertFalse("3_<_z", 3 < z)
  }
}

object Test_BigDecimal extends TestCase("BigDecimal") with Assert {
  override def enableStackTrace = false
  override def runTest {
    import scala.BigDecimal, BigDecimal._

    val xi: BigDecimal = 1
    val xd: BigDecimal = 1.0
    val xf: BigDecimal = BigDecimal(1.0f)
    val xs: BigDecimal = BigDecimal("1.0")
    val xbi: BigDecimal = BigDecimal(scala.BigInt(1))

    val x: BigDecimal = 1
    val y = x + 1
    val z = 1 + y
    assertTrue("z_<=_3", z <= 3)
    assertFalse("3_<_z", 3 < z)

    val a: BigDecimal= Math.MAX_LONG
    val b: BigDecimal = 1
    val c = a - b
    assertFalse("c_>_MAX_LONG", c > Math.MAX_LONG)
    assertTrue("c_<=_MAX_LONG", c <= Math.MAX_LONG)
  }
}