mirror of
https://github.com/thunderbrewhq/squall.git
synced 2025-12-12 10:32:29 +00:00
feat(big): add SBigInc
This commit is contained in:
parent
896c3c0414
commit
149a739a9d
3 changed files with 37 additions and 0 deletions
|
|
@ -56,6 +56,10 @@ void SBigFromUnsigned(BigData* num, uint32_t val) {
|
||||||
FromUnsigned(num->Primary(), val);
|
FromUnsigned(num->Primary(), val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SBigInc(BigData* a, BigData* b) {
|
||||||
|
Add(a->Primary(), b->Primary(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
void SBigMod(BigData* a, BigData* b, BigData* c) {
|
void SBigMod(BigData* a, BigData* b, BigData* c) {
|
||||||
uint32_t allocCount = 0;
|
uint32_t allocCount = 0;
|
||||||
auto& scratch = a->Stack().Alloc(&allocCount);
|
auto& scratch = a->Stack().Alloc(&allocCount);
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,8 @@ void SBigFromStr(BigData* num, const char* str);
|
||||||
|
|
||||||
void SBigFromUnsigned(BigData* num, uint32_t val);
|
void SBigFromUnsigned(BigData* num, uint32_t val);
|
||||||
|
|
||||||
|
void SBigInc(BigData* a, BigData* b);
|
||||||
|
|
||||||
void SBigMod(BigData* a, BigData* b, BigData* c);
|
void SBigMod(BigData* a, BigData* b, BigData* c);
|
||||||
|
|
||||||
void SBigMul(BigData* a, BigData* b, BigData* c);
|
void SBigMul(BigData* a, BigData* b, BigData* c);
|
||||||
|
|
|
||||||
31
test/Big.cpp
31
test/Big.cpp
|
|
@ -330,6 +330,37 @@ TEST_CASE("SBigFromUnsigned", "[big]") {
|
||||||
SBigDel(num);
|
SBigDel(num);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
TEST_CASE("SBigInc", "[big]") {
|
||||||
|
BigDataTest a, b;
|
||||||
|
|
||||||
|
SECTION("increments from 0") {
|
||||||
|
SBigFromUnsigned(b, 0);
|
||||||
|
|
||||||
|
SBigInc(a, b);
|
||||||
|
|
||||||
|
CHECK(a->Primary().Count() == 1);
|
||||||
|
CHECK(a->Primary()[0] == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("increments from max uint") {
|
||||||
|
SBigFromUnsigned(b, UINT32_MAX);
|
||||||
|
|
||||||
|
SBigInc(a, b);
|
||||||
|
|
||||||
|
CHECK(a->Primary().Count() == 2);
|
||||||
|
CHECK(a->Primary()[0] == 0);
|
||||||
|
CHECK(a->Primary()[1] == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("increments from a number") {
|
||||||
|
SBigFromUnsigned(b, 1337);
|
||||||
|
|
||||||
|
SBigInc(a, b);
|
||||||
|
|
||||||
|
CHECK(a->Primary().Count() == 1);
|
||||||
|
CHECK(a->Primary()[0] == 1338);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("SBigMod", "[big]") {
|
TEST_CASE("SBigMod", "[big]") {
|
||||||
SECTION("mods 7 by 4") {
|
SECTION("mods 7 by 4") {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue