1616
1717package za .co .absa .cobrix .cobol .parser .encoding
1818
19- import org .scalatest .Assertion
2019import org .scalatest .wordspec .AnyWordSpec
20+ import za .co .absa .cobrix .cobol .testutils .ComparisonUtils ._
2121
2222class BCDNumberEncodersSuite extends AnyWordSpec {
2323 " encodeBCDNumber" should {
@@ -26,105 +26,105 @@ class BCDNumberEncodersSuite extends AnyWordSpec {
2626 val expected = Array [Byte ](0x12 , 0x34 , 0x5C )
2727 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (12345 ), 5 , 0 , 0 , signed = true , mandatorySignNibble = true )
2828
29- checkExpected (actual, expected)
29+ assertArraysEqual (actual, expected)
3030 }
3131
3232 " encode a number with an even precision" in {
3333 val expected = Array [Byte ](0x01 , 0x23 , 0x4C )
3434 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (1234 ), 4 , 0 , 0 , signed = true , mandatorySignNibble = true )
3535
36- checkExpected (actual, expected)
36+ assertArraysEqual (actual, expected)
3737 }
3838
3939 " encode a small number" in {
4040 val expected = Array [Byte ](0x00 , 0x00 , 0x5C )
4141 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (5 ), 5 , 0 , 0 , signed = true , mandatorySignNibble = true )
4242
43- checkExpected (actual, expected)
43+ assertArraysEqual (actual, expected)
4444 }
4545
4646 " encode an unsigned number" in {
4747 val expected = Array [Byte ](0x12 , 0x34 , 0x5F )
4848 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (12345 ), 5 , 0 , 0 , signed = false , mandatorySignNibble = true )
4949
50- checkExpected (actual, expected)
50+ assertArraysEqual (actual, expected)
5151 }
5252
5353 " encode a negative number" in {
5454 val expected = Array [Byte ](0x12 , 0x34 , 0x5D )
5555 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (- 12345 ), 5 , 0 , 0 , signed = true , mandatorySignNibble = true )
5656
57- checkExpected (actual, expected)
57+ assertArraysEqual (actual, expected)
5858 }
5959
6060 " encode a small negative number" in {
6161 val expected = Array [Byte ](0x00 , 0x00 , 0x7D )
6262 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (- 7 ), 4 , 0 , 0 , signed = true , mandatorySignNibble = true )
6363
64- checkExpected (actual, expected)
64+ assertArraysEqual (actual, expected)
6565 }
6666
6767 " encode a number without sign nibble" in {
6868 val expected = Array [Byte ](0x01 , 0x23 , 0x45 )
6969 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (12345 ), 5 , 0 , 0 , signed = false , mandatorySignNibble = false )
7070
71- checkExpected (actual, expected)
71+ assertArraysEqual (actual, expected)
7272 }
7373
7474 " encode a number without sign nibble with an even precision" in {
7575 val expected = Array [Byte ](0x12 , 0x34 )
7676 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (1234 ), 4 , 0 , 0 , signed = true , mandatorySignNibble = false )
7777
78- checkExpected (actual, expected)
78+ assertArraysEqual (actual, expected)
7979 }
8080
8181 " encode a too big number" in {
8282 val expected = Array [Byte ](0x00 , 0x00 , 0x00 )
8383 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (123456 ), 5 , 0 , 0 , signed = false , mandatorySignNibble = false )
8484
85- checkExpected (actual, expected)
85+ assertArraysEqual (actual, expected)
8686 }
8787
8888 " encode a too big negative number" in {
8989 val expected = Array [Byte ](0x00 , 0x00 , 0x00 )
9090 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (- 123456 ), 5 , 0 , 0 , signed = true , mandatorySignNibble = true )
9191
92- checkExpected (actual, expected)
92+ assertArraysEqual (actual, expected)
9393 }
9494
9595 " encode a number with nbegative scale" in {
9696 val expected = Array [Byte ](0x00 , 0x00 , 0x00 )
9797 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (12345 ), 5 , - 1 , 0 , signed = false , mandatorySignNibble = false )
9898
99- checkExpected (actual, expected)
99+ assertArraysEqual (actual, expected)
100100 }
101101
102102 " attempt to encode a negative number without sign nibble" in {
103103 val expected = Array [Byte ](0x00 , 0x00 , 0x00 )
104104 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (- 12345 ), 5 , 0 , 0 , signed = false , mandatorySignNibble = false )
105105
106- checkExpected (actual, expected)
106+ assertArraysEqual (actual, expected)
107107 }
108108
109109 " attempt to encode a signed number without a sign nibble" in {
110110 val expected = Array [Byte ](0x00 , 0x00 , 0x00 )
111111 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (- 12345 ), 5 , 0 , 0 , signed = true , mandatorySignNibble = false )
112112
113- checkExpected (actual, expected)
113+ assertArraysEqual (actual, expected)
114114 }
115115
116116 " attempt to encode a number with an incorrect precision" in {
117117 val expected = Array [Byte ](0x00 , 0x00 )
118118 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (12345 ), 4 , 0 , 0 , signed = false , mandatorySignNibble = false )
119119
120- checkExpected (actual, expected)
120+ assertArraysEqual (actual, expected)
121121 }
122122
123123 " attempt to encode a number with an incorrect precision with sign nibble" in {
124124 val expected = Array [Byte ](0x00 , 0x00 , 0x00 )
125125 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (12345 ), 4 , 0 , 0 , signed = true , mandatorySignNibble = true )
126126
127- checkExpected (actual, expected)
127+ assertArraysEqual (actual, expected)
128128 }
129129
130130 " attempt to encode a number with zero prexision" in {
@@ -137,90 +137,78 @@ class BCDNumberEncodersSuite extends AnyWordSpec {
137137 val expected = Array [Byte ](0x12 , 0x34 , 0x5C )
138138 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (123.45 ), 5 , 2 , 0 , signed = true , mandatorySignNibble = true )
139139
140- checkExpected (actual, expected)
140+ assertArraysEqual (actual, expected)
141141 }
142142
143143 " encode a small number" in {
144144 val expected = Array [Byte ](0x00 , 0x00 , 0x5C )
145145 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (0.05 ), 5 , 2 , 0 , signed = true , mandatorySignNibble = true )
146146
147- checkExpected (actual, expected)
147+ assertArraysEqual (actual, expected)
148148 }
149149
150150 " encode an unsigned number" in {
151151 val expected = Array [Byte ](0x12 , 0x34 , 0x5F )
152152 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (1234.5 ), 5 , 1 , 0 , signed = false , mandatorySignNibble = true )
153153
154- checkExpected (actual, expected)
154+ assertArraysEqual (actual, expected)
155155 }
156156
157157 " encode a negative number" in {
158158 val expected = Array [Byte ](0x12 , 0x34 , 0x5D )
159159 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (- 12.345 ), 5 , 3 , 0 , signed = true , mandatorySignNibble = true )
160160
161- checkExpected (actual, expected)
161+ assertArraysEqual (actual, expected)
162162 }
163163
164164 " encode a small negative number" in {
165165 val expected = Array [Byte ](0x00 , 0x00 , 0x7D )
166166 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (- 0.00007 ), 4 , 5 , 0 , signed = true , mandatorySignNibble = true )
167167
168- checkExpected (actual, expected)
168+ assertArraysEqual (actual, expected)
169169 }
170170
171171 " encode a number without sign nibble" in {
172172 val expected = Array [Byte ](0x01 , 0x23 , 0x45 )
173173 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (123.45 ), 5 , 2 , 0 , signed = false , mandatorySignNibble = false )
174174
175- checkExpected (actual, expected)
175+ assertArraysEqual (actual, expected)
176176 }
177177
178178 " encode a too precise number" in {
179179 val expected = Array [Byte ](0x01 , 0x23 , 0x46 )
180180 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (123.456 ), 5 , 2 , 0 , signed = false , mandatorySignNibble = false )
181181
182- checkExpected (actual, expected)
182+ assertArraysEqual (actual, expected)
183183 }
184184
185185 " encode a too big number" in {
186186 val expected = Array [Byte ](0x00 , 0x00 , 0x00 )
187187 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (1234.56 ), 5 , 2 , 0 , signed = false , mandatorySignNibble = false )
188188
189- checkExpected (actual, expected)
189+ assertArraysEqual (actual, expected)
190190 }
191191
192192 " encode a too big negative number" in {
193193 val expected = Array [Byte ](0x00 , 0x00 , 0x00 )
194194 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (- 1234.56 ), 5 , 2 , 0 , signed = true , mandatorySignNibble = true )
195195
196- checkExpected (actual, expected)
196+ assertArraysEqual (actual, expected)
197197 }
198198
199199 " encode a number with positive scale factor" in {
200200 val expected = Array [Byte ](0x00 , 0x12 , 0x3F )
201201 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (12300 ), 5 , 0 , 2 , signed = false , mandatorySignNibble = true )
202202
203- checkExpected (actual, expected)
203+ assertArraysEqual (actual, expected)
204204 }
205205
206206 " encode a number with negative scale factor" in {
207207 val expected = Array [Byte ](0x00 , 0x12 , 0x3F )
208208 val actual = BCDNumberEncoders .encodeBCDNumber(new java.math.BigDecimal (1.23 ), 5 , 0 , - 2 , signed = false , mandatorySignNibble = true )
209209
210- checkExpected (actual, expected)
210+ assertArraysEqual (actual, expected)
211211 }
212212 }
213213 }
214-
215- def checkExpected (actual : Array [Byte ], expected : Array [Byte ]): Assertion = {
216- if (! actual.sameElements(expected)) {
217- val actualHex = actual.map(b => f " $b%02X " ).mkString(" " )
218- val expectedHex = expected.map(b => f " $b%02X " ).mkString(" " )
219- fail(s " Actual: $actualHex\n Expected: $expectedHex" )
220- } else {
221- succeed
222- }
223- }
224-
225-
226214}
0 commit comments