Skip to content

Commit

Permalink
add new test
Browse files Browse the repository at this point in the history
  • Loading branch information
mmk-1 committed Nov 22, 2023
1 parent 4bab945 commit 0f739f5
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions pkg/hintrunner/hint_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -734,3 +734,56 @@ func TestAssertLeFindSmallArc(t *testing.T) {
require.Equal(t, expectedPtr, actual1Ptr)
require.Equal(t, expectedExcludedArc, ctx.ExcludedArc)
}

func TestAssertLeFindSmallArc2(t *testing.T) {
vm := defaultVirtualMachine()
vm.Context.Ap = 0
vm.Context.Fp = 0
// The addr that the range check pointer will point to
addr := vm.Memory.AllocateBuiltinSegment(&builtins.RangeCheck{})
writeTo(vm, VM.ExecutionSegment, vm.Context.Ap, mem.MemoryValueFromMemoryAddress(&addr))

ctx := HintRunnerContext{
ExcludedArc: 0,
}

aFelt := f.Element{13984218141608664100, 13287333742236603547, 18446744073709551615, 229878458336812643}
bFelt := f.Element{6079377935050068685, 3868297591914914705, 18446744073709551587, 162950233538363292}

valA := Immediate(aFelt)
valB := Immediate(bFelt)

hint := AssertLeFindSmallArc{
a: valA,
b: valB,
rangeCheckPtr: Deref{ApCellRef(0)},
}

err := hint.Execute(vm, &ctx)

require.NoError(t, err)

expectedRem1 := mem.MemoryValueFromFieldElement(
&f.Element{13984218141608664100, 13287333742236603547, 18446744073709551615, 229878458336812643})
expectedQuotient1 := mem.MemoryValueFromFieldElement(
&f.Element{0, 0, 0, 0})
expectedRem2 := mem.MemoryValueFromFieldElement(
&f.Element{10541903867150958026, 18251079960242638581, 18446744073709551615, 509532527505005161})
expectedQuotient2 := mem.MemoryValueFromFieldElement(
&f.Element{18446744073709549793, 18446744073709551615, 18446744073709551615, 576460752303392496})
expectedPtr := mem.MemoryValueFromMemoryAddress(&addr)
expectedExcludedArc := int(2)

actualRem1 := readFrom(vm, 2, 0)
actualQuotient1 := readFrom(vm, 2, 1)
actualRem2 := readFrom(vm, 2, 2)
actualQuotient2 := readFrom(vm, 2, 3)
actual1Ptr := readFrom(vm, 1, 0)

require.Equal(t, expectedRem1, actualRem1)
require.Equal(t, expectedQuotient1, actualQuotient1)
require.Equal(t, expectedRem2, actualRem2)
require.Equal(t, expectedQuotient2, actualQuotient2)
require.Equal(t, expectedPtr, actual1Ptr)
require.Equal(t, expectedExcludedArc, ctx.ExcludedArc)
}

0 comments on commit 0f739f5

Please sign in to comment.