forked from examplehub/Java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBigDecimalExampleTest.java
More file actions
53 lines (44 loc) · 1.64 KB
/
BigDecimalExampleTest.java
File metadata and controls
53 lines (44 loc) · 1.64 KB
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
package com.examplehub.basics.number;
import static org.junit.jupiter.api.Assertions.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import org.junit.jupiter.api.Test;
class BigDecimalExampleTest {
@Test
void testArithmetic() {
BigDecimal bd = new BigDecimal("123456.789");
assertEquals("246913.578", bd.add(bd).toString());
assertEquals("0.000", bd.subtract(bd).toString());
assertEquals("15241578750.190521", bd.multiply(bd).toString());
assertEquals("1.000", bd.divide(bd, RoundingMode.HALF_UP).toString());
assertEquals("24691.358", bd.divide(new BigDecimal("5.0"), RoundingMode.HALF_UP).toString());
}
@Test
void testScale() {
assertEquals(2, new BigDecimal("123.45").scale());
assertEquals(4, new BigDecimal("123.4567").scale());
assertEquals(0, new BigDecimal("123").scale());
}
@Test
void testStripTrailingZeros() {
assertEquals(4, new BigDecimal("123.4500").scale());
assertEquals(2, new BigDecimal("123.4500").stripTrailingZeros().scale());
assertEquals(0, new BigDecimal("1234500").scale());
assertEquals(-2, new BigDecimal("1234500").stripTrailingZeros().scale());
}
@Test
void testSetScale() {
assertEquals(
"123.4568", new BigDecimal("123.45678910").setScale(4, RoundingMode.UP).toString());
assertEquals(
"123.45", new BigDecimal("123.45678910").setScale(2, RoundingMode.DOWN).toString());
}
@Test
void testEqual() {
BigDecimal d1 = new BigDecimal("123.456");
BigDecimal d2 = new BigDecimal("123.45600");
assertNotEquals(d1, d2);
assertEquals(d1, d2.stripTrailingZeros());
assertTrue(d1.compareTo(d2) == 0);
}
}