40 lines
1.1 KiB
C++
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
|