mirror of
https://github.com/thunderbrewhq/squall.git
synced 2025-12-12 02:22:30 +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);
|
||||
}
|
||||
|
||||
void SBigInc(BigData* a, BigData* b) {
|
||||
Add(a->Primary(), b->Primary(), 1);
|
||||
}
|
||||
|
||||
void SBigMod(BigData* a, BigData* b, BigData* c) {
|
||||
uint32_t allocCount = 0;
|
||||
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 SBigInc(BigData* a, BigData* b);
|
||||
|
||||
void SBigMod(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);
|
||||
}
|
||||
}
|
||||
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]") {
|
||||
SECTION("mods 7 by 4") {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue