@@ -259,54 +259,84 @@ def test_pack_unpack() -> None:
259259 assert util .p16 (1 , endian ) == b"\x01 \x00 "
260260 assert util .p32 (1 , endian ) == b"\x01 \x00 \x00 \x00 "
261261 assert util .p64 (1 , endian ) == b"\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 "
262+ assert util .pf16 (1.0 , endian ) == b"\x00 \x3c "
263+ assert util .pf32 (1.0 , endian ) == b"\x00 \x00 \x80 \x3f "
264+ assert util .pf64 (1.0 , endian ) == b"\x00 \x00 \x00 \x00 \x00 \x00 \xf0 \x3f "
262265 assert util .u8 (b"\x01 " , endian , sign ) == 1
263266 assert util .u16 (b"\x01 \x00 " , endian , sign ) == 1
264267 assert util .u32 (b"\x01 \x00 \x00 \x00 " , endian , sign ) == 1
265268 assert util .u64 (b"\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 " , endian , sign ) == 1
269+ assert util .f16 (b"\x00 \x3c " , endian ) == 1.0
270+ assert util .f32 (b"\x00 \x00 \x80 \x3f " , endian ) == 1.0
271+ assert util .f64 (b"\x00 \x00 \x00 \x00 \x00 \x00 \xf0 \x3f " , endian ) == 1.0
266272
267273 endian = "big"
268274 sign = False
269275 assert util .p8 (1 , endian ) == b"\x01 "
270276 assert util .p16 (1 , endian ) == b"\x00 \x01 "
271277 assert util .p32 (1 , endian ) == b"\x00 \x00 \x00 \x01 "
272278 assert util .p64 (1 , endian ) == b"\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x01 "
279+ assert util .pf16 (1.0 , endian ) == b"\x3c \x00 "
280+ assert util .pf32 (1.0 , endian ) == b"\x3f \x80 \x00 \x00 "
281+ assert util .pf64 (1.0 , endian ) == b"\x3f \xf0 \x00 \x00 \x00 \x00 \x00 \x00 "
273282 assert util .u8 (b"\x01 " , endian , sign ) == 1
274283 assert util .u16 (b"\x00 \x01 " , endian , sign ) == 1
275284 assert util .u32 (b"\x00 \x00 \x00 \x01 " , endian , sign ) == 1
276285 assert util .u64 (b"\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x01 " , endian , sign ) == 1
286+ assert util .f16 (b"\x3c \x00 " , endian ) == 1.0
287+ assert util .f32 (b"\x3f \x80 \x00 \x00 " , endian ) == 1.0
288+ assert util .f64 (b"\x3f \xf0 \x00 \x00 \x00 \x00 \x00 \x00 " , endian ) == 1.0
277289
278290 endian = "network"
279291 sign = False
280292 assert util .p8 (1 , endian ) == b"\x01 "
281293 assert util .p16 (1 , endian ) == b"\x00 \x01 "
282294 assert util .p32 (1 , endian ) == b"\x00 \x00 \x00 \x01 "
283295 assert util .p64 (1 , endian ) == b"\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x01 "
296+ assert util .pf16 (1.0 , endian ) == b"\x3c \x00 "
297+ assert util .pf32 (1.0 , endian ) == b"\x3f \x80 \x00 \x00 "
298+ assert util .pf64 (1.0 , endian ) == b"\x3f \xf0 \x00 \x00 \x00 \x00 \x00 \x00 "
284299 assert util .u8 (b"\x01 " , endian , sign ) == 1
285300 assert util .u16 (b"\x00 \x01 " , endian , sign ) == 1
286301 assert util .u32 (b"\x00 \x00 \x00 \x01 " , endian , sign ) == 1
287302 assert util .u64 (b"\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x01 " , endian , sign ) == 1
303+ assert util .f16 (b"\x3c \x00 " , endian ) == 1.0
304+ assert util .f32 (b"\x3f \x80 \x00 \x00 " , endian ) == 1.0
305+ assert util .f64 (b"\x3f \xf0 \x00 \x00 \x00 \x00 \x00 \x00 " , endian ) == 1.0
288306
289307 endian = "little"
290308 sign = True
291309 assert util .p8 (- 120 , endian ) == b"\x88 "
292310 assert util .p16 (- 120 , endian ) == b"\x88 \xff "
293311 assert util .p32 (- 120 , endian ) == b"\x88 \xff \xff \xff "
294312 assert util .p64 (- 120 , endian ) == b"\x88 \xff \xff \xff \xff \xff \xff \xff "
313+ assert util .pf16 (- 120.0 , endian ) == b"\x80 \xd7 "
314+ assert util .pf32 (- 120.0 , endian ) == b"\x00 \x00 \xf0 \xc2 "
315+ assert util .pf64 (- 120.0 , endian ) == b"\x00 \x00 \x00 \x00 \x00 \x00 \x5e \xc0 "
295316 assert util .u8 (b"\x88 " , endian , sign ) == - 120
296317 assert util .u16 (b"\x88 \xff " , endian , sign ) == - 120
297318 assert util .u32 (b"\x88 \xff \xff \xff " , endian , sign ) == - 120
298319 assert util .u64 (b"\x88 \xff \xff \xff \xff \xff \xff \xff " , endian , sign ) == - 120
320+ assert util .f16 (b"\x80 \xd7 " , endian ) == - 120.0
321+ assert util .f32 (b"\x00 \x00 \xf0 \xc2 " , endian ) == - 120.0
322+ assert util .f64 (b"\x00 \x00 \x00 \x00 \x00 \x00 \x5e \xc0 " , endian ) == - 120.0
299323
300324 endian = "big"
301325 sign = True
302326 assert util .p8 (- 120 , endian ) == b"\x88 "
303327 assert util .p16 (- 120 , endian ) == b"\xff \x88 "
304328 assert util .p32 (- 120 , endian ) == b"\xff \xff \xff \x88 "
305329 assert util .p64 (- 120 , endian ) == b"\xff \xff \xff \xff \xff \xff \xff \x88 "
330+ assert util .pf16 (- 120.0 , endian ) == b"\xd7 \x80 "
331+ assert util .pf32 (- 120.0 , endian ) == b"\xc2 \xf0 \x00 \x00 "
332+ assert util .pf64 (- 120.0 , endian ) == b"\xc0 \x5e \x00 \x00 \x00 \x00 \x00 \x00 "
306333 assert util .u8 (b"\x88 " , endian , sign ) == - 120
307334 assert util .u16 (b"\xff \x88 " , endian , sign ) == - 120
308335 assert util .u32 (b"\xff \xff \xff \x88 " , endian , sign ) == - 120
309336 assert util .u64 (b"\xff \xff \xff \xff \xff \xff \xff \x88 " , endian , sign ) == - 120
337+ assert util .f16 (b"\xd7 \x80 " , endian ) == - 120.0
338+ assert util .f32 (b"\xc2 \xf0 \x00 \x00 " , endian ) == - 120.0
339+ assert util .f64 (b"\xc0 \x5e \x00 \x00 \x00 \x00 \x00 \x00 " , endian ) == - 120.0
310340
311341 assert util .pack (1 , 24 ) == b"\x01 \x00 \x00 "
312342 assert util .unpack (b"\x01 \x00 \x00 " , 24 ) == 1
0 commit comments