feat(big): add SBigFromBinary

This commit is contained in:
fallenoak 2023-01-29 20:37:09 -06:00 committed by GitHub
parent 902ddcf7d8
commit 6c83070380
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 66 additions and 0 deletions

View file

@ -68,6 +68,33 @@ TEST_CASE("MakeLarge", "[big]") {
}
}
TEST_CASE("SBigFromBinary", "[big]") {
SECTION("creates bigdata from 0") {
BigData* num;
SBigNew(&num);
uint32_t data = 0;
SBigFromBinary(num, reinterpret_cast<uint8_t*>(&data), sizeof(data));
CHECK(num->Primary().Count() == 1);
CHECK(num->Primary()[0] == 0);
SBigDel(num);
}
SECTION("creates bigdata from 0x123456789ABCDEF0") {
BigData* num;
SBigNew(&num);
uint64_t data = 0x123456789ABCDEF0;
SBigFromBinary(num, reinterpret_cast<uint8_t*>(&data), sizeof(data));
CHECK(num->Primary().Count() == 2);
CHECK(num->Primary()[0] == 0x9ABCDEF0);
CHECK(num->Primary()[1] == 0x12345678);
SBigDel(num);
}
}
TEST_CASE("SBigFromUnsigned", "[big]") {
SECTION("creates bigdata from 0") {
BigData* num;
@ -121,4 +148,20 @@ TEST_CASE("SBigToBinaryBuffer", "[big]") {
SBigDel(num);
}
SECTION("returns expected buffer for bigdata representing 0x123456789ABCDEF0") {
BigData* num;
SBigNew(&num);
uint64_t data = 0x123456789ABCDEF0;
SBigFromBinary(num, reinterpret_cast<uint8_t*>(&data), sizeof(data));
uint8_t buffer[8];
uint32_t bytes;
SBigToBinaryBuffer(num, buffer, sizeof(buffer), &bytes);
CHECK(bytes == 8);
CHECK(*reinterpret_cast<uint64_t*>(buffer) == 0x123456789ABCDEF0);
SBigDel(num);
}
}