Files
hakorune/docs/archive/roadmap/phases/phase-10.5/10.1f_testing/README.md
nyash-codex 811dfebf98 fix(joinir): Phase 241-EX - Remove hardcoded 'sum' check from Pattern3
Remove legacy hardcoded 'sum' carrier validation that was blocking
array_filter patterns with different accumulator names (e.g., 'out').

Before: Pattern3 required carrier named 'sum' to exist
After: Pattern3 uses carrier_info generically (any carrier name works)

Test results:
- phase49_joinir_array_filter_smoke: PASS 
- phase49_joinir_array_filter_fallback: PASS 
- phase49_joinir_array_filter_ab_comparison: PASS 
- Full suite: 909/909 PASS, 0 FAIL

Also: Archive old roadmap documentation (67k lines moved to docs/archive/)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 00:48:42 +09:00

2.5 KiB
Raw Blame History

[Archived] 旧10.1系ドキュメントです。最新は ../INDEX.md を参照してください。

Phase 10.1f - テストとベンチマーク

🎯 このフェーズの目的

Differential Testingでバグを発見し、性能向上を検証する。

🧪 Differential Testing戦略

1. テストフレームワーク

pub fn differential_test(code: &str) -> TestResult {
    // CPythonで実行オラクル
    let python_result = capture_python_execution(code)?;
    
    // Nyashで実行
    let nyash_result = execute_with_pythonparser(code)?;
    
    // 結果比較
    compare_results(python_result, nyash_result)
}

2. 比較項目

  • 標準出力 - print文の結果
  • 戻り値 - 関数の返す値
  • 例外 - エラーメッセージ(正規化後)
  • 副作用 - グローバル変数の変更等

3. テストコーパス

test_corpus/
├── basic/          # 基本構文テスト
├── stdlib/         # 標準ライブラリから抜粋
├── pypi_top100/    # 人気ライブラリから抜粋
└── edge_cases/     # エッジケース集

📊 ベンチマーク

1. 性能測定対象

# 数値計算ベンチマーク
def mandelbrot(max_iter=100):
    # フラクタル計算
    pass

# ループベンチマーク  
def sum_of_primes(n):
    # 素数の和
    pass

# 再帰ベンチマーク
def ackermann(m, n):
    # アッカーマン関数
    pass

2. 測定項目

  • 実行時間 - CPython vs Nyash
  • メモリ使用量 - 最大/平均
  • コンパイル時間 - AST変換時間
  • フォールバック率 - 関数別統計

🐛 バグ発見と報告

発見されたバグの例

[BUG-001] for/else semantics mismatch
  Python: else executed when no break
  Nyash: else never executed
  Fixed in: commit abc123

[BUG-002] Division operator difference  
  Python: 5/2 = 2.5 (float)
  Nyash: 5/2 = 2 (integer)
  Fixed in: commit def456

完了条件

  • Differential Testingフレームワークが動作する
  • 基本的なテストコーパスが準備されている
  • 10個以上のバグを発見・修正
  • ベンチマークで2倍以上の高速化を確認
  • CI/CDパイプラインに統合されている

📈 成功の測定

  • カバレッジ率: 70%以上の関数がコンパイル
  • 性能向上: 純Pythonループで2-10倍
  • バグ発見数: Phase毎に10件以上
  • テスト成功率: 95%以上

⏭️ 次のフェーズ

→ Phase 10.1g (ドキュメント作成)