Skip to content

Commit

Permalink
Add unit tests for equal functions in teal.go (algorand#1486)
Browse files Browse the repository at this point in the history
Add unit tests for equal functions in teal.go
  • Loading branch information
algorandskiy authored Sep 8, 2020
1 parent 5c44c5e commit 19681d8
Showing 1 changed file with 112 additions and 0 deletions.
112 changes: 112 additions & 0 deletions data/basics/teal_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,3 +111,115 @@ func TestSatisfiesSchema(t *testing.T) {
err = tkv.SatisfiesSchema(schema)
a.NoError(err)
}

func TestStateDeltaEqual(t *testing.T) {
a := require.New(t)

var d1 StateDelta = nil
var d2 StateDelta = nil
a.True(d1.Equal(d2))

d2 = StateDelta{}
a.True(d1.Equal(d2))

d2 = StateDelta{"test": {Action: SetUintAction, Uint: 0}}
a.False(d1.Equal(d2))

d1 = StateDelta{}
d2 = StateDelta{}
a.True(d1.Equal(d2))

d2 = StateDelta{"test": {Action: SetUintAction, Uint: 0}}
a.False(d1.Equal(d2))

d1 = StateDelta{"test2": {Action: SetBytesAction, Uint: 0}}
a.False(d1.Equal(d2))

d1 = StateDelta{"test": {Action: SetUintAction, Uint: 0}}
d2 = StateDelta{"test": {Action: SetUintAction, Uint: 0}}
a.True(d1.Equal(d2))

d1 = StateDelta{"test": {Action: SetBytesAction, Bytes: "val"}}
d2 = StateDelta{"test": {Action: SetBytesAction, Bytes: "val"}}
a.True(d1.Equal(d2))

d2 = StateDelta{"test": {Action: SetBytesAction, Bytes: "val1"}}
a.False(d1.Equal(d2))
}

func TestEvalDeltaEqual(t *testing.T) {
a := require.New(t)

d1 := EvalDelta{}
d2 := EvalDelta{}
a.True(d1.Equal(d2))

d2 = EvalDelta{
GlobalDelta: nil,
LocalDeltas: nil,
}
a.True(d1.Equal(d2))

d2 = EvalDelta{
GlobalDelta: StateDelta{},
LocalDeltas: map[uint64]StateDelta{},
}
a.True(d1.Equal(d2))

d2 = EvalDelta{
GlobalDelta: StateDelta{"test": {Action: SetUintAction, Uint: 0}},
}
a.False(d1.Equal(d2))

d1 = EvalDelta{
GlobalDelta: StateDelta{"test": {Action: SetUintAction, Uint: 0}},
}
a.True(d1.Equal(d2))

d2 = EvalDelta{
LocalDeltas: map[uint64]StateDelta{
0: {"test": {Action: SetUintAction, Uint: 0}},
},
}
a.False(d1.Equal(d2))

d1 = EvalDelta{
LocalDeltas: map[uint64]StateDelta{
0: {"test": {Action: SetUintAction, Uint: 1}},
},
}
a.False(d1.Equal(d2))

d2 = EvalDelta{
LocalDeltas: map[uint64]StateDelta{
0: {"test": {Action: SetUintAction, Uint: 1}},
},
}
a.True(d1.Equal(d2))

d1 = EvalDelta{
LocalDeltas: map[uint64]StateDelta{
0: {"test": {Action: SetBytesAction, Bytes: "val"}},
},
}
d2 = EvalDelta{
LocalDeltas: map[uint64]StateDelta{
0: {"test": {Action: SetBytesAction, Bytes: "val"}},
},
}
a.True(d1.Equal(d2))

d2 = EvalDelta{
LocalDeltas: map[uint64]StateDelta{
0: {"test": {Action: SetBytesAction, Bytes: "val1"}},
},
}
a.False(d1.Equal(d2))

d2 = EvalDelta{
LocalDeltas: map[uint64]StateDelta{
1: {"test": {Action: SetBytesAction, Bytes: "val"}},
},
}
a.False(d1.Equal(d2))
}

0 comments on commit 19681d8

Please sign in to comment.