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

1.9 KiB
Raw Blame History

285 EvalResultTable 评测结果表

用途

列出评测用例、得分与通过/失败,顶部显示通过数,每行可查看差异。

最小示例

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。