005 ねぼすけ信号係・教材QA / 2026-10-05 UTC

実行環境
クラウドLinux、Python3.12.14、インストール済み実Pyxel2.9.9。
対応要件はPython3.11以上。3.11実インタプリター、Windows/macOS GUIの実測ではありません。
追加インストール、ブラウザー再現、外部投稿は行っていません。

規則・Controller
qa/full_tests.txt: 27テスト成功（任意の原作直接比較1件を含む）。
qa/standalone_tests.txt: 原作指定なしで26成功、任意直接比較1件skip。
FIFO、空列、通過時間の両端、バス中の列、赤でも進むactive、START21、同色再指定、
両赤と待ち列の区別、片青抑止、バス解放待ち、予約中の準備停止、予約取消、最長横断、
人の待ち限界と同フレーム開始、7台21更新の猶予と解除、待ち合計、完了、保存則、
終端停止、P/R優先、選択と切替、長押し、独立import、UTF-8、MIT、JSONスキーマを検査。
ランダム40シード×600更新は有限範囲の合成操作であり、全入力の証明ではありません。

原作との直接比較
qa/canonical_comparison.jsonとqa/comparison.log:
最終05と原作Bを44入力スケジュールで初期44状態＋26,400更新後状態比較、全件一致。
44本はデモ、無操作、全赤、バス進入後の赤、ランダム40本。終端停止中の更新も含みます。
時刻・状態・到着予定・列・通過中・青指令・準備・人の待ちと横断・ログ・猶予・
各待ち合計・切替数を照合。失敗理由は明示した英日対応で意味を照合。
デモ・無操作・全赤・バスの4本は注目フレームの双方状態を収録し、残りは最終状態SHAを記録。
unit test側では別途03の車のみ3作戦、04の安全デモも比較します。
これらは重なる試験なので比較数を合算して「異なる状況の総数」とは数えません。
原作A/C、詳細UI、日本語notice、historyの表示同等性は対象外です。
元ファイルは-Bとdont_write_bytecodeで読み、比較前後のSHA256不変を確認。
qa/source_provenance.jsonに原作・共通README・ライセンスの出所を記録。
原作19テストと別途の実原作自動デモは親作業の証拠で、本教材の件数には含めません。

実Pyxel描画
qa/render_results.json: 14プロセスすべて終了コード0、出力状態が純粋Controllerと一致。
各5段階の初期12描画フレーム＋意味のある到達点10枚、追加4枚を実描画。
01: 96更新、先頭0秒の車を通して1/2/3秒の3台を残す。
02: 125更新、BUSY32と待ち1台。
03: 125更新、A赤でもBUSY32、後続1台。
04: 141更新、両RESERVED、準備21、WALK34フレーム=1.13秒。
05: 合成600入力後、t345で終端停止、WIN、12台と1組、車待ち557フレーム台、人待ち0。
追加: 04_bus_blocked（125）、04_resumed（195）、05_wait_failure（300）、05_queue_failure（280）。
ヘッドレス初期検査はモデルを進めず初期画面だけを描きます。
合成入力リプレイは実際のControllerから更新しますが、OSキーイベントではありません。

画像確認
14枚の主PNGを実画像として確認済み。数字・信号色・予約・待ち列とactive・選択枠・
操作案内・WIN/FAILに切れや重なりがないこと、本文の到達値との一致を確認しました。
04の本文の横断残りを、実画像の34/30=1.13秒へ修正しました（規則コードは不変）。
qa/visual_inspection.jsonに画像ごとの観察を記録。

単独配布と文字コード
qa/isolation_results.json: 各段階を.py1本だけの「単独 日本語 space」フォルダーへコピーし、
「無関係な 作業場所」cwdから実Pyxel headless初期化、5本とも成功。
5枚の出力PNGは対応する確認済み初期PNGとバイト一致。追加素材も原作importも不要です。
qa/source_free_tests.txt: 原作のない配布最小構成へテストもコピーした独立試験。
qa/cp932_checks.json: Path.read_text/write_textの省略時をCP932に置換したLinux模擬。
明示UTF-8でスクリプト解析と日本語JSON往復が成功。OSロケール変更やWindows実測ではありません。

未検証・限界
人による楽しさや学びやすさ、ネイティブOSの窓・キーイベント、Windows/macOS GUI、
ブラウザー、音声出力は未検証。設計上無音で、SDL_AUDIODRIVER=dummyは音の成功証拠ではありません。
安全な状態遷移を学ぶゲームであり、現実の道路信号の設計・安全認証向けではありません。
