diff options
| author | Robert Griesemer <gri@golang.org> | 2009-04-30 14:43:06 -0700 | 
|---|---|---|
| committer | Robert Griesemer <gri@golang.org> | 2009-04-30 14:43:06 -0700 | 
| commit | ee964bbfd5e8c4a619b1724bb20008ab2e0b5b42 (patch) | |
| tree | f890b8124586532424f05f77bc451376630834a6 /src/lib/bignum_test.go | |
| parent | 758e38295fd2b19568d98129ea80e610dc496cfe (diff) | |
| download | golang-ee964bbfd5e8c4a619b1724bb20008ab2e0b5b42.tar.gz | |
- incorporated feedback per rsc
- fixed a bug and added corresponding test case
R=rsc
DELTA=114  (18 added, 29 deleted, 67 changed)
OCL=28114
CL=28128
Diffstat (limited to 'src/lib/bignum_test.go')
| -rw-r--r-- | src/lib/bignum_test.go | 31 | 
1 files changed, 22 insertions, 9 deletions
| diff --git a/src/lib/bignum_test.go b/src/lib/bignum_test.go index d8d214dd7..9351c2ebf 100644 --- a/src/lib/bignum_test.go +++ b/src/lib/bignum_test.go @@ -20,19 +20,28 @@ const (  )  func natFromString(s string, base uint, slen *int) bignum.Natural { -	x, dummy := bignum.NatFromString(s, base, slen); +	x, _, len := bignum.NatFromString(s, base); +	if slen != nil { +		*slen = len; +	}  	return x;  }  func intFromString(s string, base uint, slen *int) *bignum.Integer { -	x, dummy := bignum.IntFromString(s, base, slen); +	x, _, len := bignum.IntFromString(s, base); +	if slen != nil { +		*slen = len; +	}  	return x;  }  func ratFromString(s string, base uint, slen *int) *bignum.Rational { -	x, dummy := bignum.RatFromString(s, base, slen); +	x, _, len := bignum.RatFromString(s, base); +	if slen != nil { +		*slen = len; +	}  	return x;  } @@ -79,14 +88,14 @@ func nat_eq(n uint, x, y bignum.Natural) {  func int_eq(n uint, x, y *bignum.Integer) {  	if x.Cmp(y) != 0 { -		tester.Fatalf("TEST failed: %s (%d)\nx = %v\ny = %v", test_msg, n, &x, &y); +		tester.Fatalf("TEST failed: %s (%d)\nx = %v\ny = %v", test_msg, n, x, y);  	}  }  func rat_eq(n uint, x, y *bignum.Rational) {  	if x.Cmp(y) != 0 { -		tester.Fatalf("TEST failed: %s (%d)\nx = %v\ny = %v", test_msg, n, &x, &y); +		tester.Fatalf("TEST failed: %s (%d)\nx = %v\ny = %v", test_msg, n, x, y);  	}  } @@ -117,7 +126,7 @@ func TestNatConv(t *testing.T) {  	test_msg = "NatConvD";  	x := bignum.Nat(100); -	y, b := bignum.NatFromString(fmt.Sprintf("%b", &x), 2, nil); +	y, b, _ := bignum.NatFromString(fmt.Sprintf("%b", &x), 2);  	nat_eq(100, y, x);  } @@ -133,9 +142,13 @@ func TestIntConv(t *testing.T) {  	int_eq(4, intFromString("077", 0, nil), bignum.Int(7*8 + 7));  	int_eq(5, intFromString("-077", 0, nil), bignum.Int(-(7*8 + 7)));  	int_eq(6, intFromString("0x1f", 0, nil), bignum.Int(1*16 + 15)); -	int_eq(7, intFromString("-0x1f", 0, nil), bignum.Int(-(1*16 + 15))); -	int_eq(8, intFromString("0x1fg", 0, &slen), bignum.Int(1*16 + 15)); -	int_eq(9, intFromString("-0x1fg", 0, &slen), bignum.Int(-(1*16 + 15))); +	int_eq(7, intFromString("-0x1f", 0, &slen), bignum.Int(-(1*16 + 15))); +	test(7, slen == 5); +	int_eq(8, intFromString("+0x1f", 0, &slen), bignum.Int(+(1*16 + 15))); +	test(8, slen == 5); +	int_eq(9, intFromString("0x1fg", 0, &slen), bignum.Int(1*16 + 15)); +	test(9, slen == 4); +	int_eq(10, intFromString("-0x1fg", 0, &slen), bignum.Int(-(1*16 + 15)));  	test(10, slen == 5);  } | 
