Skip to content

Presentation-only two-decimal comparison Markdown (SAM_UI#238 companion) - #15

Merged
michaldengusiak merged 4 commits into
sow/2026-Q4from
claude/tas-openstudio-comparison
Oct 17, 2026
Merged

michaldengusiak merged 4 commits into
sow/2026-Q4from
claude/tas-openstudio-comparison

Conversation

@michaldengusiak

@michaldengusiak michaldengusiak commented Oct 17, 2026 •

Copy link
Copy Markdown

Merged and closed out - 2026-10-17

Merged into sow/2026-Q4 as 912ae94ef68af20b437fc92ec7e8891fd1cb640f, using a merge commit guarded to owner-approved head 4a7da6b1821d303d183fe87d275b5d0aaf05460e. No automatic merge or administrative bypass. Owner authorization came from the explicit gated merge instruction; no GitHub approval review was fabricated.

Final-head Build 39068752757 and SPDX 39068752748 passed. Post-merge Build 39070909651 and manually dispatched SPDX 39071240235 passed at the immutable merge SHA. Hosted comparator 100/100 and public-API 2/2, zero skipped. Dependency logs: SAM / SAM_Mollier sow/2026-Q4, SAM_IAPWS default branch.

Closeout: 68eded0060047af714853a02a152fb9c960bfeb1, docs-only PROJECT_PROGRESS.md on Q4 with [skip ci]. Fully merged task branch claude/tas-openstudio-comparison was deleted remotely with an expected-SHA lease and locally with branch -d after all cleanup guards passed; worktrees/frozen quarters preserved. Primary checkout is clean Q4. This removes dependency-branch shadowing for downstream UI checks.

No local test suite/build or real simulation was rerun during merge/closeout. Post-merge tests executed in CI; saved reports/hashes and existing acceptance artifacts were independently inspected. Numerical engine disagreement, HungaryHouse Tas crash, unavailable input manifests and producer deployment remain unresolved. UI#237/#238 are held for missing G1 evidence/explicit deferrals and approval of their documentation-corrected pins. Earlier implementation record follows; this merge status supersedes its not-merged wording.


Presentation-only two-decimal comparison Markdown

Status: implemented; not merged. Companion to SAM_UI#238. Follow-up to merged SAM_Validation#14.

  • Base: sow/2026-Q4 at 8fa79f5c8559c2db11e0ce2a26193e5ccad80e79
  • Tested content SHA: a39e4a9fd11019de9400f62fe5e68179539a4661
  • Head: claude/tas-openstudio-comparison at 4a7da6b (record-only commit after the tested content)

Scope

Presentation only. comparison.csv and comparison-summary.json keep their schema, columns and full precision; Format.Number/Format.Percent remain the raw contract. No simulation, conversion, metric mapping, unit conversion, tolerance, gate or comparison arithmetic changed.

What changed

  • New PresentationFormat: two-decimal engineering values, absolute differences and percentages; hour-of-year values and hour differences stay integers; null/NaN/infinity render n/a and are never zero; informational label Informational - excluded from numerical status; unit mismatch remains distinct; space name/GUID and input-manifest helpers.
  • ComparisonResult adds contributing/informational Fail counts using the comparator's existing classification. The saved example is 10 Fail (4 contributing, 6 informational); overall/numerical Fail, coverage Warn, provenance/reconciliation Pass are unchanged.
  • Markdown now explains the normalized difference formula and 5.00%/15.00% thresholds, the n/a/- markers, designDaySource=None, the input-manifest limitation and engine warnings/notes. Reconciliation uses two decimals and adds a normalized difference column; space metrics show the space name beside its GUID.
  • Review finding fixed (fractional peak-hour thresholds): WriteMarkdown.AppendToleranceProfile cast HourWarnAbsolute/HourFailAbsolute to int, so a valid profile with 1.5 h / 24.5 h was reported as 1 h / 24 h. It now renders both with Format.Number, exactly as comparison.csv does. Integer formatting remains where it belongs: hour-of-year indices and hour differences. The default profile still renders 1 h / 24 h, so the goldens are unchanged.
  • Markdown goldens refreshed for the presentation change. CSV and summary JSON goldens are byte-identical.

Validation

Check Result
dotnet test SAM.Analytical.Benchmark.Compare.Tests -c Release PASS 100/100 (includes the fractional-hour regression)
dotnet test SAM.Analytical.Benchmark.Compare.ApiTests -c Release PASS 2/2
SAM_Validation.sln Release rebuild PASS, 0 errors (1 pre-existing warning)
Saved box-both documents Markdown regenerated; CSV and summary JSON SHA-256 byte-identical to the saved run
Regression cases CSV and JSON byte-identical; Markdown golden refreshed

The new regression ReportTests.MarkdownKeepsFractionalHourThresholdsAndAgreesWithTheRawProfile asserts the Markdown contains 1.5 h / 24.5 h (and not 1 h / 24 h), that the summary JSON's toleranceProfileDetail.hourWarnAbsolute/hourFailAbsolute equal the raw profile, and that every CSV row carries 1.5,24.5.

Saved comparison invariants: 6 Match / 0 Warn / 10 Fail / 2 N/A; 4 Fail rows contribute to the numerical status and 6 are informational. Overall/Numerical Fail, Coverage Warn, Provenance/Reconciliation Pass are unchanged. Regenerated comparison.csv SHA-256 8092B384DD9D9BA9289E1C10B77DB7C93BCD95E911B4A0F32CEE93373C0ECD3D and comparison-summary.json SHA-256 36B9D353B35CDFEB1FBAC70B78317BF36C4F393159F114FCF39716D825FF4A98 are byte-identical to the saved run.

Gaps / follow-up

  • The UI grid and its 1180/820 screenshots belong to SAM_UI#238, which now uses fixed readable column widths and the grid's own horizontal scrolling. This repository has no UI layout code.
  • Numerical discrepancy is not resolved here: TAS heating/cooling and peak values differ from OpenStudio (box example: heating 742.78 vs 2810.02 kWh, cooling 2156.92 vs 3832.50 kWh). The 871/872 heating-hour and cooling-peak discrepancies are separate engineering investigations. No tolerance or engine change is proposed.
  • Per-engine input manifests remain unavailable (SAM_OpenStudio#30, SAM_UI#230).

Hosted CI passed at final head 4a7da6b: Build (Windows) run 39068752757 succeeded, including Test benchmark comparator (dotnet test); SPDX run 39068752748 succeeded. The additional local suite and build results are listed above.

Next step

Merge this presentation PR before SAM_UI#238 so the UI and Markdown use the same helpers, then rerun #238 CI. Do not merge automatically.

Adds a presentation-only formatter for the Markdown report. CSV and summary JSON keep the raw full-precision contract; no tolerance, gate, engine or calculation changes.
Records tested content 7fd54b3 and the presentation-only scope.
@michaldengusiak
michaldengusiak merged commit 912ae94 into sow/2026-Q4 Oct 17, 2026
2 checks passed
@michaldengusiak
michaldengusiak deleted the claude/tas-openstudio-comparison branch October 17, 2026 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant