add back in PeriodicInvariant

This commit is contained in:
rigelrozanski 2018-11-09 10:31:56 -05:00
parent 8a58fdf634
commit b1ba6a4455
1 changed files with 18 additions and 0 deletions

View File

@ -7,6 +7,8 @@ import (
"strings"
"testing"
"time"
"github.com/cosmos/cosmos-sdk/baseapp"
)
func getTestingMode(tb testing.TB) (testingMode bool, t *testing.T, b *testing.B) {
@ -102,3 +104,19 @@ func getBlockSize(r *rand.Rand, params Params,
}
return state, blocksize
}
// PeriodicInvariant returns an Invariant function closure that asserts a given
// invariant if the mock application's last block modulo the given period is
// congruent to the given offset.
//
// NOTE this function is intended to be used manually used while running
// computationally heavy simulations.
// TODO reference this function in the codebase probably through use of a switch
func PeriodicInvariant(invariant Invariant, period int, offset int) Invariant {
return func(app *baseapp.BaseApp) error {
if int(app.LastBlockHeight())%period == offset {
return invariant(app)
}
return nil
}
}