diff --git a/.gitignore b/.gitignore index 5ad67c9c..d228c7b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # AI stuff .claude/ +CLAUDE.md # VS Code .vscode/* diff --git a/src/report.jl b/src/report.jl index 63f81b32..008ffc4f 100644 --- a/src/report.jl +++ b/src/report.jl @@ -71,6 +71,12 @@ function _cmp_cell(r::ModelResult, results_root::String, csv_max_size_mb::Int) end end +function _cmp_status(r::ModelResult)::String + r.cmp_total == 0 && r.cmp_skip == 0 && return "na" + r.cmp_pass == r.cmp_total && return "pass" + return "fail" +end + function rel_log_file_or_nothing(results_root::String, model::String, phase::String)::Union{String,Nothing} path = joinpath(results_root, "files", model, "$(model)_$(phase).log") @@ -108,7 +114,7 @@ function generate_report(results::Vector{ModelResult}, results_root::String, cmp_summary_row = n_cmp_models > 0 ? """ Reference Comparison (MAP-LIB)$n_cmp_pass$n_cmp_models$(pct(n_cmp_pass,n_cmp_models))""" : "" - rows = join([""" + rows = join([""" $(r.name).bmo $(_status_cell(r.export_success, r.export_time, rel_log_file_or_nothing(results_root, r.name, "export"))) $(_status_cell(r.parse_success, r.parse_time, rel_log_file_or_nothing(results_root, r.name, "parsing"))) @@ -141,6 +147,10 @@ function generate_report(results::Vector{ModelResult}, results_root::String, td.na { color: #888; } a { color: #0366d6; text-decoration: none; } a:hover { text-decoration: underline; } + .filter-row th { background: #f5f5f5; } + .filter-row select { font-size: 12px; padding: 1px 4px; } + .filter-row input { font-size: 12px; padding: 1px 4px; width: 16em; box-sizing: border-box; } + .filter-row input.invalid { outline: 2px solid #c00; } @@ -162,16 +172,54 @@ Total run time: $(time_str)

Simulation (MTK.jl) $n_sim$n_par$(pct(n_sim,n_par))$cmp_summary_row - - - - - - - - +
ModelBM ExportBM ParseMTK SimRef Cmp
+ + + + + + + + + + + + + + + + + $rows +
ModelBM ExportBM ParseMTK SimRef Cmp
+ """