@@ -29,75 +29,115 @@ public void testToDecimal01()
29
29
"19827342231.999888000" , decimal );
30
30
}
31
31
32
+
33
+
34
+ private void checkExtractNanos (long expectedSeconds , int expectedNanos , BigDecimal decimal )
35
+ {
36
+ long seconds = decimal .longValue ();
37
+ assertEquals ("The second part is not correct." , expectedSeconds , seconds );
38
+
39
+ int nanoseconds = DecimalUtils .extractNanosecondDecimal (decimal , seconds );
40
+ assertEquals ("The nanosecond part is not correct." , expectedNanos , nanoseconds );
41
+ }
42
+
32
43
@ Test
33
44
public void testExtractNanosecondDecimal01 ()
34
45
{
35
46
BigDecimal value = new BigDecimal ("0" );
36
-
37
- long seconds = value .longValue ();
38
- assertEquals ("The second part is not correct." , 0L , seconds );
39
-
40
- int nanoseconds = DecimalUtils .extractNanosecondDecimal (value , seconds );
41
- assertEquals ("The nanosecond part is not correct." , 0 , nanoseconds );
47
+ checkExtractNanos (0L , 0 , value );
42
48
}
43
49
44
50
@ Test
45
51
public void testExtractNanosecondDecimal02 ()
46
52
{
47
53
BigDecimal value = new BigDecimal ("15.000000072" );
48
-
49
- long seconds = value .longValue ();
50
- assertEquals ("The second part is not correct." , 15L , seconds );
51
-
52
- int nanoseconds = DecimalUtils .extractNanosecondDecimal (value , seconds );
53
- assertEquals ("The nanosecond part is not correct." , 72 , nanoseconds );
54
+ checkExtractNanos (15L , 72 , value );
54
55
}
55
56
56
57
@ Test
57
58
public void testExtractNanosecondDecimal03 ()
58
59
{
59
60
BigDecimal value = new BigDecimal ("15.72" );
60
-
61
- long seconds = value .longValue ();
62
- assertEquals ("The second part is not correct." , 15L , seconds );
63
-
64
- int nanoseconds = DecimalUtils .extractNanosecondDecimal (value , seconds );
65
- assertEquals ("The nanosecond part is not correct." , 720000000 , nanoseconds );
61
+ checkExtractNanos (15L , 720000000 , value );
66
62
}
67
63
68
64
@ Test
69
65
public void testExtractNanosecondDecimal04 ()
70
66
{
71
67
BigDecimal value = new BigDecimal ("19827342231.192837465" );
72
-
73
- long seconds = value .longValue ();
74
- assertEquals ("The second part is not correct." , 19827342231L , seconds );
75
-
76
- int nanoseconds = DecimalUtils .extractNanosecondDecimal (value , seconds );
77
- assertEquals ("The nanosecond part is not correct." , 192837465 , nanoseconds );
68
+ checkExtractNanos (19827342231L , 192837465 , value );
78
69
}
79
70
80
71
@ Test
81
72
public void testExtractNanosecondDecimal05 ()
82
73
{
83
74
BigDecimal value = new BigDecimal ("19827342231" );
84
-
85
- long seconds = value .longValue ();
86
- assertEquals ("The second part is not correct." , 19827342231L , seconds );
87
-
88
- int nanoseconds = DecimalUtils .extractNanosecondDecimal (value , seconds );
89
- assertEquals ("The nanosecond part is not correct." , 0 , nanoseconds );
75
+ checkExtractNanos (19827342231L , 0 , value );
90
76
}
91
77
92
78
@ Test
93
79
public void testExtractNanosecondDecimal06 ()
94
80
{
95
81
BigDecimal value = new BigDecimal ("19827342231.999999999" );
82
+ checkExtractNanos (19827342231L , 999999999 , value );
83
+ }
96
84
97
- long seconds = value .longValue ();
98
- assertEquals ("The second part is not correct." , 19827342231L , seconds );
99
85
100
- int nanoseconds = DecimalUtils .extractNanosecondDecimal (value , seconds );
101
- assertEquals ("The nanosecond part is not correct." , 999999999 , nanoseconds );
86
+ private void checkExtractSecondsAndNanos (long expectedSeconds , int expectedNanos , BigDecimal decimal )
87
+ {
88
+ DecimalUtils .extractSecondsAndNanos (decimal , (Long s , Integer ns ) -> {
89
+ assertEquals ("The second part is not correct." , expectedSeconds , s .longValue ());
90
+ assertEquals ("The nanosecond part is not correct." , expectedNanos , ns .intValue ());
91
+ return null ;
92
+ });
93
+ }
94
+
95
+ @ Test
96
+ public void testExtractSecondsAndNanos01 ()
97
+ {
98
+ BigDecimal value = new BigDecimal ("0" );
99
+ checkExtractSecondsAndNanos (0L , 0 , value );
100
+ }
101
+
102
+ @ Test
103
+ public void testExtractSecondsAndNanos02 ()
104
+ {
105
+ BigDecimal value = new BigDecimal ("15.000000072" );
106
+ checkExtractSecondsAndNanos (15L , 72 , value );
107
+ }
108
+
109
+ @ Test
110
+ public void testExtractSecondsAndNanos03 ()
111
+ {
112
+ BigDecimal value = new BigDecimal ("15.72" );
113
+ checkExtractSecondsAndNanos (15L , 720000000 , value );
114
+ }
115
+
116
+ @ Test
117
+ public void testExtractSecondsAndNanos04 ()
118
+ {
119
+ BigDecimal value = new BigDecimal ("19827342231.192837465" );
120
+ checkExtractSecondsAndNanos (19827342231L , 192837465 , value );
121
+ }
122
+
123
+ @ Test
124
+ public void testExtractSecondsAndNanos05 ()
125
+ {
126
+ BigDecimal value = new BigDecimal ("19827342231" );
127
+ checkExtractSecondsAndNanos (19827342231L , 0 , value );
128
+ }
129
+
130
+ @ Test
131
+ public void testExtractSecondsAndNanos06 ()
132
+ {
133
+ BigDecimal value = new BigDecimal ("19827342231.999999999" );
134
+ checkExtractSecondsAndNanos (19827342231L , 999999999 , value );
135
+ }
136
+
137
+ @ Test (timeout = 100 )
138
+ public void testExtractSecondsAndNanos07 ()
139
+ {
140
+ BigDecimal value = new BigDecimal ("1e10000000" );
141
+ checkExtractSecondsAndNanos (0L , 0 , value );
102
142
}
103
143
}
0 commit comments