@@ -68,6 +68,37 @@ def test_compress2_numpy(obj, cparams, dparams, gil):
6868 assert np .array_equal (dest4 , obj )
6969
7070
71+ @pytest .mark .parametrize ("gil" , [True , False ])
72+ @pytest .mark .parametrize (
73+ "obj, cparams, dparams" ,
74+ [
75+ (
76+ np .random .randint (0 , 10 , 10 , dtype = np .int64 ),
77+ {"codec" : blosc2 .Codec .LZ4 , "clevel" : 6 , "filters_meta" : [- 50 ]},
78+ {}
79+ ),
80+ (
81+ np .arange (10 , dtype = "int32" ),
82+ {"filters_meta" : [- 20 ]},
83+ {"nthreads" : 4 },
84+ ),
85+ (np .arange (45 , dtype = np .int16 ), {"codec" : blosc2 .Codec .LZ4HC , "filters_meta" : [- 10 ]}, {}),
86+ (np .arange (50 , dtype = np .int8 ), {"filters_meta" : [- 5 ]}, blosc2 .dparams_dflts ),
87+ ],
88+ )
89+ def test_compress2_int_trunc (obj , cparams , dparams , gil ):
90+ blosc2 .set_releasegil (gil )
91+ cparams ["filters" ] = [blosc2 .Filter .INT_TRUNC ]
92+ cparams ["typesize" ] = obj .dtype .itemsize
93+ c = blosc2 .compress2 (obj , ** cparams )
94+
95+ dest = np .empty (obj .shape , obj .dtype )
96+ blosc2 .decompress2 (c , dst = dest , ** dparams )
97+
98+ for i in range (obj .shape [0 ]):
99+ assert (obj [i ] - dest [i ]) <= (2 ** ((- 1 )* cparams ["filters_meta" ][0 ]))
100+
101+
71102@pytest .mark .parametrize ("gil" , [True , False ])
72103@pytest .mark .parametrize (
73104 "nbytes, cparams, dparams" ,
0 commit comments