mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-07 02:02:18 +00:00
d17996f8b0
* Update V3 from V4 * Fix build v3 -> v4 * Update ssz * Update beacon_chain.pb.go * Fix formatter import * Update update-mockgen.sh comment to v4 * Fix conflicts. Pass build and tests * Fix test
94 lines
2.0 KiB
Go
94 lines
2.0 KiB
Go
package slashings
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/prysmaticlabs/prysm/v4/consensus-types/primitives"
|
|
ethpb "github.com/prysmaticlabs/prysm/v4/proto/prysm/v1alpha1"
|
|
)
|
|
|
|
func TestIsSurround(t *testing.T) {
|
|
type args struct {
|
|
a *ethpb.IndexedAttestation
|
|
b *ethpb.IndexedAttestation
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want bool
|
|
}{
|
|
{
|
|
name: "0 values returns false",
|
|
args: args{
|
|
a: createAttestation(0, 0),
|
|
b: createAttestation(0, 0),
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "detects surrounding attestation",
|
|
args: args{
|
|
a: createAttestation(2, 5),
|
|
b: createAttestation(3, 4),
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "new attestation source == old source, but new target < old target",
|
|
args: args{
|
|
a: createAttestation(3, 5),
|
|
b: createAttestation(3, 4),
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "new attestation source > old source, but new target == old target",
|
|
args: args{
|
|
a: createAttestation(3, 5),
|
|
b: createAttestation(4, 5),
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "new attestation source and targets equal to old one",
|
|
args: args{
|
|
a: createAttestation(3, 5),
|
|
b: createAttestation(3, 5),
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "new attestation source == old source, but new target > old target",
|
|
args: args{
|
|
a: createAttestation(3, 5),
|
|
b: createAttestation(3, 6),
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "new attestation source < old source, but new target == old target",
|
|
args: args{
|
|
a: createAttestation(3, 5),
|
|
b: createAttestation(2, 5),
|
|
},
|
|
want: false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := IsSurround(tt.args.a, tt.args.b); got != tt.want {
|
|
t.Errorf("IsSurrounding() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func createAttestation(source, target primitives.Epoch) *ethpb.IndexedAttestation {
|
|
return ðpb.IndexedAttestation{
|
|
Data: ðpb.AttestationData{
|
|
Source: ðpb.Checkpoint{Epoch: source},
|
|
Target: ðpb.Checkpoint{Epoch: target},
|
|
},
|
|
}
|
|
}
|