From 8e760c0d16791dd072200f575ee5bf29535b64d1 Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Mon, 3 Nov 2008 19:20:22 +0000 Subject: Restructured BigDecimal tests. --- .../com/amazon/carbonado/raw/TestKeyEncoding.java | 258 ++++++++------------- 1 file changed, 100 insertions(+), 158 deletions(-) diff --git a/src/test/java/com/amazon/carbonado/raw/TestKeyEncoding.java b/src/test/java/com/amazon/carbonado/raw/TestKeyEncoding.java index de59653..ab748c4 100644 --- a/src/test/java/com/amazon/carbonado/raw/TestKeyEncoding.java +++ b/src/test/java/com/amazon/carbonado/raw/TestKeyEncoding.java @@ -447,177 +447,107 @@ public class TestKeyEncoding extends TestCase { } public void test_BigDecimal() throws Exception { - BigDecimal[] ref = new BigDecimal[1]; - - { - BigDecimal d1 = new BigDecimal("123"); - BigDecimal d2 = new BigDecimal("123.0"); - - assertTrue(d1.compareTo(d2) == 0); - assertFalse(d1.equals(d2)); - - byte[] b1 = new byte[KeyEncoder.calculateEncodedLength(d1)]; - KeyEncoder.encode(d1, b1, 0); - - byte[] b2 = new byte[KeyEncoder.calculateEncodedLength(d2)]; - KeyEncoder.encode(d2, b2, 0); - - assertTrue(TestDataEncoding.byteArrayCompare(b1, b2) < 0); - - ref[0] = BigDecimal.ZERO; - KeyDecoder.decode(b1, 0, ref); - assertEquals(d1, ref[0]); - - ref[0] = BigDecimal.ZERO; - KeyDecoder.decode(b2, 0, ref); - assertEquals(d2, ref[0]); - } - - { - BigDecimal d1 = new BigDecimal("-123.0"); - BigDecimal d2 = new BigDecimal("-123"); - - assertTrue(d1.compareTo(d2) == 0); - assertFalse(d1.equals(d2)); - - byte[] b1 = new byte[KeyEncoder.calculateEncodedLength(d1)]; - KeyEncoder.encode(d1, b1, 0); - - byte[] b2 = new byte[KeyEncoder.calculateEncodedLength(d2)]; - KeyEncoder.encode(d2, b2, 0); - - assertTrue(TestDataEncoding.byteArrayCompare(b1, b2) < 0); + test_BigDecimal(false); + } - ref[0] = BigDecimal.ZERO; - KeyDecoder.decode(b1, 0, ref); - assertEquals(d1, ref[0]); + public void test_BigDecimalDesc() throws Exception { + test_BigDecimal(true); + } - ref[0] = BigDecimal.ZERO; - KeyDecoder.decode(b2, 0, ref); - assertEquals(d2, ref[0]); - } + private void test_BigDecimal(boolean desc) throws Exception { + BigDecimal[] ref = new BigDecimal[1]; - { - BigDecimal[] values = { - new BigDecimal("-10.01"), - new BigDecimal("-10.001"), - new BigDecimal("10.001"), - new BigDecimal("10.01"), - new BigDecimal("10.1"), - new BigDecimal("11"), - new BigDecimal("90.01"), - }; - - byte[][] encoded = new byte[values.length][]; - - for (int i=0; i 0); } else { - assertEquals(value, ref[0]); - } - assertEquals(amt, actualAmt); - - if (lastBytes != null) { - int sgn = TestDataEncoding.compare(value, lastValue); - assertEquals(sgn, TestDataEncoding.byteArrayCompare(bytes, lastBytes)); + assertTrue(sgn < 0); } - lastValue = value; - lastBytes = bytes.clone(); } } - public void test_BigDecimalDesc() throws Exception { - BigDecimal[] ref = new BigDecimal[1]; - - { - BigDecimal d1 = new BigDecimal("123"); - BigDecimal d2 = new BigDecimal("123.0"); - - assertTrue(d1.compareTo(d2) == 0); - assertFalse(d1.equals(d2)); - - byte[] b1 = new byte[KeyEncoder.calculateEncodedLength(d1)]; - KeyEncoder.encodeDesc(d1, b1, 0); - - byte[] b2 = new byte[KeyEncoder.calculateEncodedLength(d2)]; - KeyEncoder.encodeDesc(d2, b2, 0); - - assertTrue(TestDataEncoding.byteArrayCompare(b1, b2) > 0); - - ref[0] = BigDecimal.ZERO; - KeyDecoder.decodeDesc(b1, 0, ref); - assertEquals(d1, ref[0]); - - ref[0] = BigDecimal.ZERO; - KeyDecoder.decodeDesc(b2, 0, ref); - assertEquals(d2, ref[0]); - } - - { - BigDecimal d1 = new BigDecimal("-123.0"); - BigDecimal d2 = new BigDecimal("-123"); - - assertTrue(d1.compareTo(d2) == 0); - assertFalse(d1.equals(d2)); - - byte[] b1 = new byte[KeyEncoder.calculateEncodedLength(d1)]; - KeyEncoder.encodeDesc(d1, b1, 0); - - byte[] b2 = new byte[KeyEncoder.calculateEncodedLength(d2)]; - KeyEncoder.encodeDesc(d2, b2, 0); - - assertTrue(TestDataEncoding.byteArrayCompare(b1, b2) > 0); + public void test_BigDecimalRandom() throws Exception { + test_BigDecimalRandom(false); + } - ref[0] = BigDecimal.ZERO; - KeyDecoder.decodeDesc(b1, 0, ref); - assertEquals(d1, ref[0]); + public void test_BigDecimalRandomDesc() throws Exception { + test_BigDecimalRandom(true); + } - ref[0] = BigDecimal.ZERO; - KeyDecoder.decodeDesc(b2, 0, ref); - assertEquals(d2, ref[0]); - } + private void test_BigDecimalRandom(boolean desc) throws Exception { + BigDecimal[] ref = new BigDecimal[1]; byte[] bytes = new byte[1000]; @@ -625,7 +555,7 @@ public class TestKeyEncoding extends TestCase { byte[] lastBytes = null; for (int i=0; i