github.com/gocrane/crane@v0.11.0/pkg/utils/string_test.go (about) 1 package utils 2 3 import "testing" 4 5 func TestParseFloat(t *testing.T) { 6 tests := []struct { 7 name string 8 str string 9 defaultValue float64 10 want float64 11 wantErr bool 12 }{ 13 // TODO: Add test cases. 14 { 15 name: "empty string", 16 str: "", 17 defaultValue: 0.16, 18 want: 0.16, 19 wantErr: false, 20 }, 21 { 22 name: "non empty string", 23 str: "0.64", 24 defaultValue: 0.16, 25 want: 0.64, 26 wantErr: false, 27 }, 28 } 29 for _, tt := range tests { 30 t.Run(tt.name, func(t *testing.T) { 31 got, err := ParseFloat(tt.str, tt.defaultValue) 32 if (err != nil) != tt.wantErr { 33 t.Errorf("ParseFloat() error = %v, wantErr %v", err, tt.wantErr) 34 return 35 } 36 if got != tt.want { 37 t.Errorf("ParseFloat() = %v, want %v", got, tt.want) 38 } 39 }) 40 } 41 } 42 43 func TestParsePercentage(t *testing.T) { 44 tests := []struct { 45 name string 46 input string 47 want float64 48 wantErr bool 49 }{ 50 { 51 name: "empty string", 52 input: "", 53 want: 0.00, 54 wantErr: false, 55 }, 56 { 57 name: "string parse error", 58 input: "1a", 59 want: 0.00, 60 wantErr: true, 61 }, 62 { 63 name: "string parse ok", 64 input: "10%", 65 want: 0.10, 66 wantErr: false, 67 }, 68 } 69 for _, tt := range tests { 70 t.Run(tt.name, func(t *testing.T) { 71 got, err := ParsePercentage(tt.input) 72 if (err != nil) != tt.wantErr { 73 t.Errorf("ParsePercentage() error = %v, wantErr %v", err, tt.wantErr) 74 return 75 } 76 if got != tt.want { 77 t.Errorf("ParsePercentage() = %v, want %v", got, tt.want) 78 } 79 }) 80 } 81 }