You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
2.0 KiB

package poseidon
import (
"math/big"
"testing"
"github.com/stretchr/testify/assert"
)
func TestPoseidonHash(t *testing.T) {
b0 := big.NewInt(0)
b1 := big.NewInt(1)
b_1 := big.NewInt(-1)
bM := new(big.Int).SetUint64(18446744069414584321)
h, err := Hash([]*big.Int{b0, b0, b0, b0, b0, b0, b0, b0}, []*big.Int{b0, b0, b0, b0})
assert.Nil(t, err)
assert.Equal(t,
[CAPLEN]uint64{
4330397376401421145,
14124799381142128323,
8742572140681234676,
14345658006221440202,
}, h,
)
h, err = Hash([]*big.Int{b1, b1, b1, b1, b1, b1, b1, b1}, []*big.Int{b1, b1, b1, b1})
assert.Nil(t, err)
assert.Equal(t,
[CAPLEN]uint64{
16428316519797902711,
13351830238340666928,
682362844289978626,
12150588177266359240,
}, h,
)
h, err = Hash([]*big.Int{b1, b1, b1, b1, b1, b1, b1, b1}, []*big.Int{b1, b1, b1, b1})
assert.Nil(t, err)
assert.Equal(t,
[CAPLEN]uint64{
16428316519797902711,
13351830238340666928,
682362844289978626,
12150588177266359240,
}, h,
)
h, err = Hash([]*big.Int{b_1, b_1, b_1, b_1, b_1, b_1, b_1, b_1}, []*big.Int{b_1, b_1, b_1, b_1})
assert.Nil(t, err)
assert.Equal(t,
[CAPLEN]uint64{
13691089994624172887,
15662102337790434313,
14940024623104903507,
10772674582659927682,
}, h,
)
h, err = Hash([]*big.Int{bM, bM, bM, bM, bM, bM, bM, bM}, []*big.Int{b0, b0, b0, b0})
assert.Nil(t, err)
assert.Equal(t,
[CAPLEN]uint64{
4330397376401421145,
14124799381142128323,
8742572140681234676,
14345658006221440202,
}, h,
)
h, err = Hash([]*big.Int{
new(big.Int).SetUint64(923978),
new(big.Int).SetUint64(235763497586),
new(big.Int).SetUint64(9827635653498),
new(big.Int).SetUint64(112870),
new(big.Int).SetUint64(289273673480943876),
new(big.Int).SetUint64(230295874986745876),
new(big.Int).SetUint64(6254867324987),
new(big.Int).SetUint64(2087),
}, []*big.Int{b0, b0, b0, b0})
assert.Nil(t, err)
assert.Equal(t,
[CAPLEN]uint64{
1892171027578617759,
984732815927439256,
7866041765487844082,
8161503938059336191,
}, h,
)
}