@@ -82,8 +82,15 @@ def test_codec_pipeline() -> None:
8282 np .testing .assert_array_equal (result , expected )
8383
8484
85- @pytest .mark .parametrize ("dtype" , ["|S" , "|V" ])
86- async def test_v2_encode_decode (dtype ):
85+ @pytest .mark .parametrize (
86+ ("dtype" , "expected_dtype" , "fill_value" , "fill_value_encoding" ),
87+ [
88+ ("|S" , "|S0" , b"X" , "WA==" ),
89+ ("|V" , "|V0" , b"X" , "WA==" ),
90+ ("|V10" , "|V10" , b"X" , "WAAAAAAAAAAAAA==" ),
91+ ],
92+ )
93+ async def test_v2_encode_decode (dtype , expected_dtype , fill_value , fill_value_encoding ) -> None :
8794 with config .set (
8895 {
8996 "array.v2_default_filters.bytes" : [{"id" : "vlen-bytes" }],
@@ -97,7 +104,7 @@ async def test_v2_encode_decode(dtype):
97104 shape = (3 ,),
98105 chunks = (3 ,),
99106 dtype = dtype ,
100- fill_value = b"X" ,
107+ fill_value = fill_value ,
101108 )
102109
103110 result = await store .get ("foo/.zarray" , zarr .core .buffer .default_buffer_prototype ())
@@ -107,8 +114,8 @@ async def test_v2_encode_decode(dtype):
107114 expected = {
108115 "chunks" : [3 ],
109116 "compressor" : None ,
110- "dtype" : f" { dtype } 0" ,
111- "fill_value" : "WA==" ,
117+ "dtype" : expected_dtype ,
118+ "fill_value" : fill_value_encoding ,
112119 "filters" : [{"id" : "vlen-bytes" }] if dtype == "|S" else None ,
113120 "order" : "C" ,
114121 "shape" : [3 ],
0 commit comments