package bbgo import ( "testing" "github.com/c9s/bbgo/pkg/fixedpoint" "github.com/stretchr/testify/assert" ) func TestAdjustQuantityByMinAmount(t *testing.T) { type args struct { quantity, price, minAmount fixedpoint.Value } type testcase struct { name string args args wanted string } tests := []testcase{ { name: "amount too small", args: args{ fixedpoint.MustNewFromString("0.1"), fixedpoint.MustNewFromString("10.0"), fixedpoint.MustNewFromString("10.0"), }, wanted: "1.0", }, { name: "amount equals to min amount", args: args{ fixedpoint.MustNewFromString("1.0"), fixedpoint.MustNewFromString("10.0"), fixedpoint.MustNewFromString("10.0"), }, wanted: "1.0", }, { name: "amount is greater than min amount", args: args{ fixedpoint.MustNewFromString("2.0"), fixedpoint.MustNewFromString("10.0"), fixedpoint.MustNewFromString("10.0"), }, wanted: "2.0", }, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { q := AdjustFloatQuantityByMinAmount(test.args.quantity, test.args.price, test.args.minAmount) assert.Equal(t, fixedpoint.MustNewFromString(test.wanted), q) }) } }