Author: wavey
Date: 2008-04-11 21:57:10 +0000 (Fri, 11 Apr 2008)
New Revision: 19211

Modified:
   trunk/freenet/test/freenet/support/compress/GzipCompressorTest.java
Log:
added test of decompress by byte array (rather than bucket). Not currently used 
but probably so in the future (according to mr toad)

Modified: trunk/freenet/test/freenet/support/compress/GzipCompressorTest.java
===================================================================
--- trunk/freenet/test/freenet/support/compress/GzipCompressorTest.java 
2008-04-11 21:44:40 UTC (rev 19210)
+++ trunk/freenet/test/freenet/support/compress/GzipCompressorTest.java 
2008-04-11 21:57:10 UTC (rev 19211)
@@ -52,7 +52,10 @@

                // check GZIP is the first compressor
                assertEquals(gzipCompressor, compressorZero);
+       }

+       public void testCompress() {
+
                // do gzip compression
                byte[] compressedData = 
doCompress(UNCOMPRESSED_DATA_1.getBytes());

@@ -63,15 +66,48 @@
                for (int i = 0; i < compressedData.length; i++) {
                        assertEquals(COMPRESSED_DATA_1[i], compressedData[i]);
                }
+       }

-               // do gzip uncompression
-               byte[] uncompressedData = doUncompress(compressedData);
+       public void testBucketDecompress() {

+               byte[] compressedData = COMPRESSED_DATA_1;
+               
+               // do gzip decompression with buckets
+               byte[] uncompressedData = doBucketDecompress(compressedData);
+               
                // is the (round-tripped) uncompressed string the same as the 
original?
                String uncompressedString = new String(uncompressedData);
                assertEquals(uncompressedString, UNCOMPRESSED_DATA_1);
        }

+       public void testByteArrayDecompress() {
+               
+        // build 5k array 
+               byte[] originalUncompressedData = new byte[5 * 1024];
+               for(int i = 0; i < originalUncompressedData.length; i++) {
+                       originalUncompressedData[i] = 1;
+               }
+               
+               byte[] compressedData = doCompress(originalUncompressedData);
+               byte[] outUncompressedData = new byte[5 * 1024];
+               
+               int writtenBytes = 0;
+               
+               try {
+                       writtenBytes = 
Compressor.GZIP.decompress(compressedData, 0, compressedData.length, 
outUncompressedData);
+               } catch (CompressionOutputSizeException e) {
+                       fail("unexpected exception thrown : " + e.getMessage());
+               }
+               
+               assertEquals(writtenBytes, originalUncompressedData.length);
+               assertEquals(originalUncompressedData.length, 
outUncompressedData.length);
+               
+        // check each byte is exactly as expected
+               for (int i = 0; i < outUncompressedData.length; i++) {
+                       assertEquals(originalUncompressedData[i], 
outUncompressedData[i]);
+               }
+       }
+
        public void testCompressException() {

                byte[] uncompressedData = UNCOMPRESSED_DATA_1.getBytes();
@@ -109,7 +145,7 @@
                }
        }

-       private byte[] doUncompress(byte[] compressedData) {
+       private byte[] doBucketDecompress(byte[] compressedData) {

                Bucket inBucket = new ArrayBucket(compressedData);
                BucketFactory factory = new ArrayBucketFactory();


Reply via email to