Artifact f63bfb7b62919937ef211be72f92fc4d884e60890189175d364e5d82f5f652fe:
- File
tests/OFMessagePackTests.m
— part of check-in
[cb8e2e3fa6]
at
2024-03-17 22:40:58
on branch trunk
— Add OFMessagePackTests
Only tests for numbers so far. (user: js, size: 4593) [annotate] [blame] [check-ins using]
/* * Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE.QPL included in * the packaging of this file. * * Alternatively, it may be distributed under the terms of the GNU General * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #include "config.h" #import "ObjFW.h" #import "ObjFWTest.h" @interface OFMessagePackTests: OTTestCase @end @implementation OFMessagePackTests - (void)testMessagePackRepresentationForNumber { OTAssertEqualObjects([[OFNumber numberWithChar: -30] messagePackRepresentation], [OFData dataWithItems: "\xE2" count: 1]); OTAssertEqualObjects([[OFNumber numberWithChar: -33] messagePackRepresentation], [OFData dataWithItems: "\xD0\xDF" count: 2]); OTAssertEqualObjects([[OFNumber numberWithUnsignedChar: 127] messagePackRepresentation], [OFData dataWithItems: "\x7F" count: 1]); OTAssertEqualObjects([[OFNumber numberWithUnsignedChar: 128] messagePackRepresentation], [OFData dataWithItems: "\xCC\x80" count: 2]); OTAssertEqualObjects([[OFNumber numberWithShort: -129] messagePackRepresentation], [OFData dataWithItems: "\xD1\xFF\x7F" count: 3]); OTAssertEqualObjects([[OFNumber numberWithUnsignedShort: 256] messagePackRepresentation], [OFData dataWithItems: "\xCD\x01\x00" count: 3]); OTAssertEqualObjects([[OFNumber numberWithLong: -32769] messagePackRepresentation], [OFData dataWithItems: "\xD2\xFF\xFF\x7F\xFF" count: 5]); OTAssertEqualObjects([[OFNumber numberWithUnsignedLong: 65536] messagePackRepresentation], [OFData dataWithItems: "\xCE\x00\x01\x00\x00" count: 5]); OTAssertEqualObjects([[OFNumber numberWithLongLong: -2147483649] messagePackRepresentation], [OFData dataWithItems: "\xD3\xFF\xFF\xFF\xFF\x7F\xFF\xFF\xFF" count: 9]); OTAssertEqualObjects([[OFNumber numberWithUnsignedLongLong: 4294967296] messagePackRepresentation], [OFData dataWithItems: "\xCF\x00\x00\x00\x01\x00\x00\x00\x00" count: 9]); OTAssertEqualObjects([[OFNumber numberWithFloat: 1.25f] messagePackRepresentation], [OFData dataWithItems: "\xCA\x3F\xA0\x00\x00" count: 5]); OTAssertEqualObjects([[OFNumber numberWithDouble: 1.25] messagePackRepresentation], [OFData dataWithItems: "\xCB\x3F\xF4\x00\x00\x00\x00\x00\x00" count: 9]); } - (void)testObjectByParsingMessagePackForNumber { OTAssertEqualObjects([[OFData dataWithItems: "\xE2" count: 1] objectByParsingMessagePack], [OFNumber numberWithChar: -30]); OTAssertEqualObjects([[OFData dataWithItems: "\xD0\xDF" count: 2] objectByParsingMessagePack], [OFNumber numberWithChar: -33]); OTAssertEqualObjects([[OFData dataWithItems: "\x7F" count: 1] objectByParsingMessagePack], [OFNumber numberWithUnsignedChar: 127]); OTAssertEqualObjects([[OFData dataWithItems: "\xCC\x80" count: 2] objectByParsingMessagePack], [OFNumber numberWithUnsignedChar: 128]); OTAssertEqualObjects([[OFData dataWithItems: "\xD1\xFF\x7F" count: 3] objectByParsingMessagePack], [OFNumber numberWithShort: -129]); OTAssertEqualObjects([[OFData dataWithItems: "\xCD\x01\x00" count: 3] objectByParsingMessagePack], [OFNumber numberWithUnsignedShort: 256]); OTAssertEqualObjects( [[OFData dataWithItems: "\xD2\xFF\xFF\x7F\xFF" count: 5] objectByParsingMessagePack], [OFNumber numberWithLong: -32769]); OTAssertEqualObjects( [[OFData dataWithItems: "\xCE\x00\x01\x00\x00" count: 5] objectByParsingMessagePack], [OFNumber numberWithUnsignedLong: 65536]); OTAssertEqualObjects( [[OFData dataWithItems: "\xD3\xFF\xFF\xFF\xFF\x7F\xFF\xFF\xFF" count: 9] objectByParsingMessagePack], [OFNumber numberWithLongLong: -2147483649]); OTAssertEqualObjects( [[OFData dataWithItems: "\xCF\x00\x00\x00\x01\x00\x00\x00\x00" count: 9] objectByParsingMessagePack], [OFNumber numberWithUnsignedLongLong: 4294967296]); OTAssertEqualObjects( [[OFData dataWithItems: "\xCA\x3F\xA0\x00\x00" count: 5] objectByParsingMessagePack], [OFNumber numberWithFloat: 1.25f]); OTAssertEqualObjects( [[OFData dataWithItems: "\xCB\x3F\xF4\x00\x00\x00\x00\x00\x00" count: 9] objectByParsingMessagePack], [OFNumber numberWithDouble: 1.25]); } @end