feat(big): add SBigInc

This commit is contained in:
Adam Heinermann 2024-11-15 04:00:22 -08:00 committed by superp00t
parent 896c3c0414
commit 149a739a9d
3 changed files with 37 additions and 0 deletions

View file

@ -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);

View file

@ -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);

View file

@ -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") {