Author: sback
Date: 2007-06-29 22:26:14 +0000 (Fri, 29 Jun 2007)
New Revision: 13834
Modified:
trunk/freenet/test/freenet/support/HexUtilTest.java
Log:
Remained methods tested:
Modified: trunk/freenet/test/freenet/support/HexUtilTest.java
===================================================================
--- trunk/freenet/test/freenet/support/HexUtilTest.java 2007-06-29 22:11:50 UTC
(rev 13833)
+++ trunk/freenet/test/freenet/support/HexUtilTest.java 2007-06-29 22:26:14 UTC
(rev 13834)
@@ -16,6 +16,11 @@
package freenet.support;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
import java.math.BigInteger;
import java.util.Arrays;
import java.util.BitSet;
@@ -178,6 +183,64 @@
}
/**
+ * Test bitsToHexString(BitSet,int) method
+ * comparing its results to results provided
+ * by different scientific valid calculators.
+ */
+ public void testBitsToHexString() {
+ BitSet methodBitSet = new BitSet(8);
+ String expectedString = "00";
+
assertEquals(HexUtil.bitsToHexString(methodBitSet,8),expectedString);
+ methodBitSet.set(0,7,true); /*0x7f*/
+ expectedString = "7f";
+
assertEquals(HexUtil.bitsToHexString(methodBitSet,8),expectedString);
+ methodBitSet.set(0,9,true); /*0xff*/
+ expectedString = "ff";
+
assertEquals(HexUtil.bitsToHexString(methodBitSet,8),expectedString);
+ }
+
+ /**
+ * Tests hexToBits(String,BitSet,int) method
+ */
+ public void testHexToBits() {
+ String methodStringToStore = "00";
+ BitSet methodBitSet = new BitSet(8);
+
HexUtil.hexToBits(methodStringToStore,methodBitSet,methodBitSet.size());
+ assertTrue(methodBitSet.cardinality()==0);
+ BitSet expectedBitSet = new BitSet(8);
+ expectedBitSet.set(0,7,true); /*0x7f*/
+ methodStringToStore = "7f";
+ methodBitSet = new BitSet(8);
+
HexUtil.hexToBits(methodStringToStore,methodBitSet,methodBitSet.size());
+ assertTrue(methodBitSet.intersects(expectedBitSet));
+ expectedBitSet.set(0,9,true); /*0xff*/
+ methodStringToStore = "ff";
+ methodBitSet = new BitSet(8);
+
HexUtil.hexToBits(methodStringToStore,methodBitSet,methodBitSet.size());
+ assertTrue(methodBitSet.intersects(expectedBitSet));
+ }
+
+ /**
+ * Tests writeBigInteger(BigInteger,DataOutputStream)
+ * and readBigInteger(DataInputStream) comparing a
+ * BigInteger after writing it to a Stream and
+ * reading it from the writing result.
+ */
+ public void testWriteAndReadBigInteger() {
+ BigInteger methodBigInteger = new BigInteger("999999999999999");
+ ByteArrayOutputStream methodByteArrayOutStream = new
ByteArrayOutputStream();
+ DataOutputStream methodDataOutStream = new
DataOutputStream(methodByteArrayOutStream);
+ try {
+
HexUtil.writeBigInteger(methodBigInteger,methodDataOutStream);
+ ByteArrayInputStream methodByteArrayInStream =
+ new
ByteArrayInputStream(methodByteArrayOutStream.toByteArray());
+ DataInputStream methodDataInStream = new
DataInputStream(methodByteArrayInStream);
+
assertTrue(methodBigInteger.compareTo(HexUtil.readBigInteger(methodDataInStream))==0);
+ } catch (IOException aException) {
+ fail("Not expected exception thrown : " +
aException.getMessage()); }
+ }
+
+ /**
* Test bytesToHex(byte[],int,int) method
* with a too long starting offset. The tested
* method should raise an exception.