miracl / core

MIRACL Core
Apache License 2.0
206 stars 68 forks source link

FP256BN Plus and math.MaxInt64 #44

Open ale-linux opened 3 years ago

ale-linux commented 3 years ago

The following test

import (
    "math"
    "math/rand"
    "testing"

    "github.com/stretchr/testify/assert"
)

func TestMaxInt(t *testing.T) {
    r1 := int(rand.Int63())
    r2 := int(rand.Int63())

    i1 := FP256BN.NewBIGint(math.MaxInt64 - r1)
    i2 := FP256BN.NewBIGint(r1)
    i3 := FP256BN.NewBIGint(math.MaxInt64 - r2)
    i4 := FP256BN.NewBIGint(r2)
    i5 := FP256BN.NewBIGint(2)

    i6 := i1.Plus(i2).Plus(i3).Plus(i4).Plus(i5)

    zero := FP256BN.NewBIGint(0)

    assert.NotEqual(t, zero, i6)
}

fails whereas it looks like it should be succeeding. The test was conducted with go version go1.14.4 linux/amd64 against the curve

32. FP256BN

generated by config64.py (git revision 5387e6a895243dde0).