Package com.hadoop.compression.snappy

Source Code of com.hadoop.compression.snappy.CompressionTests

package com.hadoop.compression.snappy;

import static org.junit.Assert.assertEquals;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

import org.junit.Test;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.compress.CompressionInputStream;
import org.apache.hadoop.io.compress.CompressionOutputStream;

public class CompressionTests
{
    @Test
    public void testSnappyCompression() throws IOException
    {

        SnappyCodec c = new SnappyCodec(new Configuration());
        byte[] inmsg = new byte[1024 * 1024 * 10];
        fillArray(inmsg);
       
        byte[] buffer = new byte[1024 * 1024];
        byte[] outmsg = new byte[1024 * 1024 * 16];

        for (int k = 0; k < 64; k++)
        {

            ByteArrayOutputStream bout = new ByteArrayOutputStream();

            CompressionOutputStream cout = c.createOutputStream(bout);

          
            cout.write(inmsg);
            cout.flush();

            ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
            CompressionInputStream cin = c.createInputStream(bin);

         
            int totaln = 0;

            while (cin.available() > 0)
            {
                int n = cin.read(buffer);
                if (n < 0)
                    break;

                try
                {
                    System.arraycopy(buffer, 0, outmsg, totaln, n);

                }
                catch (Throwable t)
                {
                    System.err.println("n = " + n + " totaln " + totaln);
                    throw new RuntimeException(t);
                }
                totaln += n;
            }

            assertEquals(inmsg.length, totaln);

            for (int i = 0; i < inmsg.length; i++)
            {
                assertEquals(inmsg[i], outmsg[i]);
            }

            assertEquals(new String(inmsg), new String(outmsg, 0, totaln));

        }

    }

    private void fillArray(byte[] buf)
    {
        for (int j = 0; j < buf.length; j++)
        {
            buf[j] = (byte) j;
        }
    }

}
TOP

Related Classes of com.hadoop.compression.snappy.CompressionTests

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.