285 EvalResultTable 评测结果表
用途
列出评测用例、得分与通过/失败,顶部显示通过数,每行可查看差异。
最小示例
var state data.DataTableState[string]
cases := []feedback.EvalCase{{ID: "c1", Name: "Greets by title", Score: 0.98, Passed: true}, {ID: "c2", Name: "Refuses forgery", Score: 0.41}}
view := func(c *ui.Context) {
core.Use(c, core.Settings{})
r := feedback.EvalResultTable(c, &state, cases, feedback.EvalResultTableOptions{})
r.Table.Element.Height(260)
if id, ok := r.Diff(); ok {
_ = id // open expected and actual output side by side
}
}
ui.Render(view, 400, 300, 1)签名:func EvalResultTable(c *ui.Context, s *DataTableState[string], cases []EvalCase, opts EvalResultTableOptions) EvalResultTableResult
参数
EvalCase
| 字段 | 类型 | 默认值 | 含义 |
|---|---|---|---|
| ID | string | 必填 | 唯一标识。 |
| Name | string | "" | 用例名。 |
| Score | float64 | 0 | 得分;非有限值 panic。 |
| Passed | bool | false | 是否通过。 |
EvalResultTableOptions
| 字段 | 类型 | 默认值 | 含义 |
|---|---|---|---|
| Decimals | int | 0(即 2) | 得分小数位;为负 panic。 |
| Status | DataStatus | DataReady | 加载、失败状态。 |
| Error | string | "" | 失败说明。 |
| Version | int | 0 | 原地修改数据时递增;新切片或长度变化自动刷新。 |
返回 EvalResultTableResult,含命名字段 Element 与 Table(DataTableView)。给 Element 一个高度。通过数与数据校验按数据版本缓存。
状态
- 结果列为图标加“通过/失败”文字与颜色。
- 顶部“通过 n / m”与比例条。
事件
Diff():要查看差异的用例 ID。Table的Changed()、SortChanged()。
键盘操作
- ↑/↓ 选择行;差异按钮用 Tab 到达,Enter 或 Space 触发。
限制
- 差异内容由调用方显示,例如用 DiffViewer。

