Skip to content

Commit

Permalink
test: x/oracle unit test cleanup (#781)
Browse files Browse the repository at this point in the history
  • Loading branch information
adamewozniak authored Apr 7, 2022
1 parent 841e2f0 commit 298272a
Show file tree
Hide file tree
Showing 4 changed files with 177 additions and 83 deletions.
32 changes: 23 additions & 9 deletions x/oracle/types/ballot_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ func TestToMap(t *testing.T) {
votes []VoteForTally
isValid []bool
}{

[]VoteForTally{
{
Voter: sdk.ValAddress(secp256k1.GenPrivKey().PubKey().Address()),
Expand Down Expand Up @@ -69,7 +68,7 @@ func TestSqrt(t *testing.T) {

func TestPBPower(t *testing.T) {
ctx := sdk.NewContext(nil, tmproto.Header{}, false, nil)
_, valAccAddrs, sk := GenerateRandomTestCase()
valAccAddrs, sk := GenerateRandomTestCase()
pb := ExchangeRateBallot{}
ballotPower := int64(0)

Expand Down Expand Up @@ -187,42 +186,57 @@ func TestPBWeightedMedian(t *testing.T) {

func TestPBStandardDeviation(t *testing.T) {
tests := []struct {
inputs []float64
inputs []sdk.Dec
weights []int64
isValidator []bool
standardDeviation sdk.Dec
}{
{
// Supermajority one number
[]float64{1.0, 2.0, 10.0, 100000.0},
[]sdk.Dec{
sdk.MustNewDecFromStr("1.0"),
sdk.MustNewDecFromStr("2.0"),
sdk.MustNewDecFromStr("10.0"),
sdk.MustNewDecFromStr("100000.00"),
},
[]int64{1, 1, 100, 1},
[]bool{true, true, true, true},
sdk.MustNewDecFromStr("49995.000362536252310906"),
},
{
// Adding fake validator doesn't change outcome
[]float64{1.0, 2.0, 10.0, 100000.0, 10000000000},
[]sdk.Dec{
sdk.MustNewDecFromStr("1.0"),
sdk.MustNewDecFromStr("2.0"),
sdk.MustNewDecFromStr("10.0"),
sdk.MustNewDecFromStr("100000.00"),
sdk.MustNewDecFromStr("10000000000"),
},
[]int64{1, 1, 100, 1, 10000},
[]bool{true, true, true, true, false},
sdk.MustNewDecFromStr("4472135950.751005519905537611"),
},
{
// Tie votes
[]float64{1.0, 2.0, 3.0, 4.0},
[]sdk.Dec{
sdk.MustNewDecFromStr("1.0"),
sdk.MustNewDecFromStr("2.0"),
sdk.MustNewDecFromStr("3.0"),
sdk.MustNewDecFromStr("4.00"),
},
[]int64{1, 100, 100, 1},
[]bool{true, true, true, true},
sdk.MustNewDecFromStr("1.224744871391589049"),
},
{
// No votes
[]float64{},
[]sdk.Dec{},
[]int64{},
[]bool{true, true, true, true},
sdk.NewDecWithPrec(0, 0),
},
}

base := math.Pow10(OracleDecPrecision)
for _, tc := range tests {
pb := ExchangeRateBallot{}
for i, input := range tc.inputs {
Expand All @@ -234,7 +248,7 @@ func TestPBStandardDeviation(t *testing.T) {
}

vote := NewVoteForTally(
sdk.NewDecWithPrec(int64(input*base), int64(OracleDecPrecision)),
input,
UmeeDenom,
valAddr,
power,
Expand Down
44 changes: 44 additions & 0 deletions x/oracle/types/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,57 @@ package types
import (
"testing"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/stretchr/testify/require"
)

func TestGenesisValidation(t *testing.T) {
// Valid state
genState := DefaultGenesisState()
require.NoError(t, ValidateGenesis(genState))

// Invalid Vote Period
genState.Params.VotePeriod = 0
require.Error(t, ValidateGenesis(genState))

// Invalid VoteThreshold
genState = DefaultGenesisState()
genState.Params.VoteThreshold = sdk.NewDecWithPrec(33, 2)
require.Error(t, ValidateGenesis(genState))

// Invalid Rewardband
genState = DefaultGenesisState()
genState.Params.RewardBand = sdk.NewDec(2)
require.Error(t, ValidateGenesis(genState))
genState.Params.RewardBand = sdk.NewDec(-1)
require.Error(t, ValidateGenesis(genState))

// Invalid RewardDistributionWindow
genState = DefaultGenesisState()
genState.Params.RewardDistributionWindow = genState.Params.VotePeriod - 1
require.Error(t, ValidateGenesis(genState))

// Invalid SlashFraction
genState = DefaultGenesisState()
genState.Params.SlashFraction = sdk.NewDec(2)
require.Error(t, ValidateGenesis(genState))
genState.Params.SlashFraction = sdk.NewDec(-1)
require.Error(t, ValidateGenesis(genState))

// Invalid SlashWindow
genState = DefaultGenesisState()
genState.Params.SlashWindow = genState.Params.VotePeriod - 1
require.Error(t, ValidateGenesis(genState))

// Invalid MinValidPerWindow
genState = DefaultGenesisState()
genState.Params.MinValidPerWindow = sdk.NewDec(2)
require.Error(t, ValidateGenesis(genState))
genState.Params.MinValidPerWindow = sdk.NewDec(-1)
require.Error(t, ValidateGenesis(genState))

// Invalid AcceptList
genState = DefaultGenesisState()
genState.Params.AcceptList = DenomList{Denom{}}
require.Error(t, ValidateGenesis(genState))
}
2 changes: 1 addition & 1 deletion x/oracle/types/hash_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ func TestAggregateVoteHash(t *testing.T) {
sdk.AccAddress([]byte("addr1_______________")),
}

aggregateVoteHash := GetAggregateVoteHash("salt", "100ukrw,200uusd", sdk.ValAddress(addrs[0]))
aggregateVoteHash := GetAggregateVoteHash("salt", "UMEE:100,ATOM:100", sdk.ValAddress(addrs[0]))
hexStr := hex.EncodeToString(aggregateVoteHash)
aggregateVoteHashRes, err := AggregateVoteHashFromHexString(hexStr)
require.NoError(t, err)
Expand Down
Loading

0 comments on commit 298272a

Please sign in to comment.