-
Notifications
You must be signed in to change notification settings - Fork 3.9k
fix(op-node): Peer Scoring Metrics #5204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
ddc14c4
218828d
d645fab
1e5a6e7
4022f9b
4b0f473
539b750
bf3945d
15cf4af
80b42f6
787db60
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,83 @@ | ||
| package p2p | ||
|
|
||
| import ( | ||
| "testing" | ||
|
|
||
| "github.com/stretchr/testify/require" | ||
| ) | ||
|
|
||
| // TestBandScorer_ParseDefault tests the [BandScorer.Parse] function | ||
| // on the default band scores cli flag value. | ||
| func TestBandScorer_ParseDefault(t *testing.T) { | ||
| // Create a new band scorer. | ||
| bandScorer, err := NewBandScorer("-40:graylist;-20:restricted;0:nopx;20:friend;") | ||
| require.NoError(t, err) | ||
|
|
||
| // Validate the [BandScorer] internals. | ||
| require.ElementsMatch(t, bandScorer.bands, []scorePair{ | ||
| {band: "graylist", threshold: -40}, | ||
| {band: "restricted", threshold: -20}, | ||
| {band: "nopx", threshold: 0}, | ||
| {band: "friend", threshold: 20}, | ||
| }) | ||
| } | ||
|
|
||
| // TestBandScorer_BucketCorrectly tests the [BandScorer.Bucket] function | ||
| // on a variety of scores. | ||
| func TestBandScorer_BucketCorrectly(t *testing.T) { | ||
| // Create a new band scorer. | ||
| bandScorer, err := NewBandScorer("-40:graylist;-20:restricted;0:nopx;20:friend;") | ||
| require.NoError(t, err) | ||
|
|
||
| // Validate the [BandScorer] internals. | ||
| require.Equal(t, bandScorer.Bucket(-100), "graylist") | ||
| require.Equal(t, bandScorer.Bucket(-40), "graylist") | ||
| require.Equal(t, bandScorer.Bucket(-39), "restricted") | ||
| require.Equal(t, bandScorer.Bucket(-20), "restricted") | ||
| require.Equal(t, bandScorer.Bucket(-19), "nopx") | ||
| require.Equal(t, bandScorer.Bucket(0), "nopx") | ||
| require.Equal(t, bandScorer.Bucket(1), "friend") | ||
| require.Equal(t, bandScorer.Bucket(20), "friend") | ||
| require.Equal(t, bandScorer.Bucket(21), "friend") | ||
| } | ||
|
|
||
| // TestBandScorer_BucketInverted tests the [BandScorer.Bucket] function | ||
| // on a variety of scores, in descending order. | ||
| func TestBandScorer_BucketInverted(t *testing.T) { | ||
| // Create a new band scorer. | ||
| bandScorer, err := NewBandScorer("20:friend;0:nopx;-20:restricted;-40:graylist;") | ||
| require.NoError(t, err) | ||
|
|
||
| // Validate the [BandScorer] internals. | ||
| require.Equal(t, bandScorer.Bucket(-100), "graylist") | ||
| require.Equal(t, bandScorer.Bucket(-40), "graylist") | ||
| require.Equal(t, bandScorer.Bucket(-39), "restricted") | ||
| require.Equal(t, bandScorer.Bucket(-20), "restricted") | ||
| require.Equal(t, bandScorer.Bucket(-19), "nopx") | ||
| require.Equal(t, bandScorer.Bucket(0), "nopx") | ||
| require.Equal(t, bandScorer.Bucket(1), "friend") | ||
| require.Equal(t, bandScorer.Bucket(20), "friend") | ||
| require.Equal(t, bandScorer.Bucket(21), "friend") | ||
| } | ||
|
|
||
| // TestBandScorer_ParseEmpty tests the [BandScorer.Parse] function | ||
| // on an empty string. | ||
| func TestBandScorer_ParseEmpty(t *testing.T) { | ||
| // Create a band scorer on an empty string. | ||
| bandScorer, err := NewBandScorer("") | ||
| require.NoError(t, err) | ||
|
|
||
| // Validate the [BandScorer] internals. | ||
| require.Len(t, bandScorer.bands, 0) | ||
| } | ||
|
|
||
| // TestBandScorer_ParseWhitespace tests the [BandScorer.Parse] function | ||
| // on a variety of whitespaced strings. | ||
| func TestBandScorer_ParseWhitespace(t *testing.T) { | ||
| // Create a band scorer on an empty string. | ||
| bandScorer, err := NewBandScorer(" ; ; ; ") | ||
| require.NoError(t, err) | ||
|
|
||
| // Validate the [BandScorer] internals. | ||
| require.Len(t, bandScorer.bands, 0) | ||
| } |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Uh oh!
There was an error while loading. Please reload this page.