1package difficulty23import "testing"45func TestValidateElo(t *testing.T) {6 for _, elo := range []Elo{MinElo, 600, 1200, 1800, 2400, SoftCapElo} {7 if err := ValidateElo(elo); err != nil {8 t.Fatalf("ValidateElo(%d) returned error: %v", elo, err)9 }10 }1112 for _, elo := range []Elo{-1, SoftCapElo + 1} {13 if err := ValidateElo(elo); err == nil {14 t.Fatalf("ValidateElo(%d) returned nil error", elo)15 }16 }17}1819func TestClampElo(t *testing.T) {20 tests := []struct {21 input Elo22 want Elo23 }{24 {input: -100, want: MinElo},25 {input: MinElo, want: MinElo},26 {input: 1500, want: 1500},27 {input: SoftCapElo, want: SoftCapElo},28 {input: 3200, want: SoftCapElo},29 }3031 for _, tt := range tests {32 if got := ClampElo(tt.input); got != tt.want {33 t.Fatalf("ClampElo(%d) = %d, want %d", tt.input, got, tt.want)34 }35 }36}3738func TestScore01(t *testing.T) {39 tests := []struct {40 input Elo41 want float6442 }{43 {input: -100, want: 0},44 {input: MinElo, want: 0},45 {input: 1500, want: 0.5},46 {input: SoftCapElo, want: 1},47 {input: 3200, want: 1},48 }4950 for _, tt := range tests {51 if got := Score01(tt.input); got != tt.want {52 t.Fatalf("Score01(%d) = %v, want %v", tt.input, got, tt.want)53 }54 }55}