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  }