mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-11-10 18:15:19 +00:00
38 lines
823 B
Go
38 lines
823 B
Go
|
package keeper
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestSplitIntIntoWeightedBuckets(t *testing.T) {
|
||
|
testCases := []struct {
|
||
|
name string
|
||
|
amount sdk.Int
|
||
|
buckets []sdk.Int
|
||
|
want []sdk.Int
|
||
|
}{
|
||
|
{"2split1,1", i(2), is(1, 1), is(1, 1)},
|
||
|
{"100split1,9", i(100), is(1, 9), is(10, 90)},
|
||
|
{"7split1,2", i(7), is(1, 2), is(2, 5)},
|
||
|
{"17split1,1,1", i(17), is(1, 1, 1), is(6, 6, 5)},
|
||
|
// TODO more tests
|
||
|
}
|
||
|
for _, tc := range testCases {
|
||
|
t.Run(tc.name, func(t *testing.T) {
|
||
|
got := splitIntIntoWeightedBuckets(tc.amount, tc.buckets)
|
||
|
require.Equal(t, tc.want, got)
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func i(n int64) sdk.Int { return sdk.NewInt(n) }
|
||
|
func is(ns ...int64) (is []sdk.Int) {
|
||
|
for _, n := range ns {
|
||
|
is = append(is, sdk.NewInt(n))
|
||
|
}
|
||
|
return
|
||
|
}
|