summaryrefslogtreecommitdiff
path: root/src/test/java/com/amazon/carbonado/raw/TestDataEncoding.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/amazon/carbonado/raw/TestDataEncoding.java')
-rw-r--r--src/test/java/com/amazon/carbonado/raw/TestDataEncoding.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/raw/TestDataEncoding.java b/src/test/java/com/amazon/carbonado/raw/TestDataEncoding.java
index bff5820..b08049f 100644
--- a/src/test/java/com/amazon/carbonado/raw/TestDataEncoding.java
+++ b/src/test/java/com/amazon/carbonado/raw/TestDataEncoding.java
@@ -18,6 +18,8 @@
package com.amazon.carbonado.raw;
+import java.math.BigInteger;
+
import java.util.Random;
import junit.framework.TestCase;
@@ -463,6 +465,28 @@ public class TestDataEncoding extends TestCase {
}
}
+ public void test_BigInteger() throws Exception {
+ byte[] bytes = new byte[101];
+
+ assertEquals(1, DataEncoder.encode((BigInteger) null, bytes, 0));
+ BigInteger[] ref = new BigInteger[1];
+ ref[0] = BigInteger.ONE;
+ assertEquals(1, DataDecoder.decode(bytes, 0, ref));
+ assertEquals(null, ref[0]);
+
+ for (int i=0; i<SHORT_TEST; i++) {
+ int len = mRandom.nextInt(100 * 8);
+ BigInteger value = new BigInteger(len, mRandom);
+ if (mRandom.nextBoolean()) {
+ value = value.negate();
+ }
+ int amt = DataEncoder.calculateEncodedLength(value);
+ assertEquals(amt, DataEncoder.encode(value, bytes, 0));
+ assertEquals(amt, DataDecoder.decode(bytes, 0, ref));
+ assertEquals(value, ref[0]);
+ }
+ }
+
public void test_String() throws Exception {
String[] ref = new String[1];
for (int i=0; i<SHORT_TEST; i++) {