From cd484a3eeee1128c5aef0018fd264d635e51aeb3 Mon Sep 17 00:00:00 2001 From: Robert Zaremba Date: Wed, 27 Dec 2023 15:04:52 +0100 Subject: [PATCH] add new checkers helper methods --- util/checkers/number.go | 16 ++++++++++++++++ util/checkers/number_test.go | 9 +++++++++ 2 files changed, 25 insertions(+) diff --git a/util/checkers/number.go b/util/checkers/number.go index 0fdbf9e2ca..5b603d6bb6 100644 --- a/util/checkers/number.go +++ b/util/checkers/number.go @@ -52,3 +52,19 @@ func DecInZeroOne(a sdk.Dec, name string, oneInclusive bool) error { } return nil } + +// DecNotNegative checks if a is defined and a >= 0 +func DecNotNegative(a sdk.Dec, paramName string, errs []error) []error { + if a.IsNil() || a.IsNegative() { + return append(errs, fmt.Errorf("%s can't be negative", paramName)) + } + return errs +} + +// DecPositive checks if a is defined and a > 0 +func DecPositive(a sdk.Dec, paramName string, errs []error) []error { + if a.IsNil() || !a.IsPositive() { + return append(errs, fmt.Errorf("%s must be positive", paramName)) + } + return errs +} diff --git a/util/checkers/number_test.go b/util/checkers/number_test.go index ace6f061a4..f5e24c70a5 100644 --- a/util/checkers/number_test.go +++ b/util/checkers/number_test.go @@ -3,6 +3,7 @@ package checkers import ( "testing" + sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/assert" "github.com/umee-network/umee/v6/tests/tsdk" ) @@ -81,3 +82,11 @@ func TestDecInZeroOne(t *testing.T) { assert.Error(t, DecInZeroOne(tsdk.DecF(213812), "", true)) assert.Error(t, DecInZeroOne(tsdk.DecF(-1), "", true)) } + +func TestDecNotNegative(t *testing.T) { + assert.NotNil(t, DecNotNegative(tsdk.DecF(-1), "", nil)) + assert.NotNil(t, DecNotNegative(sdk.Dec{}, "", nil)) + + assert.Nil(t, DecNotNegative(sdk.ZeroDec(), "", nil)) + assert.Nil(t, DecNotNegative(tsdk.DecF(5), "", nil)) +}