Files
MujicaUI/docs/components/285-eval-result-table.md
T

64 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 285 EvalResultTable 评测结果表
## 用途
列出评测用例、得分与通过/失败,顶部显示通过数,每行可查看差异。
## 最小示例
```go
var state mujica.DataTableState[string]
cases := []mujica.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) {
mujica.Use(c, mujica.Settings{})
r := mujica.EvalResultTable(c, &state, cases, mujica.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。