Clean up state types (#11916)

* Clean up state types

* rename package
This commit is contained in:
Radosław Kapka
2023-01-26 15:40:12 +01:00
committed by GitHub
parent a296a0c783
commit 77d3ccb9ad
555 changed files with 4696 additions and 4958 deletions

View File

@@ -3,7 +3,7 @@ package slice
import (
"strings"
types "github.com/prysmaticlabs/prysm/v3/consensus-types/primitives"
"github.com/prysmaticlabs/prysm/v3/consensus-types/primitives"
)
// SubsetUint64 returns true if the first array is
@@ -310,15 +310,15 @@ func SplitOffset(listSize, chunks, index uint64) uint64 {
// complexity of approximately O(n) leveraging a map to
// check for element existence off by a constant factor
// of underlying map efficiency.
func IntersectionSlot(s ...[]types.Slot) []types.Slot {
func IntersectionSlot(s ...[]primitives.Slot) []primitives.Slot {
if len(s) == 0 {
return []types.Slot{}
return []primitives.Slot{}
}
if len(s) == 1 {
return s[0]
}
intersect := make([]types.Slot, 0)
m := make(map[types.Slot]int)
intersect := make([]primitives.Slot, 0)
m := make(map[primitives.Slot]int)
for _, k := range s[0] {
m[k] = 1
}
@@ -340,9 +340,9 @@ func IntersectionSlot(s ...[]types.Slot) []types.Slot {
// not in slice a with time complexity of approximately
// O(n) leveraging a map to check for element existence
// off by a constant factor of underlying map efficiency.
func NotSlot(a, b []types.Slot) []types.Slot {
set := make([]types.Slot, 0)
m := make(map[types.Slot]bool)
func NotSlot(a, b []primitives.Slot) []primitives.Slot {
set := make([]primitives.Slot, 0)
m := make(map[primitives.Slot]bool)
for i := 0; i < len(a); i++ {
m[a[i]] = true
@@ -356,7 +356,7 @@ func NotSlot(a, b []types.Slot) []types.Slot {
}
// IsInSlots returns true if a is in b and False otherwise.
func IsInSlots(a types.Slot, b []types.Slot) bool {
func IsInSlots(a primitives.Slot, b []primitives.Slot) bool {
for _, v := range b {
if a == v {
return true

View File

@@ -5,7 +5,7 @@ import (
"sort"
"testing"
types "github.com/prysmaticlabs/prysm/v3/consensus-types/primitives"
"github.com/prysmaticlabs/prysm/v3/consensus-types/primitives"
"github.com/prysmaticlabs/prysm/v3/container/slice"
"github.com/prysmaticlabs/prysm/v3/testing/require"
)
@@ -503,31 +503,31 @@ func TestSplitOffset_OK(t *testing.T) {
func TestIntersectionSlot(t *testing.T) {
testCases := []struct {
setA []types.Slot
setB []types.Slot
setC []types.Slot
out []types.Slot
setA []primitives.Slot
setB []primitives.Slot
setC []primitives.Slot
out []primitives.Slot
}{
{[]types.Slot{2, 3, 5}, []types.Slot{3}, []types.Slot{3}, []types.Slot{3}},
{[]types.Slot{2, 3, 5}, []types.Slot{3, 5}, []types.Slot{5}, []types.Slot{5}},
{[]types.Slot{2, 3, 5}, []types.Slot{3, 5}, []types.Slot{3, 5}, []types.Slot{3, 5}},
{[]types.Slot{2, 3, 5}, []types.Slot{5, 3, 2}, []types.Slot{3, 2, 5}, []types.Slot{2, 3, 5}},
{[]types.Slot{3, 2, 5}, []types.Slot{5, 3, 2}, []types.Slot{3, 2, 5}, []types.Slot{2, 3, 5}},
{[]types.Slot{3, 3, 5}, []types.Slot{5, 3, 2}, []types.Slot{3, 2, 5}, []types.Slot{3, 5}},
{[]types.Slot{2, 3, 5}, []types.Slot{2, 3, 5}, []types.Slot{2, 3, 5}, []types.Slot{2, 3, 5}},
{[]types.Slot{2, 3, 5}, []types.Slot{}, []types.Slot{}, []types.Slot{}},
{[]types.Slot{2, 3, 5}, []types.Slot{2, 3, 5}, []types.Slot{}, []types.Slot{}},
{[]types.Slot{2, 3}, []types.Slot{2, 3, 5}, []types.Slot{5}, []types.Slot{}},
{[]types.Slot{2, 2, 2}, []types.Slot{2, 2, 2}, []types.Slot{}, []types.Slot{}},
{[]types.Slot{}, []types.Slot{2, 3, 5}, []types.Slot{}, []types.Slot{}},
{[]types.Slot{}, []types.Slot{}, []types.Slot{}, []types.Slot{}},
{[]types.Slot{1}, []types.Slot{1}, []types.Slot{}, []types.Slot{}},
{[]types.Slot{1, 1, 1}, []types.Slot{1, 1}, []types.Slot{1, 2, 3}, []types.Slot{1}},
{[]primitives.Slot{2, 3, 5}, []primitives.Slot{3}, []primitives.Slot{3}, []primitives.Slot{3}},
{[]primitives.Slot{2, 3, 5}, []primitives.Slot{3, 5}, []primitives.Slot{5}, []primitives.Slot{5}},
{[]primitives.Slot{2, 3, 5}, []primitives.Slot{3, 5}, []primitives.Slot{3, 5}, []primitives.Slot{3, 5}},
{[]primitives.Slot{2, 3, 5}, []primitives.Slot{5, 3, 2}, []primitives.Slot{3, 2, 5}, []primitives.Slot{2, 3, 5}},
{[]primitives.Slot{3, 2, 5}, []primitives.Slot{5, 3, 2}, []primitives.Slot{3, 2, 5}, []primitives.Slot{2, 3, 5}},
{[]primitives.Slot{3, 3, 5}, []primitives.Slot{5, 3, 2}, []primitives.Slot{3, 2, 5}, []primitives.Slot{3, 5}},
{[]primitives.Slot{2, 3, 5}, []primitives.Slot{2, 3, 5}, []primitives.Slot{2, 3, 5}, []primitives.Slot{2, 3, 5}},
{[]primitives.Slot{2, 3, 5}, []primitives.Slot{}, []primitives.Slot{}, []primitives.Slot{}},
{[]primitives.Slot{2, 3, 5}, []primitives.Slot{2, 3, 5}, []primitives.Slot{}, []primitives.Slot{}},
{[]primitives.Slot{2, 3}, []primitives.Slot{2, 3, 5}, []primitives.Slot{5}, []primitives.Slot{}},
{[]primitives.Slot{2, 2, 2}, []primitives.Slot{2, 2, 2}, []primitives.Slot{}, []primitives.Slot{}},
{[]primitives.Slot{}, []primitives.Slot{2, 3, 5}, []primitives.Slot{}, []primitives.Slot{}},
{[]primitives.Slot{}, []primitives.Slot{}, []primitives.Slot{}, []primitives.Slot{}},
{[]primitives.Slot{1}, []primitives.Slot{1}, []primitives.Slot{}, []primitives.Slot{}},
{[]primitives.Slot{1, 1, 1}, []primitives.Slot{1, 1}, []primitives.Slot{1, 2, 3}, []primitives.Slot{1}},
}
for _, tt := range testCases {
setA := append([]types.Slot{}, tt.setA...)
setB := append([]types.Slot{}, tt.setB...)
setC := append([]types.Slot{}, tt.setC...)
setA := append([]primitives.Slot{}, tt.setA...)
setB := append([]primitives.Slot{}, tt.setB...)
setC := append([]primitives.Slot{}, tt.setC...)
result := slice.IntersectionSlot(setA, setB, setC)
sort.Slice(result, func(i, j int) bool {
return result[i] < result[j]
@@ -549,17 +549,17 @@ func TestIntersectionSlot(t *testing.T) {
func TestNotSlot(t *testing.T) {
testCases := []struct {
setA []types.Slot
setB []types.Slot
out []types.Slot
setA []primitives.Slot
setB []primitives.Slot
out []primitives.Slot
}{
{[]types.Slot{4, 6}, []types.Slot{2, 3, 5, 4, 6}, []types.Slot{2, 3, 5}},
{[]types.Slot{3, 5}, []types.Slot{2, 3, 5}, []types.Slot{2}},
{[]types.Slot{2, 3, 5}, []types.Slot{2, 3, 5}, []types.Slot{}},
{[]types.Slot{2}, []types.Slot{2, 3, 5}, []types.Slot{3, 5}},
{[]types.Slot{}, []types.Slot{2, 3, 5}, []types.Slot{2, 3, 5}},
{[]types.Slot{}, []types.Slot{}, []types.Slot{}},
{[]types.Slot{1}, []types.Slot{1}, []types.Slot{}},
{[]primitives.Slot{4, 6}, []primitives.Slot{2, 3, 5, 4, 6}, []primitives.Slot{2, 3, 5}},
{[]primitives.Slot{3, 5}, []primitives.Slot{2, 3, 5}, []primitives.Slot{2}},
{[]primitives.Slot{2, 3, 5}, []primitives.Slot{2, 3, 5}, []primitives.Slot{}},
{[]primitives.Slot{2}, []primitives.Slot{2, 3, 5}, []primitives.Slot{3, 5}},
{[]primitives.Slot{}, []primitives.Slot{2, 3, 5}, []primitives.Slot{2, 3, 5}},
{[]primitives.Slot{}, []primitives.Slot{}, []primitives.Slot{}},
{[]primitives.Slot{1}, []primitives.Slot{1}, []primitives.Slot{}},
}
for _, tt := range testCases {
result := slice.NotSlot(tt.setA, tt.setB)
@@ -571,14 +571,14 @@ func TestNotSlot(t *testing.T) {
func TestIsInSlots(t *testing.T) {
testCases := []struct {
a types.Slot
b []types.Slot
a primitives.Slot
b []primitives.Slot
result bool
}{
{0, []types.Slot{}, false},
{0, []types.Slot{0}, true},
{4, []types.Slot{2, 3, 5, 4, 6}, true},
{100, []types.Slot{2, 3, 5, 4, 6}, false},
{0, []primitives.Slot{}, false},
{0, []primitives.Slot{0}, true},
{4, []primitives.Slot{2, 3, 5, 4, 6}, true},
{100, []primitives.Slot{2, 3, 5, 4, 6}, false},
}
for _, tt := range testCases {
result := slice.IsInSlots(tt.a, tt.b)