1717import org .junit .jupiter .params .provider .CsvSource ;
1818import org .junit .jupiter .params .provider .MethodSource ;
1919
20- import java .io .*;
20+ import java .io .BufferedReader ;
21+ import java .io .FileOutputStream ;
22+ import java .io .IOException ;
23+ import java .io .InputStreamReader ;
2124import java .nio .ByteBuffer ;
2225import java .nio .file .Path ;
2326import java .nio .file .Paths ;
2427import java .util .Arrays ;
25- import java .util .HashMap ;
26- import java .util .Map ;
2728import java .util .stream .Stream ;
2829
2930
@@ -66,19 +67,13 @@ public static void setupUV() {
6667 }
6768 }
6869
69- public void run_python_script (String scriptName , String ... args ) throws IOException , InterruptedException {
70- int exitCode = runCommand (Stream .concat (Stream .of ("uv" , "run" , PYTHON_TEST_PATH .resolve (scriptName )
71- .toString ()), Arrays .stream (args )).toArray (String []::new ));
72- assert exitCode == 0 ;
73- }
74-
75- static ucar .ma2 .Array testdata (dev .zarr .zarrjava .core .DataType dt ){
70+ static ucar .ma2 .Array testdata (dev .zarr .zarrjava .core .DataType dt ) {
7671 ucar .ma2 .DataType ma2Type = dt .getMA2DataType ();
77- ucar .ma2 .Array array = ucar .ma2 .Array .factory (ma2Type , new int []{16 , 16 , 16 });
72+ ucar .ma2 .Array array = ucar .ma2 .Array .factory (ma2Type , new int []{16 , 16 , 16 });
7873 for (int i = 0 ; i < array .getSize (); i ++) {
7974 switch (ma2Type ) {
8075 case BOOLEAN :
81- array .setBoolean (i , i % 2 == 0 );
76+ array .setBoolean (i , i % 2 == 0 );
8277 break ;
8378 case BYTE :
8479 case UBYTE :
@@ -151,45 +146,79 @@ static void assertIsTestdata(ucar.ma2.Array result, dev.zarr.zarrjava.core.DataT
151146
152147 static Stream <Object []> compressorAndDataTypeProviderV3 () {
153148 Stream <Object []> datatypeTests = Stream .of (
154- DataType .BOOL ,
155- DataType .INT8 ,
156- DataType .UINT8 ,
157- DataType .INT16 ,
158- DataType .UINT16 ,
159- DataType .INT32 ,
160- DataType .UINT32 ,
161- DataType .INT64 ,
162- DataType .UINT64 ,
163- DataType .FLOAT32 ,
164- DataType .FLOAT64
149+ DataType .BOOL ,
150+ DataType .INT8 ,
151+ DataType .UINT8 ,
152+ DataType .INT16 ,
153+ DataType .UINT16 ,
154+ DataType .INT32 ,
155+ DataType .UINT32 ,
156+ DataType .INT64 ,
157+ DataType .UINT64 ,
158+ DataType .FLOAT32 ,
159+ DataType .FLOAT64
165160 ).flatMap (dt -> Stream .of (
166- new Object []{"sharding" , "end" , dt },
167- new Object []{"blosc" , "blosclz_shuffle_3" , dt }
161+ new Object []{"sharding" , "end" , dt },
162+ new Object []{"blosc" , "blosclz_shuffle_3" , dt }
168163 ));
169164
170165 Stream <Object []> codecsTests = Stream .of (
171- new Object []{"blosc" , "blosclz_noshuffle_0" , DataType .INT32 },
172- new Object []{"blosc" , "lz4_shuffle_6" , DataType .INT32 },
173- new Object []{"blosc" , "lz4hc_bitshuffle_3" , DataType .INT32 },
174- new Object []{"blosc" , "zlib_shuffle_5" , DataType .INT32 },
175- new Object []{"blosc" , "zstd_bitshuffle_9" , DataType .INT32 },
176- new Object []{"gzip" , "0" , DataType .INT32 },
177- new Object []{"gzip" , "5" , DataType .INT32 },
178- new Object []{"zstd" , "0_true" , DataType .INT32 },
179- new Object []{"zstd" , "5_true" , DataType .INT32 },
180- new Object []{"zstd" , "0_false" , DataType .INT32 },
181- new Object []{"zstd" , "5_false" , DataType .INT32 },
182- new Object []{"bytes" , "BIG" , DataType .INT32 },
183- new Object []{"bytes" , "LITTLE" , DataType .INT32 },
184- new Object []{"transpose" , "_" , DataType .INT32 },
185- new Object []{"sharding" , "start" , DataType .INT32 },
186- new Object []{"sharding_nested" , "_" , DataType .INT32 },
187- new Object []{"crc32c" , "_" , DataType .INT32 }
166+ new Object []{"blosc" , "blosclz_noshuffle_0" , DataType .INT32 },
167+ new Object []{"blosc" , "lz4_shuffle_6" , DataType .INT32 },
168+ new Object []{"blosc" , "lz4hc_bitshuffle_3" , DataType .INT32 },
169+ new Object []{"blosc" , "zlib_shuffle_5" , DataType .INT32 },
170+ new Object []{"blosc" , "zstd_bitshuffle_9" , DataType .INT32 },
171+ new Object []{"gzip" , "0" , DataType .INT32 },
172+ new Object []{"gzip" , "5" , DataType .INT32 },
173+ new Object []{"zstd" , "0_true" , DataType .INT32 },
174+ new Object []{"zstd" , "5_true" , DataType .INT32 },
175+ new Object []{"zstd" , "0_false" , DataType .INT32 },
176+ new Object []{"zstd" , "5_false" , DataType .INT32 },
177+ new Object []{"bytes" , "BIG" , DataType .INT32 },
178+ new Object []{"bytes" , "LITTLE" , DataType .INT32 },
179+ new Object []{"transpose" , "_" , DataType .INT32 },
180+ new Object []{"sharding" , "start" , DataType .INT32 },
181+ new Object []{"sharding_nested" , "_" , DataType .INT32 },
182+ new Object []{"crc32c" , "_" , DataType .INT32 }
188183 );
189184
190185 return Stream .concat (datatypeTests , codecsTests );
191186 }
192187
188+ static Stream <Object []> compressorAndDataTypeProviderV2 () {
189+ Stream <Object []> datatypeTests = Stream .of (
190+ dev .zarr .zarrjava .v2 .DataType .BOOL ,
191+ dev .zarr .zarrjava .v2 .DataType .INT8 ,
192+ dev .zarr .zarrjava .v2 .DataType .UINT8 ,
193+ dev .zarr .zarrjava .v2 .DataType .INT16 ,
194+ dev .zarr .zarrjava .v2 .DataType .UINT16 ,
195+ dev .zarr .zarrjava .v2 .DataType .INT32 ,
196+ dev .zarr .zarrjava .v2 .DataType .UINT32 ,
197+ dev .zarr .zarrjava .v2 .DataType .INT64 ,
198+ dev .zarr .zarrjava .v2 .DataType .UINT64 ,
199+ dev .zarr .zarrjava .v2 .DataType .FLOAT32 ,
200+ dev .zarr .zarrjava .v2 .DataType .FLOAT64
201+ ).flatMap (dt -> Stream .of (
202+ new Object []{"zlib" , "0" , dt },
203+ new Object []{"blosc" , "blosclz_shuffle_3" , dt }
204+ ));
205+
206+ Stream <Object []> bloscTests = Stream .of (
207+ new Object []{"blosc" , "blosclz_noshuffle_0" , dev .zarr .zarrjava .v2 .DataType .INT32 },
208+ new Object []{"blosc" , "lz4_shuffle_6" , dev .zarr .zarrjava .v2 .DataType .INT32 },
209+ new Object []{"blosc" , "lz4hc_bitshuffle_3" , dev .zarr .zarrjava .v2 .DataType .INT32 },
210+ new Object []{"blosc" , "zlib_shuffle_5" , dev .zarr .zarrjava .v2 .DataType .INT32 },
211+ new Object []{"blosc" , "zstd_bitshuffle_9" , dev .zarr .zarrjava .v2 .DataType .INT32 }
212+ );
213+
214+ return Stream .concat (datatypeTests , bloscTests );
215+ }
216+
217+ public void run_python_script (String scriptName , String ... args ) throws IOException , InterruptedException {
218+ int exitCode = runCommand (Stream .concat (Stream .of ("uv" , "run" , PYTHON_TEST_PATH .resolve (scriptName )
219+ .toString ()), Arrays .stream (args )).toArray (String []::new ));
220+ assert exitCode == 0 ;
221+ }
193222
194223 @ ParameterizedTest
195224 @ MethodSource ("compressorAndDataTypeProviderV3" )
@@ -215,11 +244,11 @@ public void testWriteV3(String codec, String codecParam, DataType dataType) thro
215244 StoreHandle storeHandle = new FilesystemStore (TESTOUTPUT ).resolve ("testWriteV3" , codec , codecParam , dataType .name ());
216245
217246 ArrayMetadataBuilder builder = Array .metadataBuilder ()
218- .withShape (16 , 16 , 16 )
219- .withDataType (dataType )
220- .withChunkShape (2 , 4 , 8 )
221- .withFillValue (0 )
222- .withAttributes (attributes );
247+ .withShape (16 , 16 , 16 )
248+ .withDataType (dataType )
249+ .withChunkShape (2 , 4 , 8 )
250+ .withFillValue (0 )
251+ .withAttributes (attributes );
223252
224253 switch (codec ) {
225254 case "blosc" :
@@ -273,36 +302,6 @@ public void testWriteV3(String codec, String codecParam, DataType dataType) thro
273302 run_python_script ("zarr_python_read.py" , codec , codecParam , dataType .name ().toLowerCase (), storeHandle .toPath ().toString ());
274303 }
275304
276-
277- static Stream <Object []> compressorAndDataTypeProviderV2 () {
278- Stream <Object []> datatypeTests = Stream .of (
279- dev .zarr .zarrjava .v2 .DataType .BOOL ,
280- dev .zarr .zarrjava .v2 .DataType .INT8 ,
281- dev .zarr .zarrjava .v2 .DataType .UINT8 ,
282- dev .zarr .zarrjava .v2 .DataType .INT16 ,
283- dev .zarr .zarrjava .v2 .DataType .UINT16 ,
284- dev .zarr .zarrjava .v2 .DataType .INT32 ,
285- dev .zarr .zarrjava .v2 .DataType .UINT32 ,
286- dev .zarr .zarrjava .v2 .DataType .INT64 ,
287- dev .zarr .zarrjava .v2 .DataType .UINT64 ,
288- dev .zarr .zarrjava .v2 .DataType .FLOAT32 ,
289- dev .zarr .zarrjava .v2 .DataType .FLOAT64
290- ).flatMap (dt -> Stream .of (
291- new Object []{"zlib" , "0" , dt },
292- new Object []{"blosc" , "blosclz_shuffle_3" , dt }
293- ));
294-
295- Stream <Object []> bloscTests = Stream .of (
296- new Object []{"blosc" , "blosclz_noshuffle_0" , dev .zarr .zarrjava .v2 .DataType .INT32 },
297- new Object []{"blosc" , "lz4_shuffle_6" , dev .zarr .zarrjava .v2 .DataType .INT32 },
298- new Object []{"blosc" , "lz4hc_bitshuffle_3" , dev .zarr .zarrjava .v2 .DataType .INT32 },
299- new Object []{"blosc" , "zlib_shuffle_5" , dev .zarr .zarrjava .v2 .DataType .INT32 },
300- new Object []{"blosc" , "zstd_bitshuffle_9" , dev .zarr .zarrjava .v2 .DataType .INT32 }
301- );
302-
303- return Stream .concat (datatypeTests , bloscTests );
304- }
305-
306305 @ ParameterizedTest
307306 @ MethodSource ("compressorAndDataTypeProviderV2" )
308307 public void testReadV2 (String compressor , String compressorParam , dev .zarr .zarrjava .v2 .DataType dt ) throws IOException , ZarrException , InterruptedException {
@@ -329,11 +328,11 @@ public void testWriteV2(String compressor, String compressorParam, dev.zarr.zarr
329328 StoreHandle storeHandle = new FilesystemStore (TESTOUTPUT ).resolve ("testCodecsWriteV2" , compressor , compressorParam , dt .name ());
330329
331330 dev .zarr .zarrjava .v2 .ArrayMetadataBuilder builder = dev .zarr .zarrjava .v2 .Array .metadataBuilder ()
332- .withShape (16 , 16 , 16 )
333- .withDataType (dt )
334- .withChunks (2 , 4 , 8 )
335- .withAttributes (attributes )
336- .withFillValue (0 );
331+ .withShape (16 , 16 , 16 )
332+ .withDataType (dt )
333+ .withChunks (2 , 4 , 8 )
334+ .withAttributes (attributes )
335+ .withFillValue (0 );
337336
338337 switch (compressor ) {
339338 case "blosc" :
@@ -391,11 +390,11 @@ public void testZstdLibrary(int clevel, boolean checksumFlag) throws IOException
391390
392391 //decompress in python
393392 int exitCode = ZarrPythonTests .runCommand (
394- "uv" ,
395- "run" ,
396- PYTHON_TEST_PATH .resolve ("zstd_decompress.py" ).toString (),
397- compressedDataPath ,
398- Integer .toString (number )
393+ "uv" ,
394+ "run" ,
395+ PYTHON_TEST_PATH .resolve ("zstd_decompress.py" ).toString (),
396+ compressedDataPath ,
397+ Integer .toString (number )
399398 );
400399 assert exitCode == 0 ;
401400 }
@@ -410,7 +409,7 @@ public void testGroupReadWriteV2() throws Exception {
410409 .withShape (16 , 16 , 16 )
411410 .withDataType (dataType )
412411 .withChunks (2 , 4 , 8 )
413- );
412+ );
414413
415414 array .write (testdata (dataType ));
416415
@@ -437,7 +436,7 @@ public void testGroupReadWriteV3() throws Exception {
437436 .withShape (16 , 16 , 16 )
438437 .withDataType (dataType )
439438 .withChunkShape (2 , 4 , 8 )
440- );
439+ );
441440
442441 array .write (testdata (dataType ));
443442
0 commit comments