Files
Holocore/test/network/encryption/TestCompression.java
T

52 lines
1.7 KiB
Java

package network.encryption;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
public class TestCompression {
@Test
public void testSmall() {
byte [] buffer = new byte[Compression.getMaxCompressedLength(101)];
byte [] data = new byte[101];
for (int i = 0; i < data.length; i++)
data[i] = (byte) (i % 100);
int len = Compression.compress(data, buffer);
byte [] compressed = new byte[len];
System.arraycopy(buffer, 0, compressed, 0, len);
byte [] decompressed = Compression.decompress(compressed);
Assert.assertArrayEquals(data, decompressed);
}
@Test
public void testMedium() {
byte [] buffer = new byte[Compression.getMaxCompressedLength(256)];
byte [] data = new byte[256];
for (int i = 0; i < data.length; i++)
data[i] = (byte) (i % 100);
int len = Compression.compress(data, buffer);
byte [] compressed = new byte[len];
System.arraycopy(buffer, 0, compressed, 0, len);
byte [] decompressed = Compression.decompress(compressed);
Assert.assertArrayEquals(data, decompressed);
}
@Test
public void testLarge() {
byte [] buffer = new byte[Compression.getMaxCompressedLength(1024)];
byte [] data = new byte[1024];
for (int i = 0; i < data.length; i++)
data[i] = (byte) (i % 100);
int len = Compression.compress(data, buffer);
byte [] compressed = new byte[len];
System.arraycopy(buffer, 0, compressed, 0, len);
Assert.assertTrue("Compressed should be less than actual. Compressed: "+compressed.length+" Data: "+data.length, compressed.length < data.length);
byte [] decompressed = Compression.decompress(compressed);
Assert.assertArrayEquals(data, decompressed);
}
}