Skip to content

Commit ef9ab22

Browse files
committed
rm snappy + add tests
1 parent 99ff8bd commit ef9ab22

3 files changed

Lines changed: 71 additions & 19 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ byte[] compress(
3636

3737
- `src`: Byte array to be compressed. Required.
3838
- `typeSize`: Number of bytes per primitive value (e.g. 1 for int8, 2 for int16, 4 for int32). Required.
39-
- `compressor`: Compression algorithm. Available choices: `LZ4`, `LZ4HC`, `BLOSCLZ`, `ZSTD`, `SNAPPY`, `ZLIB`.
39+
- `compressor`: Compression algorithm. Available choices: `LZ4`, `LZ4HC`, `BLOSCLZ`, `ZSTD`, `ZLIB`.
4040
Default: `ZSTD`
4141
- `compressorLevel`: Number from 0 to 9 (0 = little compression, 9 = strongest compression). Default: 5.
4242
- `shuffle`: Whether to use shuffling. Available choices: `NOSHUFFLE`, `BIT_SHUFFLE`, `BYTE_SHUFFLE`. Default:

src/main/java/dev/zarr/bloscjava/Blosc.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ private Blosc() {
2727
*
2828
* @param src Byte array to be compressed.
2929
* @param typeSize Number of bytes per primitive value (e.g. 1 for int8, 2 for int16, 4 for int32).
30-
* @param compressor Compression algorithm. Available choices: LZ4, LZ4HC, BLOSCLZ, ZSTD, SNAPPY, ZLIB.
30+
* @param compressor Compression algorithm. Available choices: LZ4, LZ4HC, BLOSCLZ, ZSTD<, ZLIB.
3131
* @param compressorLevel Number from 0 to 9 (0 = little compression, 9 = strongest compression).
3232
* @param shuffle Whether to use shuffling. Available choices: NOSHUFFLE, BIT_SHUFFLE, BYTE_SHUFFLE. Recommended:
3333
* BIT_SHUFFLE for typeSize == 1, BYTE_SHUFFLE otherwise.
@@ -44,7 +44,7 @@ public static byte[] compress(byte[] src, int typeSize, Compressor compressor, i
4444
*
4545
* @param src Byte array to be compressed.
4646
* @param typeSize Number of bytes per primitive value (e.g. 1 for int8, 2 for int16, 4 for int32).
47-
* @param compressor Compression algorithm. Available choices: LZ4, LZ4HC, BLOSCLZ, ZSTD, SNAPPY, ZLIB.
47+
* @param compressor Compression algorithm. Available choices: LZ4, LZ4HC, BLOSCLZ, ZSTD<, ZLIB.
4848
* @param compressorLevel Number from 0 to 9 (0 = little compression, 9 = strongest compression).
4949
* @param shuffle Whether to use shuffling. Available choices: NOSHUFFLE, BIT_SHUFFLE, BYTE_SHUFFLE. Recommended:
5050
* BIT_SHUFFLE for typeSize == 1, BYTE_SHUFFLE otherwise.
@@ -60,7 +60,8 @@ public static byte[] compress(byte[] src, int typeSize, Compressor compressor, i
6060
*
6161
* @param src Byte array to be compressed.
6262
* @param typeSize Number of bytes per primitive value (e.g. 1 for int8, 2 for int16, 4 for int32).
63-
* @param compressor Compression algorithm. Available choices: Available choices: LZ4, LZ4HC, BLOSCLZ, ZSTD, SNAPPY, ZLIB.
63+
* @param compressor Compression algorithm. Available choices: Available choices: LZ4, LZ4HC, BLOSCLZ,
64+
* ZSTD<, ZLIB.
6465
* @param compressorLevel Number from 0 to 9 (0 = little compression, 9 = strongest compression).
6566
* @param shuffle Whether to use shuffling. Available choices: NOSHUFFLE, BIT_SHUFFLE, BYTE_SHUFFLE. Recommended:
6667
* BIT_SHUFFLE for typeSize == 1, BYTE_SHUFFLE otherwise.
@@ -75,7 +76,7 @@ public static byte[] compress(byte[] src, int typeSize, Compressor compressor, i
7576
*
7677
* @param src Byte array to be compressed.
7778
* @param typeSize Number of bytes per primitive value (e.g. 1 for int8, 2 for int16, 4 for int32).
78-
* @param compressor Compression algorithm. Available choices: LZ4, LZ4HC, BLOSCLZ, ZSTD, SNAPPY, ZLIB.
79+
* @param compressor Compression algorithm. Available choices: LZ4, LZ4HC, BLOSCLZ, ZSTD<, ZLIB.
7980
* @param compressorLevel Number from 0 to 9 (0 = little compression, 9 = strongest compression).
8081
* @return the compressed byte array
8182
*/
@@ -89,7 +90,7 @@ public static byte[] compress(byte[] src, int typeSize, Compressor compressor, i
8990
*
9091
* @param src Byte array to be compressed.
9192
* @param typeSize Number of bytes per primitive value (e.g. 1 for int8, 2 for int16, 4 for int32).
92-
* @param compressor Compression algorithm. Available choices: LZ4, LZ4HC, BLOSCLZ, ZSTD, SNAPPY, ZLIB.
93+
* @param compressor Compression algorithm. Available choices: LZ4, LZ4HC, BLOSCLZ, ZSTD<, ZLIB.
9394
* @return the compressed byte array
9495
*/
9596
public static byte[] compress(byte[] src, int typeSize, Compressor compressor) {
@@ -188,10 +189,6 @@ public enum Compressor {
188189
* <a href="https://facebook.github.io/zstd/">Zstandard compression</a>
189190
*/
190191
ZSTD("zstd"),
191-
/**
192-
* <a href="https://google.github.io/snappy/">Snappy compression</a>
193-
*/
194-
SNAPPY("snappy"),
195192
/**
196193
* <a href="https://zlib.net/">Zlib compression</a>
197194
*/

src/test/java/dev/zarr/bloscjava/BloscTest.java

Lines changed: 64 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,78 @@
66

77
public class BloscTest {
88

9-
@Test
10-
public void testCompress() {
9+
byte[] makeTestBytes() {
1110
byte[] buf = new byte[256];
1211
for (int i = 0; i < buf.length; i++) buf[i] = (byte) (i % 12);
12+
return buf;
13+
}
14+
15+
@Test
16+
public void testCompress() {
17+
byte[] buf = makeTestBytes();
18+
byte[] compBuf = Blosc.compress(buf, 1);
19+
byte[] decompBuf = Blosc.decompress(compBuf);
20+
assert Arrays.equals(buf, decompBuf);
21+
}
22+
23+
@Test
24+
public void testCompressBlosclz() {
25+
byte[] buf = makeTestBytes();
26+
byte[] compBuf = Blosc.compress(buf, 1, Blosc.Compressor.BLOSCLZ);
27+
byte[] decompBuf = Blosc.decompress(compBuf);
28+
assert Arrays.equals(buf, decompBuf);
29+
}
1330

14-
byte[] compBuf = Blosc.compress(buf, 1, Blosc.Compressor.ZSTD, 9);
15-
System.out.println(compBuf.length);
31+
@Test
32+
public void testCompressLz4() {
33+
byte[] buf = makeTestBytes();
34+
byte[] compBuf = Blosc.compress(buf, 1, Blosc.Compressor.LZ4);
35+
byte[] decompBuf = Blosc.decompress(compBuf);
36+
assert Arrays.equals(buf, decompBuf);
37+
}
1638

39+
@Test
40+
public void testCompressLz4hc() {
41+
byte[] buf = makeTestBytes();
42+
byte[] compBuf = Blosc.compress(buf, 1, Blosc.Compressor.LZ4HC);
1743
byte[] decompBuf = Blosc.decompress(compBuf);
44+
assert Arrays.equals(buf, decompBuf);
45+
}
1846

19-
System.out.println(Arrays.equals(buf, decompBuf));
20-
System.out.println(Arrays.equals(buf, compBuf));
21-
System.out.println(Arrays.toString(buf));
22-
System.out.println(Arrays.toString(compBuf));
23-
System.out.println(Arrays.toString(decompBuf));
47+
@Test
48+
public void testCompressZlib() {
49+
byte[] buf = makeTestBytes();
50+
byte[] compBuf = Blosc.compress(buf, 1, Blosc.Compressor.ZLIB);
51+
byte[] decompBuf = Blosc.decompress(compBuf);
52+
assert Arrays.equals(buf, decompBuf);
53+
}
2454

55+
@Test
56+
public void testCompressZstd() {
57+
byte[] buf = makeTestBytes();
58+
byte[] compBuf = Blosc.compress(buf, 1, Blosc.Compressor.ZSTD);
59+
byte[] decompBuf = Blosc.decompress(compBuf);
2560
assert Arrays.equals(buf, decompBuf);
2661
}
2762

63+
@Test
64+
public void testCompressZstdLevels() {
65+
byte[] buf = makeTestBytes();
66+
byte[] compBuf0 = Blosc.compress(buf, 1, Blosc.Compressor.ZSTD, 0);
67+
byte[] compBuf9 = Blosc.compress(buf, 1, Blosc.Compressor.ZSTD, 9);
68+
assert compBuf0.length > compBuf9.length;
69+
assert Arrays.equals(buf, Blosc.decompress(compBuf0));
70+
assert Arrays.equals(buf, Blosc.decompress(compBuf9));
71+
}
72+
73+
@Test
74+
public void testCompressShuffle() {
75+
byte[] buf = makeTestBytes();
76+
byte[] compBufNo = Blosc.compress(buf, 1, Blosc.Compressor.ZSTD, 5, Blosc.Shuffle.NO_SHUFFLE);
77+
byte[] compBufBit = Blosc.compress(buf, 1, Blosc.Compressor.ZSTD, 5, Blosc.Shuffle.BIT_SHUFFLE);
78+
byte[] compBufByte = Blosc.compress(buf, 2, Blosc.Compressor.ZSTD, 5, Blosc.Shuffle.BYTE_SHUFFLE);
79+
assert Arrays.equals(buf, Blosc.decompress(compBufNo));
80+
assert Arrays.equals(buf, Blosc.decompress(compBufBit));
81+
assert Arrays.equals(buf, Blosc.decompress(compBufByte));
82+
}
2883
}

0 commit comments

Comments
 (0)