Skip to content

Commit f1a2e85

Browse files
committed
tests: add more tests
1 parent a7c8c1e commit f1a2e85

File tree

3 files changed

+75
-2
lines changed

3 files changed

+75
-2
lines changed

args_test.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,33 @@ import (
88
"github.com/stretchr/testify/require"
99
)
1010

11+
func TestArgsFloatTypes(t *testing.T) {
12+
cmd := buildMinimalTestCommand()
13+
var fval float64
14+
cmd.Arguments = []Argument{
15+
&FloatArg{
16+
Name: "ia",
17+
Destination: &fval,
18+
},
19+
}
20+
21+
err := cmd.Run(buildTestContext(t), []string{"foo", "10"})
22+
r := require.New(t)
23+
r.NoError(err)
24+
r.Equal(float64(10), fval)
25+
r.Equal(float64(10), cmd.FloatArg("ia"))
26+
r.Equal(float64(10), cmd.Float64Arg("ia"))
27+
r.Equal(float32(0), cmd.Float32Arg("ia"))
28+
r.Equal(float64(0), cmd.FloatArg("iab"))
29+
r.Equal(int8(0), cmd.Int8Arg("ia"))
30+
r.Equal(int16(0), cmd.Int16Arg("ia"))
31+
r.Equal(int32(0), cmd.Int32Arg("ia"))
32+
r.Equal(int64(0), cmd.Int64Arg("ia"))
33+
r.Empty(cmd.StringArg("ia"))
34+
35+
r.Error(cmd.Run(buildTestContext(t), []string{"foo", "a"}))
36+
}
37+
1138
func TestArgsIntTypes(t *testing.T) {
1239
cmd := buildMinimalTestCommand()
1340
var ival int
@@ -34,6 +61,29 @@ func TestArgsIntTypes(t *testing.T) {
3461
r.Error(cmd.Run(buildTestContext(t), []string{"foo", "10.0"}))
3562
}
3663

64+
func TestArgsFloatSliceTypes(t *testing.T) {
65+
cmd := buildMinimalTestCommand()
66+
var fval []float64
67+
cmd.Arguments = []Argument{
68+
&FloatArgs{
69+
Name: "ia",
70+
Min: 1,
71+
Max: -1,
72+
Destination: &fval,
73+
},
74+
}
75+
76+
err := cmd.Run(buildTestContext(t), []string{"foo", "10", "20", "30"})
77+
r := require.New(t)
78+
r.NoError(err)
79+
r.Equal([]float64{10, 20, 30}, fval)
80+
r.Equal([]float64{10, 20, 30}, cmd.FloatArgs("ia"))
81+
r.Equal([]float64{10, 20, 30}, cmd.Float64Args("ia"))
82+
r.Nil(cmd.Float32Args("ia"))
83+
84+
r.Error(cmd.Run(buildTestContext(t), []string{"foo", "10", "a"}))
85+
}
86+
3787
func TestArgsIntSliceTypes(t *testing.T) {
3888
cmd := buildMinimalTestCommand()
3989
var ival []int

flag_float_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,3 +167,10 @@ func Test_Float64Flag(t *testing.T) {
167167
})
168168
}
169169
}
170+
171+
func Test_floatValue_String(t *testing.T) {
172+
var f float64 = 100
173+
fv := floatValue[float64]{val: &f}
174+
175+
assert.Equal(t, "100", fv.String())
176+
}

flag_test.go

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2607,7 +2607,7 @@ func TestTimestampFlagApply_MultipleFormats(t *testing.T) {
26072607
}
26082608

26092609
func TestTimestampFlagApply_ShortenedLayouts(t *testing.T) {
2610-
now := time.Now().In(time.UTC)
2610+
now := time.Now().UTC()
26112611

26122612
shortenedLayoutsPrecisions := map[string]time.Duration{
26132613
time.Kitchen: time.Minute,
@@ -2726,11 +2726,23 @@ func TestFlagDefaultValue(t *testing.T) {
27262726
expect: `--flag string [ --flag string ] (default: "default1", "default2")`,
27272727
},
27282728
{
2729-
name: "float64Slice",
2729+
name: "floatSlice",
27302730
flag: &FloatSliceFlag{Name: "flag", Value: []float64{1.1, 2.2}},
27312731
toParse: []string{"--flag", "13.3"},
27322732
expect: `--flag float [ --flag float ] (default: 1.1, 2.2)`,
27332733
},
2734+
{
2735+
name: "float32Slice",
2736+
flag: &Float32SliceFlag{Name: "flag", Value: []float32{1.1, 2.2}},
2737+
toParse: []string{"--flag", "13.3"},
2738+
expect: `--flag float [ --flag float ] (default: 1.1, 2.2)`,
2739+
},
2740+
{
2741+
name: "float64Slice",
2742+
flag: &Float64SliceFlag{Name: "flag", Value: []float64{1.1, 2.2}},
2743+
toParse: []string{"--flag", "13.3"},
2744+
expect: `--flag float [ --flag float ] (default: 1.1, 2.2)`,
2745+
},
27342746
{
27352747
name: "intSlice",
27362748
flag: &Int64SliceFlag{Name: "flag", Value: []int64{1, 2}},
@@ -3243,11 +3255,15 @@ func TestExtFlag(t *testing.T) {
32433255

32443256
func TestSliceValuesNil(t *testing.T) {
32453257
assert.Equal(t, []float64(nil), NewFloatSlice().Value())
3258+
assert.Equal(t, []float32(nil), NewFloat32Slice().Value())
3259+
assert.Equal(t, []float64(nil), NewFloat64Slice().Value())
32463260
assert.Equal(t, []int64(nil), NewInt64Slice().Value())
32473261
assert.Equal(t, []uint64(nil), NewUint64Slice().Value())
32483262
assert.Equal(t, []string(nil), NewStringSlice().Value())
32493263

32503264
assert.Equal(t, []float64(nil), (&FloatSlice{}).Value())
3265+
assert.Equal(t, []float32(nil), (&Float32Slice{}).Value())
3266+
assert.Equal(t, []float64(nil), (&Float64Slice{}).Value())
32513267
assert.Equal(t, []int64(nil), (&Int64Slice{}).Value())
32523268
assert.Equal(t, []uint64(nil), (&Uint64Slice{}).Value())
32533269
assert.Equal(t, []string(nil), (&StringSlice{}).Value())

0 commit comments

Comments
 (0)