4
* 2002-May-25 Jason Rohrer
10
#include "minorGems/math/BigInt.h"
19
unsigned char intA[] = { 100, 200, 99, 23, 89, 100, 233 };
21
unsigned char intB[] = { 10, 78, 243, 9, 0 };
23
BigInt *bigIntA = new BigInt( 1, 7, intA );
25
BigInt *bigIntB = new BigInt( -1, 5, intB );
27
char *hexA = bigIntA->convertToHexString();
28
char *hexB = bigIntB->convertToHexString();
31
printf( "A = %s\n", hexA );
32
printf( "B = %s\n", hexB );
34
BigInt *sum = bigIntA->subtract( bigIntB );
36
char *hexSum = sum->convertToHexString();
37
printf( "Sum = %s\n", hexSum );
51
BigInt *intC = new BigInt( c );
52
char *hexC = intC->convertToHexString();
54
printf( "C = %s\n", hexC );
56
int extractedC = intC->convertToInt();
58
if( extractedC == c ) {
62
printf( "not equal\n" );
72
printf( "Testing pair operations for all pairs in -%d..%d ...\n",
77
for( int i=-limit; i<limit && !failed; i++ ) {
78
BigInt *intI = new BigInt( i );
80
for( int j=-limit; j<limit && !failed; j++ ) {
81
BigInt *intJ = new BigInt( j );
83
BigInt *intSum = intI->add( intJ );
84
BigInt *intDiff = intI->subtract( intJ );
89
if( sum != intSum->convertToInt() ) {
90
printf( "sum test failed for %d, %d\n", i, j );
91
printf( " real sum = %d, computed sum = %d\n",
92
sum, intSum->convertToInt() );
96
if( diff != intDiff->convertToInt() ) {
97
printf( "diff test failed for %d, %d\n", i, j );
98
printf( " real diff = %d, computed diff = %d\n",
99
diff, intDiff->convertToInt() );
103
if( intI->isLessThan( intJ ) && ( i >= j ) ) {
104
printf( "first less than test failed for %d, %d\n", i, j );
108
if( intJ->isLessThan( intI ) && ( j >= i ) ) {
109
printf( "second less than test failed for %d, %d\n", i, j );
113
if( intI->isEqualTo( intJ ) && ( i != j ) ) {
114
printf( "equality test failed for %d, %d\n", i, j );
129
printf( "test passed\n" );