borken validator keeper tests
This commit is contained in:
parent
27e0bbca4e
commit
c79263f3a8
|
@ -15,160 +15,160 @@ import (
|
|||
// XXX revive these tests but for the store update proceedure
|
||||
// XXX XXX XXX
|
||||
|
||||
//func TestUpdateVotingPower(t *testing.T) {
|
||||
//assert := assert.New(t)
|
||||
//store := initTestStore(t)
|
||||
//params := GetParams(store)
|
||||
//gs := GetPool(store)
|
||||
func TestUpdateVotingPower(t *testing.T) {
|
||||
ctx, _, keeper := createTestInput(t, nil, false, 0)
|
||||
|
||||
//N := 5
|
||||
//actors := newAddrs(N)
|
||||
//candidates := candidatesFromActors(actors, []int64{400, 200, 100, 10, 1})
|
||||
candidates := candidatesFromAddrs(ctx, keeper, addrs, []int64{400, 200, 100, 10, 1})
|
||||
|
||||
//// test a basic change in voting power
|
||||
//candidates[0].Assets = sdk.NewRat(500)
|
||||
//candidates.updateVotingPower(store, p, params)
|
||||
//assert.Equal(int64(500), candidates[0].VotingPower.Evaluate(), "%v", candidates[0])
|
||||
// test a basic change in voting power
|
||||
candidates[0].Assets = sdk.NewRat(500)
|
||||
candidates.updateVotingPower(store, p, params)
|
||||
keeper.updaate
|
||||
assert.Equal(int64(500), candidates[0].VotingPower.Evaluate(), "%v", candidates[0])
|
||||
|
||||
//// test a swap in voting power
|
||||
//candidates[1].Assets = sdk.NewRat(600)
|
||||
//candidates.updateVotingPower(store, p, params)
|
||||
//assert.Equal(int64(600), candidates[0].VotingPower.Evaluate(), "%v", candidates[0])
|
||||
//assert.Equal(int64(500), candidates[1].VotingPower.Evaluate(), "%v", candidates[1])
|
||||
// test a swap in voting power
|
||||
candidates[1].Assets = sdk.NewRat(600)
|
||||
candidates.updateVotingPower(store, p, params)
|
||||
assert.Equal(int64(600), candidates[0].VotingPower.Evaluate(), "%v", candidates[0])
|
||||
assert.Equal(int64(500), candidates[1].VotingPower.Evaluate(), "%v", candidates[1])
|
||||
|
||||
//// test the max validators term
|
||||
//params.MaxValidators = 4
|
||||
//setParams(store, params)
|
||||
//candidates.updateVotingPower(store, p, params)
|
||||
//assert.Equal(int64(0), candidates[4].VotingPower.Evaluate(), "%v", candidates[4])
|
||||
//}
|
||||
// test the max validators term
|
||||
params.MaxValidators = 4
|
||||
setParams(store, params)
|
||||
candidates.updateVotingPower(store, p, params)
|
||||
assert.Equal(int64(0), candidates[4].VotingPower.Evaluate(), "%v", candidates[4])
|
||||
}
|
||||
|
||||
//func TestValidatorsChanged(t *testing.T) {
|
||||
//require := require.New(t)
|
||||
func TestValidatorsChanged(t *testing.T) {
|
||||
require := require.New(t)
|
||||
|
||||
//v1 := (&Candidate{PubKey: pks[0], VotingPower: sdk.NewRat(10)}).validator()
|
||||
//v2 := (&Candidate{PubKey: pks[1], VotingPower: sdk.NewRat(10)}).validator()
|
||||
//v3 := (&Candidate{PubKey: pks[2], VotingPower: sdk.NewRat(10)}).validator()
|
||||
//v4 := (&Candidate{PubKey: pks[3], VotingPower: sdk.NewRat(10)}).validator()
|
||||
//v5 := (&Candidate{PubKey: pks[4], VotingPower: sdk.NewRat(10)}).validator()
|
||||
v1 := (&Candidate{PubKey: pks[0], VotingPower: sdk.NewRat(10)}).validator()
|
||||
v2 := (&Candidate{PubKey: pks[1], VotingPower: sdk.NewRat(10)}).validator()
|
||||
v3 := (&Candidate{PubKey: pks[2], VotingPower: sdk.NewRat(10)}).validator()
|
||||
v4 := (&Candidate{PubKey: pks[3], VotingPower: sdk.NewRat(10)}).validator()
|
||||
v5 := (&Candidate{PubKey: pks[4], VotingPower: sdk.NewRat(10)}).validator()
|
||||
|
||||
//// test from nothing to something
|
||||
//vs1 := []Validator{}
|
||||
//vs2 := []Validator{v1, v2}
|
||||
//changed := vs1.validatorsUpdated(vs2)
|
||||
//require.Equal(2, len(changed))
|
||||
//testChange(t, vs2[0], changed[0])
|
||||
//testChange(t, vs2[1], changed[1])
|
||||
// test from nothing to something
|
||||
vs1 := []Validator{}
|
||||
vs2 := []Validator{v1, v2}
|
||||
changed := vs1.validatorsUpdated(vs2)
|
||||
require.Equal(2, len(changed))
|
||||
testChange(t, vs2[0], changed[0])
|
||||
testChange(t, vs2[1], changed[1])
|
||||
|
||||
//// test from something to nothing
|
||||
//vs1 = []Validator{v1, v2}
|
||||
//vs2 = []Validator{}
|
||||
//changed = vs1.validatorsUpdated(vs2)
|
||||
//require.Equal(2, len(changed))
|
||||
//testRemove(t, vs1[0], changed[0])
|
||||
//testRemove(t, vs1[1], changed[1])
|
||||
// test from something to nothing
|
||||
vs1 = []Validator{v1, v2}
|
||||
vs2 = []Validator{}
|
||||
changed = vs1.validatorsUpdated(vs2)
|
||||
require.Equal(2, len(changed))
|
||||
testRemove(t, vs1[0], changed[0])
|
||||
testRemove(t, vs1[1], changed[1])
|
||||
|
||||
//// test identical
|
||||
//vs1 = []Validator{v1, v2, v4}
|
||||
//vs2 = []Validator{v1, v2, v4}
|
||||
//changed = vs1.validatorsUpdated(vs2)
|
||||
//require.ZeroRat(len(changed))
|
||||
// test identical
|
||||
vs1 = []Validator{v1, v2, v4}
|
||||
vs2 = []Validator{v1, v2, v4}
|
||||
changed = vs1.validatorsUpdated(vs2)
|
||||
require.ZeroRat(len(changed))
|
||||
|
||||
//// test single value change
|
||||
//vs2[2].VotingPower = sdk.OneRat
|
||||
//changed = vs1.validatorsUpdated(vs2)
|
||||
//require.Equal(1, len(changed))
|
||||
//testChange(t, vs2[2], changed[0])
|
||||
// test single value change
|
||||
vs2[2].VotingPower = sdk.OneRat
|
||||
changed = vs1.validatorsUpdated(vs2)
|
||||
require.Equal(1, len(changed))
|
||||
testChange(t, vs2[2], changed[0])
|
||||
|
||||
//// test multiple value change
|
||||
//vs2[0].VotingPower = sdk.NewRat(11)
|
||||
//vs2[2].VotingPower = sdk.NewRat(5)
|
||||
//changed = vs1.validatorsUpdated(vs2)
|
||||
//require.Equal(2, len(changed))
|
||||
//testChange(t, vs2[0], changed[0])
|
||||
//testChange(t, vs2[2], changed[1])
|
||||
// test multiple value change
|
||||
vs2[0].VotingPower = sdk.NewRat(11)
|
||||
vs2[2].VotingPower = sdk.NewRat(5)
|
||||
changed = vs1.validatorsUpdated(vs2)
|
||||
require.Equal(2, len(changed))
|
||||
testChange(t, vs2[0], changed[0])
|
||||
testChange(t, vs2[2], changed[1])
|
||||
|
||||
//// test validator added at the beginning
|
||||
//vs1 = []Validator{v2, v4}
|
||||
//vs2 = []Validator{v2, v4, v1}
|
||||
//changed = vs1.validatorsUpdated(vs2)
|
||||
//require.Equal(1, len(changed))
|
||||
//testChange(t, vs2[0], changed[0])
|
||||
// test validator added at the beginning
|
||||
vs1 = []Validator{v2, v4}
|
||||
vs2 = []Validator{v2, v4, v1}
|
||||
changed = vs1.validatorsUpdated(vs2)
|
||||
require.Equal(1, len(changed))
|
||||
testChange(t, vs2[0], changed[0])
|
||||
|
||||
//// test validator added in the middle
|
||||
//vs1 = []Validator{v1, v2, v4}
|
||||
//vs2 = []Validator{v3, v1, v4, v2}
|
||||
//changed = vs1.validatorsUpdated(vs2)
|
||||
//require.Equal(1, len(changed))
|
||||
//testChange(t, vs2[2], changed[0])
|
||||
// test validator added in the middle
|
||||
vs1 = []Validator{v1, v2, v4}
|
||||
vs2 = []Validator{v3, v1, v4, v2}
|
||||
changed = vs1.validatorsUpdated(vs2)
|
||||
require.Equal(1, len(changed))
|
||||
testChange(t, vs2[2], changed[0])
|
||||
|
||||
//// test validator added at the end
|
||||
//vs2 = []Validator{v1, v2, v4, v5}
|
||||
//changed = vs1.validatorsUpdated(vs2)
|
||||
//require.Equal(1, len(changed)) //testChange(t, vs2[3], changed[0]) //// test multiple validators added //vs2 = []Validator{v1, v2, v3, v4, v5} //changed = vs1.validatorsUpdated(vs2) //require.Equal(2, len(changed)) //testChange(t, vs2[2], changed[0]) //testChange(t, vs2[4], changed[1]) //// test validator removed at the beginning //vs2 = []Validator{v2, v4} //changed = vs1.validatorsUpdated(vs2) //require.Equal(1, len(changed)) //testRemove(t, vs1[0], changed[0]) //// test validator removed in the middle //vs2 = []Validator{v1, v4} //changed = vs1.validatorsUpdated(vs2) //require.Equal(1, len(changed)) //testRemove(t, vs1[1], changed[0]) //// test validator removed at the end
|
||||
//vs2 = []Validator{v1, v2}
|
||||
//changed = vs1.validatorsUpdated(vs2)
|
||||
//require.Equal(1, len(changed))
|
||||
//testRemove(t, vs1[2], changed[0])
|
||||
// test validator added at the end
|
||||
vs2 = []Validator{v1, v2, v4, v5}
|
||||
changed = vs1.validatorsUpdated(vs2)
|
||||
require.Equal(1, len(changed)) //testChange(t, vs2[3], changed[0]) //// test multiple validators added //vs2 = []Validator{v1, v2, v3, v4, v5} //changed = vs1.validatorsUpdated(vs2) //require.Equal(2, len(changed)) //testChange(t, vs2[2], changed[0]) //testChange(t, vs2[4], changed[1]) //// test validator removed at the beginning //vs2 = []Validator{v2, v4} //changed = vs1.validatorsUpdated(vs2) //require.Equal(1, len(changed)) //testRemove(t, vs1[0], changed[0]) //// test validator removed in the middle //vs2 = []Validator{v1, v4} //changed = vs1.validatorsUpdated(vs2) //require.Equal(1, len(changed)) //testRemove(t, vs1[1], changed[0]) //// test validator removed at the end
|
||||
vs2 = []Validator{v1, v2}
|
||||
changed = vs1.validatorsUpdated(vs2)
|
||||
require.Equal(1, len(changed))
|
||||
testRemove(t, vs1[2], changed[0])
|
||||
|
||||
//// test multiple validators removed
|
||||
//vs2 = []Validator{v1}
|
||||
//changed = vs1.validatorsUpdated(vs2)
|
||||
//require.Equal(2, len(changed))
|
||||
//testRemove(t, vs1[1], changed[0])
|
||||
//testRemove(t, vs1[2], changed[1])
|
||||
// test multiple validators removed
|
||||
vs2 = []Validator{v1}
|
||||
changed = vs1.validatorsUpdated(vs2)
|
||||
require.Equal(2, len(changed))
|
||||
testRemove(t, vs1[1], changed[0])
|
||||
testRemove(t, vs1[2], changed[1])
|
||||
|
||||
//// test many sdk of changes //vs2 = []Validator{v1, v3, v4, v5} //vs2[2].VotingPower = sdk.NewRat(11) //changed = vs1.validatorsUpdated(vs2) //require.Equal(4, len(changed), "%v", changed) // change 1, remove 1, add 2 //testRemove(t, vs1[1], changed[0]) //testChange(t, vs2[1], changed[1]) //testChange(t, vs2[2], changed[2]) //testChange(t, vs2[3], changed[3]) //} //func TestUpdateValidatorSet(t *testing.T) { //assert, require := assert.New(t), require.New(t) //store := initTestStore(t) //params := GetParams(store) //gs := GetPool(store) //N := 5
|
||||
//actors := newAddrs(N)
|
||||
//candidates := candidatesFromActors(actors, []int64{400, 200, 100, 10, 1})
|
||||
//for _, c := range candidates {
|
||||
//setCandidate(store, c)
|
||||
//}
|
||||
// test many sdk of changes //vs2 = []Validator{v1, v3, v4, v5} //vs2[2].VotingPower = sdk.NewRat(11) //changed = vs1.validatorsUpdated(vs2) //require.Equal(4, len(changed), "%v", changed) // change 1, remove 1, add 2 //testRemove(t, vs1[1], changed[0]) //testChange(t, vs2[1], changed[1]) //testChange(t, vs2[2], changed[2]) //testChange(t, vs2[3], changed[3]) //} //func TestUpdateValidatorSet(t *testing.T) { //assert, require := assert.New(t), require.New(t) //store := initTestStore(t) //params := GetParams(store) //gs := GetPool(store) //N := 5
|
||||
actors := newAddrs(N)
|
||||
candidates := candidatesFromActors(actors, []int64{400, 200, 100, 10, 1})
|
||||
for _, c := range candidates {
|
||||
setCandidate(store, c)
|
||||
}
|
||||
|
||||
//// they should all already be validators
|
||||
//change, err := UpdateValidatorSet(store, p, params)
|
||||
//require.Nil(err)
|
||||
//require.Equal(0, len(change), "%v", change) // change 1, remove 1, add 2
|
||||
// they should all already be validators
|
||||
change, err := UpdateValidatorSet(store, p, params)
|
||||
require.Nil(err)
|
||||
require.Equal(0, len(change), "%v", change) // change 1, remove 1, add 2
|
||||
|
||||
//// test the max value and test again
|
||||
//params.MaxValidators = 4
|
||||
//setParams(store, params)
|
||||
//change, err = UpdateValidatorSet(store, p, params)
|
||||
//require.Nil(err)
|
||||
//require.Equal(1, len(change), "%v", change)
|
||||
//testRemove(t, candidates[4].validator(), change[0])
|
||||
//candidates = GetCandidates(store)
|
||||
//assert.Equal(int64(0), candidates[4].VotingPower.Evaluate())
|
||||
// test the max value and test again
|
||||
params.MaxValidators = 4
|
||||
setParams(store, params)
|
||||
change, err = UpdateValidatorSet(store, p, params)
|
||||
require.Nil(err)
|
||||
require.Equal(1, len(change), "%v", change)
|
||||
testRemove(t, candidates[4].validator(), change[0])
|
||||
candidates = GetCandidates(store)
|
||||
assert.Equal(int64(0), candidates[4].VotingPower.Evaluate())
|
||||
|
||||
//// mess with the power's of the candidates and test
|
||||
//candidates[0].Assets = sdk.NewRat(10)
|
||||
//candidates[1].Assets = sdk.NewRat(600)
|
||||
//candidates[2].Assets = sdk.NewRat(1000)
|
||||
//candidates[3].Assets = sdk.OneRat
|
||||
//candidates[4].Assets = sdk.NewRat(10)
|
||||
//for _, c := range candidates {
|
||||
//setCandidate(store, c)
|
||||
//}
|
||||
//change, err = UpdateValidatorSet(store, p, params)
|
||||
//require.Nil(err)
|
||||
//require.Equal(5, len(change), "%v", change) // 3 changed, 1 added, 1 removed
|
||||
//candidates = GetCandidates(store)
|
||||
//testChange(t, candidates[0].validator(), change[0])
|
||||
//testChange(t, candidates[1].validator(), change[1])
|
||||
//testChange(t, candidates[2].validator(), change[2])
|
||||
//testRemove(t, candidates[3].validator(), change[3])
|
||||
//testChange(t, candidates[4].validator(), change[4])
|
||||
//}
|
||||
// mess with the power's of the candidates and test
|
||||
candidates[0].Assets = sdk.NewRat(10)
|
||||
candidates[1].Assets = sdk.NewRat(600)
|
||||
candidates[2].Assets = sdk.NewRat(1000)
|
||||
candidates[3].Assets = sdk.OneRat
|
||||
candidates[4].Assets = sdk.NewRat(10)
|
||||
for _, c := range candidates {
|
||||
setCandidate(store, c)
|
||||
}
|
||||
change, err = UpdateValidatorSet(store, p, params)
|
||||
require.Nil(err)
|
||||
require.Equal(5, len(change), "%v", change) // 3 changed, 1 added, 1 removed
|
||||
candidates = GetCandidates(store)
|
||||
testChange(t, candidates[0].validator(), change[0])
|
||||
testChange(t, candidates[1].validator(), change[1])
|
||||
testChange(t, candidates[2].validator(), change[2])
|
||||
testRemove(t, candidates[3].validator(), change[3])
|
||||
testChange(t, candidates[4].validator(), change[4])
|
||||
}
|
||||
|
||||
//func TestGetValidators(t *testing.T) {
|
||||
//ctx, _, keeper := createTestInput(t, nil, false, 0)
|
||||
//candidatesFromAddrs(ctx, keeper, addrs, []int64{400, 200, 0, 0, 0})
|
||||
// XXX BROKEN TEST
|
||||
func TestGetValidators(t *testing.T) {
|
||||
ctx, _, keeper := createTestInput(t, nil, false, 0)
|
||||
params := keeper.GetParams(ctx)
|
||||
params.MaxValidators = 2
|
||||
keeper.setParams(ctx, params)
|
||||
candidatesFromAddrs(ctx, keeper, addrs, []int64{0, 0, 0, 400, 200, 0}) // XXX rearrange these something messed is happenning!
|
||||
|
||||
//validators := keeper.GetValidators(ctx, 2)
|
||||
//require.Equal(t, 2, len(validators))
|
||||
//assert.Equal(t, addrs[0], validators[0].Address)
|
||||
//assert.Equal(t, addrs[1], validators[1].Address)
|
||||
//}
|
||||
validators := keeper.GetValidators(ctx)
|
||||
require.Equal(t, 2, len(validators))
|
||||
assert.Equal(t, addrs[0], validators[0].Address, "%v", validators)
|
||||
assert.Equal(t, addrs[1], validators[1].Address, "%v", validators)
|
||||
}
|
||||
|
||||
var (
|
||||
addrDel1 = addrs[0]
|
||||
|
|
Loading…
Reference in New Issue