mirror of https://github.com/poanetwork/gecko.git
57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package snowball
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestBinarySnowflake(t *testing.T) {
|
|
Blue := 0
|
|
Red := 1
|
|
|
|
beta := 2
|
|
|
|
sf := binarySnowflake{}
|
|
sf.Initialize(beta, Red)
|
|
|
|
if pref := sf.Preference(); pref != Red {
|
|
t.Fatalf("Wrong preference. Expected %d got %d", Red, pref)
|
|
} else if sf.Finalized() {
|
|
t.Fatalf("Finalized too early")
|
|
}
|
|
|
|
sf.RecordSuccessfulPoll(Blue)
|
|
|
|
if pref := sf.Preference(); pref != Blue {
|
|
t.Fatalf("Wrong preference. Expected %d got %d", Blue, pref)
|
|
} else if sf.Finalized() {
|
|
t.Fatalf("Finalized too early")
|
|
}
|
|
|
|
sf.RecordSuccessfulPoll(Red)
|
|
|
|
if pref := sf.Preference(); pref != Red {
|
|
t.Fatalf("Wrong preference. Expected %d got %d", Red, pref)
|
|
} else if sf.Finalized() {
|
|
t.Fatalf("Finalized too early")
|
|
}
|
|
|
|
sf.RecordSuccessfulPoll(Blue)
|
|
|
|
if pref := sf.Preference(); pref != Blue {
|
|
t.Fatalf("Wrong preference. Expected %d got %d", Blue, pref)
|
|
} else if sf.Finalized() {
|
|
t.Fatalf("Finalized too early")
|
|
}
|
|
|
|
sf.RecordSuccessfulPoll(Blue)
|
|
|
|
if pref := sf.Preference(); pref != Blue {
|
|
t.Fatalf("Wrong preference. Expected %d got %d", Blue, pref)
|
|
} else if !sf.Finalized() {
|
|
t.Fatalf("Didn't finalized correctly")
|
|
}
|
|
}
|