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 }