Skip to content

Commit

Permalink
complete unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
TAdev0 committed Jun 29, 2024
1 parent 938fa49 commit 1ae956e
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 5 deletions.
10 changes: 5 additions & 5 deletions pkg/hintrunner/zero/zerohint_keccak.go
Original file line number Diff line number Diff line change
Expand Up @@ -801,16 +801,16 @@ func newSplitInput9Hint(high9, low9, inputs hinter.ResOperander) hinter.Hinter {
high9Felt.SetBigInt(high9BigInt)
high9Mv := memory.MemoryValueFromFieldElement(&high9Felt)

var low3Felt fp.Element
high9Felt.SetBigInt(low9BigInt)
low9Mv := memory.MemoryValueFromFieldElement(&low3Felt)
var low9Felt fp.Element
low9Felt.SetBigInt(low9BigInt)
low9Mv := memory.MemoryValueFromFieldElement(&low9Felt)

err = vm.Memory.WriteToAddress(&low9Addr, &high9Mv)
err = vm.Memory.WriteToAddress(&low9Addr, &low9Mv)
if err != nil {
return err
}

return vm.Memory.WriteToAddress(&high9Addr, &low9Mv)
return vm.Memory.WriteToAddress(&high9Addr, &high9Mv)
},
}
}
Expand Down
92 changes: 92 additions & 0 deletions pkg/hintrunner/zero/zerohint_keccak_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -744,5 +744,97 @@ func TestZeroHintKeccak(t *testing.T) {
check: allVarValueEquals(map[string]*fp.Element{"high3": feltUint64(10), "low3": feltUint64(1)}),
},
},
"SplitInput9": {
{
operanders: []*hintOperander{
{Name: "inputs", Kind: fpRelative, Value: addr(2)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "real_input", Kind: apRelative, Value: feltUint64(0)},
{Name: "high3", Kind: uninitialized},
{Name: "low3", Kind: uninitialized},
},
makeHinter: func(ctx *hintTestContext) hinter.Hinter {
return newSplitInput9Hint(ctx.operanders["high3"], ctx.operanders["low3"], ctx.operanders["inputs"])
},
check: allVarValueEquals(map[string]*fp.Element{"high3": feltUint64(0), "low3": feltUint64(0)}),
},
{
operanders: []*hintOperander{
{Name: "inputs", Kind: fpRelative, Value: addr(2)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "real_input", Kind: apRelative, Value: feltUint64(100)},
{Name: "high3", Kind: uninitialized},
{Name: "low3", Kind: uninitialized},
},
makeHinter: func(ctx *hintTestContext) hinter.Hinter {
return newSplitInput9Hint(ctx.operanders["high3"], ctx.operanders["low3"], ctx.operanders["inputs"])
},
check: allVarValueEquals(map[string]*fp.Element{"high3": feltUint64(0), "low3": feltUint64(100)}),
},
{
operanders: []*hintOperander{
{Name: "inputs", Kind: fpRelative, Value: addr(2)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "real_input", Kind: apRelative, Value: feltUint64(16777216)},
{Name: "high3", Kind: uninitialized},
{Name: "low3", Kind: uninitialized},
},
makeHinter: func(ctx *hintTestContext) hinter.Hinter {
return newSplitInput9Hint(ctx.operanders["high3"], ctx.operanders["low3"], ctx.operanders["inputs"])
},
check: allVarValueEquals(map[string]*fp.Element{"high3": feltUint64(1), "low3": feltUint64(0)}),
},
{
operanders: []*hintOperander{
{Name: "inputs", Kind: fpRelative, Value: addr(2)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "real_input", Kind: apRelative, Value: feltUint64(16777217)},
{Name: "high3", Kind: uninitialized},
{Name: "low3", Kind: uninitialized},
},
makeHinter: func(ctx *hintTestContext) hinter.Hinter {
return newSplitInput9Hint(ctx.operanders["high3"], ctx.operanders["low3"], ctx.operanders["inputs"])
},
check: allVarValueEquals(map[string]*fp.Element{"high3": feltUint64(1), "low3": feltUint64(1)}),
},
{
operanders: []*hintOperander{
{Name: "inputs", Kind: fpRelative, Value: addr(2)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "random_value", Kind: apRelative, Value: feltUint64(0)},
{Name: "real_input", Kind: apRelative, Value: feltUint64(167772161)},
{Name: "high3", Kind: uninitialized},
{Name: "low3", Kind: uninitialized},
},
makeHinter: func(ctx *hintTestContext) hinter.Hinter {
return newSplitInput9Hint(ctx.operanders["high3"], ctx.operanders["low3"], ctx.operanders["inputs"])
},
check: allVarValueEquals(map[string]*fp.Element{"high3": feltUint64(10), "low3": feltUint64(1)}),
},
},
})
}

0 comments on commit 1ae956e

Please sign in to comment.