summaryrefslogtreecommitdiff
path: root/src/lib/bignum_test.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2009-04-30 14:43:06 -0700
committerRobert Griesemer <gri@golang.org>2009-04-30 14:43:06 -0700
commitee964bbfd5e8c4a619b1724bb20008ab2e0b5b42 (patch)
treef890b8124586532424f05f77bc451376630834a6 /src/lib/bignum_test.go
parent758e38295fd2b19568d98129ea80e610dc496cfe (diff)
downloadgolang-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.go31
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);
}