bitbucket.org/ai69/amoy@v0.2.3/range_test.go (about)

     1  package amoy
     2  
     3  import "testing"
     4  
     5  func TestEnsureRange(t *testing.T) {
     6  	tests := []struct {
     7  		name  string
     8  		value int
     9  		min   int
    10  		max   int
    11  		want  int
    12  	}{
    13  		{"min", -1, 0, 1, 0},
    14  		{"max", 2, 0, 1, 1},
    15  		{"normal", 1, 0, 2, 1},
    16  	}
    17  	for _, tt := range tests {
    18  		t.Run(tt.name, func(t *testing.T) {
    19  			if got := EnsureRange(tt.value, tt.min, tt.max); got != tt.want {
    20  				t.Errorf("EnsureRange() = %v, want %v", got, tt.want)
    21  			}
    22  		})
    23  	}
    24  }
    25  
    26  func TestUpdateMinMaxFloat64(t *testing.T) {
    27  	tests := []struct {
    28  		name    string
    29  		value   float64
    30  		min     float64
    31  		max     float64
    32  		wantMin float64
    33  		wantMax float64
    34  	}{
    35  		{"all same", 1.0, 1.0, 1.0, 1.0, 1.0},
    36  		{"equal to min", 1.0, 1.0, 2.0, 1.0, 2.0},
    37  		{"equal to max", 2.0, 1.0, 2.0, 1.0, 2.0},
    38  		{"middle", 1.5, 1.0, 2.0, 1.0, 2.0},
    39  		{"smaller", 0.5, 1.0, 2.0, 0.5, 2.0},
    40  		{"larger", 2.5, 1.0, 2.0, 1.0, 2.5},
    41  	}
    42  	for _, tt := range tests {
    43  		t.Run(tt.name, func(t *testing.T) {
    44  			UpdateMinMaxFloat64(tt.value, &tt.min, &tt.max)
    45  			if tt.min != tt.wantMin || tt.max != tt.wantMax {
    46  				t.Errorf("UpdateMinMaxFloat64() = (%v, %v), want (%v, %v)", tt.min, tt.max, tt.wantMin, tt.wantMax)
    47  			}
    48  		})
    49  	}
    50  }
    51  
    52  func TestUpdateMinMaxInt(t *testing.T) {
    53  	tests := []struct {
    54  		name    string
    55  		value   int
    56  		min     int
    57  		max     int
    58  		wantMin int
    59  		wantMax int
    60  	}{
    61  		{"all same", 1, 1, 1, 1, 1},
    62  		{"equal to min", 1, 1, 2, 1, 2},
    63  		{"equal to max", 2, 1, 2, 1, 2},
    64  		{"middle", 2, 1, 3, 1, 3},
    65  		{"smaller", 0, 1, 2, 0, 2},
    66  		{"larger", 3, 1, 2, 1, 3},
    67  	}
    68  	for _, tt := range tests {
    69  		t.Run(tt.name, func(t *testing.T) {
    70  			UpdateMinMaxInt(tt.value, &tt.min, &tt.max)
    71  			if tt.min != tt.wantMin || tt.max != tt.wantMax {
    72  				t.Errorf("UpdateMinMaxInt() = (%v, %v), want (%v, %v)", tt.min, tt.max, tt.wantMin, tt.wantMax)
    73  			}
    74  		})
    75  	}
    76  }