#include #include BH_UNIT_TEST(Int8) { char *str; size_t size; BH_VERIFY(str = BH_StringFromInt8s(-13, 16)); BH_VERIFY(BH_StringToInt8s(str, &size, 16) == -13); BH_VERIFY(size == 2); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt8s(-13, 10)); BH_VERIFY(BH_StringToInt8s(str, &size, 10) == -13); BH_VERIFY(size == 3); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt8s(-13, 8)); BH_VERIFY(BH_StringToInt8s(str, &size, 8) == -13); BH_VERIFY(size == 3); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt8s(-13, 2)); BH_VERIFY(BH_StringToInt8s(str, &size, 2) == -13); BH_VERIFY(size == 5); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt8u(200, 16)); BH_VERIFY(BH_StringToInt8u(str, &size, 16) == 200); BH_VERIFY(size == 2); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt8u(200, 10)); BH_VERIFY(BH_StringToInt8u(str, &size, 10) == 200); BH_VERIFY(size == 3); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt8u(200, 8)); BH_VERIFY(BH_StringToInt8u(str, &size, 8) == 200); BH_VERIFY(size == 3); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt8u(200, 2)); BH_VERIFY(BH_StringToInt8u(str, &size, 2) == 200); BH_VERIFY(size == 8); BH_StringFree(str); return 0; } BH_UNIT_TEST(Int16) { char *str; size_t size; BH_VERIFY(str = BH_StringFromInt16s(-1234, 16)); BH_VERIFY(BH_StringToInt16s(str, &size, 16) == -1234); BH_VERIFY(size == 4); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt16s(-1234, 10)); BH_VERIFY(BH_StringToInt16s(str, &size, 10) == -1234); BH_VERIFY(size == 5); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt16s(-1234, 8)); BH_VERIFY(BH_StringToInt16s(str, &size, 8) == -1234); BH_VERIFY(size == 5); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt16s(-1234, 2)); BH_VERIFY(BH_StringToInt16s(str, &size, 2) == -1234); BH_VERIFY(size == 12); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt16u(43210, 16)); BH_VERIFY(BH_StringToInt16u(str, &size, 16) == 43210); BH_VERIFY(size == 4); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt16u(43210, 10)); BH_VERIFY(BH_StringToInt16u(str, &size, 10) == 43210); BH_VERIFY(size == 5); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt16u(43210, 8)); BH_VERIFY(BH_StringToInt16u(str, &size, 8) == 43210); BH_VERIFY(size == 6); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt16u(43210, 2)); BH_VERIFY(BH_StringToInt16u(str, &size, 2) == 43210); BH_VERIFY(size == 16); BH_StringFree(str); return 0; } BH_UNIT_TEST(Int32) { char *str; size_t size; BH_VERIFY(str = BH_StringFromInt32s(-1234567890l, 16)); BH_VERIFY(BH_StringToInt32s(str, &size, 16) == -1234567890l); BH_VERIFY(size == 9); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt32s(-1234567890l, 10)); BH_VERIFY(BH_StringToInt32s(str, &size, 10) == -1234567890l); BH_VERIFY(size == 11); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt32s(-1234567890l, 8)); BH_VERIFY(BH_StringToInt32s(str, &size, 8) == -1234567890l); BH_VERIFY(size == 12); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt32s(-1234567890l, 2)); BH_VERIFY(BH_StringToInt32s(str, &size, 2) == -1234567890l); BH_VERIFY(size == 32); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt32u(3456789012ul, 16)); BH_VERIFY(BH_StringToInt32u(str, &size, 16) == 3456789012ul); BH_VERIFY(size == 8); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt32u(3456789012ul, 10)); BH_VERIFY(BH_StringToInt32u(str, &size, 10) == 3456789012ul); BH_VERIFY(size == 10); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt32u(3456789012ul, 8)); BH_VERIFY(BH_StringToInt32u(str, &size, 8) == 3456789012ul); BH_VERIFY(size == 11); BH_StringFree(str); BH_VERIFY(str = BH_StringFromInt32u(3456789012ul, 2)); BH_VERIFY(BH_StringToInt32u(str, &size, 2) == 3456789012ul); BH_VERIFY(size == 32); BH_StringFree(str); return 0; } BH_UNIT_TEST(Parsing) { size_t size; BH_VERIFY(BH_StringToInt32s(" 0x1234", &size, 16) == 0x1234); BH_VERIFY(size == 9); BH_VERIFY(BH_StringToInt32s(" 12345", &size, 10) == 12345); BH_VERIFY(size == 8); BH_VERIFY(BH_StringToInt32s(" 0123", &size, 8) == 0123); BH_VERIFY(size == 7); BH_VERIFY(BH_StringToInt32s(" 0b1111Hello", &size, 2) == 15); BH_VERIFY(size == 9); BH_VERIFY(BH_StringToInt32s(" 0x1234", &size, 0) == 0x1234); BH_VERIFY(size == 9); BH_VERIFY(BH_StringToInt32s(" 0123", &size, 0) == 0123); BH_VERIFY(size == 7); BH_VERIFY(BH_StringToInt32s(" 123", &size, 0) == 123); BH_VERIFY(size == 6); BH_VERIFY(BH_StringToInt32s(" 0b1111", &size, 0) == 15); BH_VERIFY(size == 9); BH_VERIFY(BH_StringToInt32s(" 12345Hello", &size, 10) == 12345); BH_VERIFY(size == 8); BH_VERIFY(BH_StringToInt32s(" Hello", &size, 10) == 0); BH_VERIFY(size == 0); return 0; } int main(int argc, char **argv) { BH_UNUSED(argc); BH_UNUSED(argv); BH_UNIT_ADD(Int8); BH_UNIT_ADD(Int16); BH_UNIT_ADD(Int32); BH_UNIT_ADD(Parsing); return BH_UnitRun(); }