package rules import "testing" func TestEvaluate(t *testing.T) { cases := []struct { operator string value float64 threshold float64 want bool }{ {">", 29, 28, true}, {">", 27, 28, false}, {"<", 27, 28, true}, {"<", 29, 28, false}, {">=", 28, 28, true}, {"<=", 28, 28, true}, {"=", 28, 28, true}, {"=", 28.1, 28, false}, {"!=", 28.1, 28, true}, {"!=", 28, 28, false}, } for _, c := range cases { got, err := Evaluate(c.operator, c.value, c.threshold) if err != nil { t.Fatalf("operator %q: unexpected error: %v", c.operator, err) } if got != c.want { t.Errorf("Evaluate(%q, %v, %v) = %v, want %v", c.operator, c.value, c.threshold, got, c.want) } } } func TestEvaluate_UnknownOperator(t *testing.T) { if _, err := Evaluate("~=", 1, 2); err == nil { t.Fatal("expected error for unknown operator") } }