a06f331eb8
CI / benchmark (push) Has been skipped
install-script / posix-syntax (push) Successful in 6m1s
CI / build-onnx (push) Failing after 6m43s
init-smoke / dry-run (push) Failing after 15m57s
security / govulncheck (push) Has been cancelled
security / trivy-fs (push) Has been cancelled
CI / test (1.26, ubuntu-latest) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
CI / test (1.26, macos-latest) (push) Has been cancelled
CI / build-windows (push) Has been cancelled
CI / lint (push) Has been cancelled
install-script / powershell-syntax (push) Has been cancelled
install-script / install (macos-14) (push) Has been cancelled
install-script / install (ubuntu-latest) (push) Has been cancelled
55 lines
1.6 KiB
Go
55 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/zzet/gortex/internal/eval/parity"
|
|
)
|
|
|
|
func TestParityBaselineCheck(t *testing.T) {
|
|
base := parity.Baseline{"go": 0.95, "rust": 0.80}
|
|
|
|
// rust regressed well below baseline; go beats it.
|
|
regs := base.Check([]parity.LanguageCoverage{
|
|
{Language: "go", Coverage: 0.96},
|
|
{Language: "rust", Coverage: 0.70},
|
|
}, 0.005)
|
|
if len(regs) != 1 || regs[0].Language != "rust" {
|
|
t.Fatalf("expected a single rust regression, got %+v", regs)
|
|
}
|
|
|
|
// A dip within epsilon is not a regression; an at-baseline language is fine.
|
|
if r := base.Check([]parity.LanguageCoverage{
|
|
{Language: "go", Coverage: 0.949},
|
|
{Language: "rust", Coverage: 0.80},
|
|
}, 0.005); len(r) != 0 {
|
|
t.Errorf("within-epsilon dip was flagged: %+v", r)
|
|
}
|
|
|
|
// A baseline language missing from the measured set counts as a regression.
|
|
if r := base.Check([]parity.LanguageCoverage{{Language: "go", Coverage: 0.96}}, 0.005); len(r) != 1 || r[0].Language != "rust" {
|
|
t.Errorf("a dropped-out language should regress: %+v", r)
|
|
}
|
|
|
|
// The committed baseline parses (currently empty → nothing enforced).
|
|
if b, err := parity.LoadBaseline(); err != nil {
|
|
t.Errorf("LoadBaseline: %v", err)
|
|
} else if len(b) != 0 {
|
|
t.Logf("committed baseline carries %d languages", len(b))
|
|
}
|
|
|
|
// MarshalBaseline round-trips through JSON.
|
|
out, err := parity.MarshalBaseline([]parity.LanguageCoverage{{Language: "go", Coverage: 0.96}})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var rt parity.Baseline
|
|
if err := json.Unmarshal(out, &rt); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if rt["go"] != 0.96 {
|
|
t.Errorf("round-trip lost go coverage: %+v", rt)
|
|
}
|
|
}
|