const std = @import("std"); pub const msgpack = @import("msgpack"); const deserialise = msgpack.deserialise; fn test_uint(bytes: []const u8, expected: u64) !void { const alloc = std.testing.allocator; const obj = try deserialise(alloc, bytes); defer obj.deinit(alloc); try std.testing.expectEqual(expected, obj.uinteger); } test "pos fixint" { try test_uint(&[_]u8{0x00}, std.math.minInt(u8)); try test_uint(&[_]u8{0x07}, 0x07); try test_uint(&[_]u8{0x7F}, 0x7F); } test "int u8" { try test_uint(&[_]u8{ 0xcc, 0x00 }, std.math.minInt(u8)); try test_uint(&[_]u8{ 0xcc, 0xff }, std.math.maxInt(u8)); } test "int u16" { try test_uint(&[_]u8{ 0xcd, 0x00, 0x00 }, std.math.minInt(u16)); try test_uint(&[_]u8{ 0xcd, 0xff, 0xff }, std.math.maxInt(u16)); } test "int u32" { try test_uint(&[_]u8{ 0xce, 0x00, 0x00, 0x00, 0x00 }, std.math.minInt(u32)); try test_uint(&[_]u8{ 0xce, 0xff, 0xff, 0xff, 0xff }, std.math.maxInt(u32)); } test "int u64" { try test_uint(&[_]u8{ 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, std.math.minInt(u64)); try test_uint(&[_]u8{ 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, std.math.maxInt(u64)); }