Skip to content

Commit

Permalink
finished delegation set with credit unitests
Browse files Browse the repository at this point in the history
  • Loading branch information
omerlavanet committed Nov 28, 2024
1 parent fe504f3 commit fa2c139
Showing 1 changed file with 73 additions and 6 deletions.
79 changes: 73 additions & 6 deletions x/dualstaking/keeper/delegate_credit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -270,31 +270,98 @@ func TestDelegationSet(t *testing.T) {
timeWait time.Duration
remove bool
}{
{
{ // 0
timeWait: 0,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(0)),
},
{
{ // 1
timeWait: 15 * time.Hour * 24,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720/2)),
},
{
{ // 2
timeWait: 15 * time.Hour * 24,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
},
{
{ // 3
timeWait: 15 * time.Hour * 24,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
},
{
{ // 4
timeWait: 15 * time.Hour * 24,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
},
{ // 5
timeWait: 0,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(500*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
},
{ // 6
timeWait: 15 * time.Hour * 24,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(500*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720/2+500*720/2)),
},
{ // 7
timeWait: 15 * time.Hour * 24,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(500*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt((1000*720/2+500*720/2)/2+500*720/2)),
},
{ // 8
timeWait: 30 * time.Hour * 24,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(500*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(500*720)),
},
{ // 9
timeWait: 1 * time.Hour,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(500*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(0)),
remove: true, // remove existing entry first
},
{ // 10
timeWait: 1 * time.Hour,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(500*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(500)),
},
{ // 11
timeWait: 1 * time.Hour,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(500*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(500+500)),
},
{ // 12
timeWait: 30 * time.Hour * 24,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(500*720)),
},
{ // 13
timeWait: 1 * time.Hour,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(500*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(0)),
remove: true, // remove existing entry first
},
{ // 14
timeWait: 1 * time.Hour,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(500)),
},
{ // 15
timeWait: 1 * time.Hour,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(2000*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(500+1000)),
},
{ // 16
timeWait: 1 * time.Hour,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(500+1000+2000)),
},
{ // 17
timeWait: 2 * time.Hour,
amount: sdk.NewCoin(bondDenom, sdk.NewInt(1000*720)),
expectedMonthlyCredit: sdk.NewCoin(bondDenom, sdk.NewInt(500+1000+2000+1000*2)),
},
}

for iteration := 0; iteration < len(tests); iteration++ {
Expand All @@ -312,7 +379,7 @@ func TestDelegationSet(t *testing.T) {

err := k.SetDelegation(ctx, delegation)
require.NoError(t, err)
delegationGot, found := k.GetDelegation(ctx, delegation.Delegator, delegation.Provider)
delegationGot, found := k.GetDelegation(ctx, delegation.Provider, delegation.Delegator)
require.True(t, found)
monthlyCredit := k.CalculateMonthlyCredit(ctx, delegationGot)
require.Equal(t, tests[iteration].expectedMonthlyCredit, monthlyCredit)
Expand Down

0 comments on commit fa2c139

Please sign in to comment.