summaryrefslogtreecommitdiff
path: root/src/pkg/big/nat_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/big/nat_test.go')
-rwxr-xr-xsrc/pkg/big/nat_test.go162
1 files changed, 75 insertions, 87 deletions
diff --git a/src/pkg/big/nat_test.go b/src/pkg/big/nat_test.go
index 8545981c0..0bcb94554 100755
--- a/src/pkg/big/nat_test.go
+++ b/src/pkg/big/nat_test.go
@@ -6,27 +6,24 @@ package big
import "testing"
-type cmpTest struct {
+var cmpTests = []struct {
x, y nat
r int
-}
-
-
-var cmpTests = []cmpTest{
- cmpTest{nil, nil, 0},
- cmpTest{nil, nat{}, 0},
- cmpTest{nat{}, nil, 0},
- cmpTest{nat{}, nat{}, 0},
- cmpTest{nat{0}, nat{0}, 0},
- cmpTest{nat{0}, nat{1}, -1},
- cmpTest{nat{1}, nat{0}, 1},
- cmpTest{nat{1}, nat{1}, 0},
- cmpTest{nat{0, _M}, nat{1}, 1},
- cmpTest{nat{1}, nat{0, _M}, -1},
- cmpTest{nat{1, _M}, nat{0, _M}, 1},
- cmpTest{nat{0, _M}, nat{1, _M}, -1},
- cmpTest{nat{16, 571956, 8794, 68}, nat{837, 9146, 1, 754489}, -1},
- cmpTest{nat{34986, 41, 105, 1957}, nat{56, 7458, 104, 1957}, 1},
+}{
+ {nil, nil, 0},
+ {nil, nat{}, 0},
+ {nat{}, nil, 0},
+ {nat{}, nat{}, 0},
+ {nat{0}, nat{0}, 0},
+ {nat{0}, nat{1}, -1},
+ {nat{1}, nat{0}, 1},
+ {nat{1}, nat{1}, 0},
+ {nat{0, _M}, nat{1}, 1},
+ {nat{1}, nat{0, _M}, -1},
+ {nat{1, _M}, nat{0, _M}, 1},
+ {nat{0, _M}, nat{1, _M}, -1},
+ {nat{16, 571956, 8794, 68}, nat{837, 9146, 1, 754489}, -1},
+ {nat{34986, 41, 105, 1957}, nat{56, 7458, 104, 1957}, 1},
}
@@ -47,24 +44,24 @@ type argNN struct {
var sumNN = []argNN{
- argNN{},
- argNN{nat{1}, nil, nat{1}},
- argNN{nat{1111111110}, nat{123456789}, nat{987654321}},
- argNN{nat{0, 0, 0, 1}, nil, nat{0, 0, 0, 1}},
- argNN{nat{0, 0, 0, 1111111110}, nat{0, 0, 0, 123456789}, nat{0, 0, 0, 987654321}},
- argNN{nat{0, 0, 0, 1}, nat{0, 0, _M}, nat{0, 0, 1}},
+ {},
+ {nat{1}, nil, nat{1}},
+ {nat{1111111110}, nat{123456789}, nat{987654321}},
+ {nat{0, 0, 0, 1}, nil, nat{0, 0, 0, 1}},
+ {nat{0, 0, 0, 1111111110}, nat{0, 0, 0, 123456789}, nat{0, 0, 0, 987654321}},
+ {nat{0, 0, 0, 1}, nat{0, 0, _M}, nat{0, 0, 1}},
}
var prodNN = []argNN{
- argNN{},
- argNN{nil, nil, nil},
- argNN{nil, nat{991}, nil},
- argNN{nat{991}, nat{991}, nat{1}},
- argNN{nat{991 * 991}, nat{991}, nat{991}},
- argNN{nat{0, 0, 991 * 991}, nat{0, 991}, nat{0, 991}},
- argNN{nat{1 * 991, 2 * 991, 3 * 991, 4 * 991}, nat{1, 2, 3, 4}, nat{991}},
- argNN{nat{4, 11, 20, 30, 20, 11, 4}, nat{1, 2, 3, 4}, nat{4, 3, 2, 1}},
+ {},
+ {nil, nil, nil},
+ {nil, nat{991}, nil},
+ {nat{991}, nat{991}, nat{1}},
+ {nat{991 * 991}, nat{991}, nat{991}},
+ {nat{0, 0, 991 * 991}, nat{0, 991}, nat{0, 991}},
+ {nat{1 * 991, 2 * 991, 3 * 991, 4 * 991}, nat{1, 2, 3, 4}, nat{991}},
+ {nat{4, 11, 20, 30, 20, 11, 4}, nat{1, 2, 3, 4}, nat{4, 3, 2, 1}},
}
@@ -111,25 +108,22 @@ func TestFunNN(t *testing.T) {
}
-type mulRangeN struct {
+var mulRangesN = []struct {
a, b uint64
prod string
-}
-
-
-var mulRangesN = []mulRangeN{
- mulRangeN{0, 0, "0"},
- mulRangeN{1, 1, "1"},
- mulRangeN{1, 2, "2"},
- mulRangeN{1, 3, "6"},
- mulRangeN{10, 10, "10"},
- mulRangeN{0, 100, "0"},
- mulRangeN{0, 1e9, "0"},
- mulRangeN{1, 0, "1"}, // empty range
- mulRangeN{100, 1, "1"}, // empty range
- mulRangeN{1, 10, "3628800"}, // 10!
- mulRangeN{1, 20, "2432902008176640000"}, // 20!
- mulRangeN{1, 100,
+}{
+ {0, 0, "0"},
+ {1, 1, "1"},
+ {1, 2, "2"},
+ {1, 3, "6"},
+ {10, 10, "10"},
+ {0, 100, "0"},
+ {0, 1e9, "0"},
+ {1, 0, "1"}, // empty range
+ {100, 1, "1"}, // empty range
+ {1, 10, "3628800"}, // 10!
+ {1, 20, "2432902008176640000"}, // 20!
+ {1, 100,
"933262154439441526816992388562667004907159682643816214685929" +
"638952175999932299156089414639761565182862536979208272237582" +
"51185210916864000000000000000000000000", // 100!
@@ -173,18 +167,15 @@ func BenchmarkMul(b *testing.B) {
}
-type str struct {
+var tab = []struct {
x nat
b int
s string
-}
-
-
-var tab = []str{
- str{nil, 10, "0"},
- str{nat{1}, 10, "1"},
- str{nat{10}, 10, "10"},
- str{nat{1234567890}, 10, "1234567890"},
+}{
+ {nil, 10, "0"},
+ {nat{1}, 10, "1"},
+ {nat{10}, 10, "10"},
+ {nat{1234567890}, 10, "1234567890"},
}
@@ -228,12 +219,12 @@ type shiftTest struct {
var leftShiftTests = []shiftTest{
- shiftTest{nil, 0, nil},
- shiftTest{nil, 1, nil},
- shiftTest{natOne, 0, natOne},
- shiftTest{natOne, 1, natTwo},
- shiftTest{nat{1 << (_W - 1)}, 1, nat{0}},
- shiftTest{nat{1 << (_W - 1), 0}, 1, nat{0, 1}},
+ {nil, 0, nil},
+ {nil, 1, nil},
+ {natOne, 0, natOne},
+ {natOne, 1, natTwo},
+ {nat{1 << (_W - 1)}, 1, nat{0}},
+ {nat{1 << (_W - 1), 0}, 1, nat{0, 1}},
}
@@ -252,13 +243,13 @@ func TestShiftLeft(t *testing.T) {
var rightShiftTests = []shiftTest{
- shiftTest{nil, 0, nil},
- shiftTest{nil, 1, nil},
- shiftTest{natOne, 0, natOne},
- shiftTest{natOne, 1, nil},
- shiftTest{natTwo, 1, natOne},
- shiftTest{nat{0, 1}, 1, nat{1 << (_W - 1)}},
- shiftTest{nat{2, 1, 1}, 1, nat{1<<(_W-1) + 1, 1 << (_W - 1)}},
+ {nil, 0, nil},
+ {nil, 1, nil},
+ {natOne, 0, natOne},
+ {natOne, 1, nil},
+ {natTwo, 1, natOne},
+ {nat{0, 1}, 1, nat{1 << (_W - 1)}},
+ {nat{2, 1, 1}, 1, nat{1<<(_W-1) + 1, 1 << (_W - 1)}},
}
@@ -284,12 +275,12 @@ type modWTest struct {
var modWTests32 = []modWTest{
- modWTest{"23492635982634928349238759823742", "252341", "220170"},
+ {"23492635982634928349238759823742", "252341", "220170"},
}
var modWTests64 = []modWTest{
- modWTest{"6527895462947293856291561095690465243862946", "524326975699234", "375066989628668"},
+ {"6527895462947293856291561095690465243862946", "524326975699234", "375066989628668"},
}
@@ -301,7 +292,7 @@ func runModWTests(t *testing.T, tests []modWTest) {
r := in.abs.modW(d.abs[0])
if r != out.abs[0] {
- t.Errorf("#%d failed: got %s want %s\n", i, r, out)
+ t.Errorf("#%d failed: got %s want %s", i, r, out)
}
}
}
@@ -322,26 +313,23 @@ func TestTrailingZeroBits(t *testing.T) {
x--
for i := 0; i < _W; i++ {
if trailingZeroBits(x) != i {
- t.Errorf("Failed at step %d: x: %x got: %d\n", i, x, trailingZeroBits(x))
+ t.Errorf("Failed at step %d: x: %x got: %d", i, x, trailingZeroBits(x))
}
x <<= 1
}
}
-type expNNTest struct {
+var expNNTests = []struct {
x, y, m string
out string
-}
-
-
-var expNNTests = []expNNTest{
- expNNTest{"0x8000000000000000", "2", "", "0x40000000000000000000000000000000"},
- expNNTest{"0x8000000000000000", "2", "6719", "4944"},
- expNNTest{"0x8000000000000000", "3", "6719", "5447"},
- expNNTest{"0x8000000000000000", "1000", "6719", "1603"},
- expNNTest{"0x8000000000000000", "1000000", "6719", "3199"},
- expNNTest{
+}{
+ {"0x8000000000000000", "2", "", "0x40000000000000000000000000000000"},
+ {"0x8000000000000000", "2", "6719", "4944"},
+ {"0x8000000000000000", "3", "6719", "5447"},
+ {"0x8000000000000000", "1000", "6719", "1603"},
+ {"0x8000000000000000", "1000000", "6719", "3199"},
+ {
"2938462938472983472983659726349017249287491026512746239764525612965293865296239471239874193284792387498274256129746192347",
"298472983472983471903246121093472394872319615612417471234712061",
"29834729834729834729347290846729561262544958723956495615629569234729836259263598127342374289365912465901365498236492183464",