Files
algorithms/src/tmp/ImplementingUsefulAlgorithms/LargeNumbers/LargeNumberTestAuto.h
2026-01-25 09:28:09 +03:00

40 lines
1.1 KiB
C++

#ifndef IGMDK_LARGE_NUMBER_TEST_AUTO_H
#define IGMDK_LARGE_NUMBER_TEST_AUTO_H
#include "LargeNumber.h"
#include "LargeRational.h"
namespace igmdk{
void testNumberAuto()
{
assert((-Number(0) - Number(2)) == (Number(0) - Number(2)));
assert((Number(2) - Number(0)) == (Number(2) - -Number(0)));
Number m = power(Number(2), Number(128));
m >>= 125;
assert(m == Number(8));
m <<= 125;
assert(power(Number(2), Number(2)) == Number(4));
assert(Number(4) % Number(3) == Number(1));
assert(modInverse(Number(4), Number(7)) == Number(2));
assert((Number(-11) % Number(103)) == Number(-11));
assert(gcd(m, Number(3)) == Number(1));
assert(sqrtInt(Number(99)) == Number(9));
assert(modPower(Number(2), Number(2), Number(3)) == Number(1));
assert(isPrime(Number((3))));
assert(isPrime(Number((53))));
assert(!isPrime(Number((616460792))));
assert(Number(-23).toDecimalString() == "-23");
assert(Number("-23") == Number(-23));
}
void testAllAutoLargeNumber()
{
DEBUG("testAllAutoLargeNumber");
testNumberAuto();
}
}//end namespace
#endif