aboutsummaryrefslogtreecommitdiff
path: root/src/math/big/int_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/big/int_test.go')
-rw-r--r--src/math/big/int_test.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/math/big/int_test.go b/src/math/big/int_test.go
index 42e810b3b8..46e2ff1203 100644
--- a/src/math/big/int_test.go
+++ b/src/math/big/int_test.go
@@ -1536,6 +1536,26 @@ func TestSqrt(t *testing.T) {
}
}
+// We can't test this together with the other Exp tests above because
+// it requires a different receiver setup.
+func TestIssue22830(t *testing.T) {
+ one := new(Int).SetInt64(1)
+ base, _ := new(Int).SetString("84555555300000000000", 10)
+ mod, _ := new(Int).SetString("66666670001111111111", 10)
+ want, _ := new(Int).SetString("17888885298888888889", 10)
+
+ var tests = []int64{
+ 0, 1, -1,
+ }
+
+ for _, n := range tests {
+ m := NewInt(n)
+ if got := m.Exp(base, one, mod); got.Cmp(want) != 0 {
+ t.Errorf("(%v).Exp(%s, 1, %s) = %s, want %s", n, base, mod, got, want)
+ }
+ }
+}
+
func BenchmarkSqrt(b *testing.B) {
n, _ := new(Int).SetString("1"+strings.Repeat("0", 1001), 10)
b.ResetTimer()