---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 25
  claims_with_evidence: 25
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：babel-plugin-transform-exponentiation-operator 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存テストファイル・テストフィクスチャなどの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：25 / 25、根拠なし：0
- 優先レビュー（高）
  1. 全てのテストケースにソースコードまたはテストフィクスチャによる根拠あり
  2. 特に優先度「高」のテストケース（UT-EXP-001, 005, 006, 007, 008, 009, 010, 012, 015）は実際のフィクスチャで動作確認済み
  3. 根拠不足の項目なし

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `packages/babel-plugin-transform-exponentiation-operator/src/index.ts`（メインソースコード）
- E-02: `packages/babel-plugin-transform-exponentiation-operator/package.json`（パッケージ定義）
- E-03: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/exponentiation-operator/binary/input.js`
- E-04: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/exponentiation-operator/binary/output.js`
- E-05: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/exponentiation-operator/assignment/input.js`
- E-06: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/exponentiation-operator/assignment/output.js`
- E-07: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/exponentiation-operator/memoise-object/input.js`
- E-08: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/exponentiation-operator/memoise-object/output.js`
- E-09: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/exponentiation-operator/memoise-object/exec.js`
- E-10: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/exponentiation-operator/memoise-object-in-default-args/input.js`
- E-11: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/exponentiation-operator/memoise-object-in-default-args/output.js`
- E-12: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/exponentiation-operator/comprehensive/exec.js`
- E-13: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/regression/4349/input.js`
- E-14: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/regression/4349/output.js`
- E-15: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/regression/4349-keep-super/input.js`
- E-16: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/regression/4349-keep-super/output.js`
- E-17: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/regression/4403/input.js`
- E-18: `packages/babel-plugin-transform-exponentiation-operator/test/fixtures/regression/4403/output.js`

## 3) Claims と根拠の対応（レビューの主戦場）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | UT-EXP-001: 二項べき乗演算がMath.powに変換されること | E-01 (build関数, L9-14), E-03, E-04 | ○ |
| C-02 | UT-EXP-002: 変数を含むべき乗演算が正しく変換されること | E-01 (build関数, L9-14) | ○ |
| C-03 | UT-EXP-003: 指数が0の場合に正しく変換されること | E-01 (build関数, L9-14) | ○ |
| C-04 | UT-EXP-004: 負の指数が正しく変換されること | E-01 (build関数, L9-14), E-12 (2 ** -1 * 2) | ○ |
| C-05 | UT-EXP-005: 静的ノードの場合はそのまま返却されること | E-01 (maybeMemoize関数, L20-21) | ○ |
| C-06 | UT-EXP-006: 動的ノードの場合は一時変数が生成されること | E-01 (maybeMemoize関数, L29-40), E-07, E-08 | ○ |
| C-07 | UT-EXP-007: 関数パラメータパターン内ではnullが返却されること | E-01 (maybeMemoize関数, L24-27) | ○ |
| C-08 | UT-EXP-008: **=演算子が=演算子とMath.powに変換されること | E-01 (AssignmentExpression visitor, L82-94), E-05, E-06 | ○ |
| C-09 | UT-EXP-009: メンバー式の**=でオブジェクトがメモ化されること | E-01 (AssignmentExpression visitor, L51-81), E-07, E-08, E-09 | ○ |
| C-10 | UT-EXP-010: 計算プロパティの**=でプロパティもメモ化されること | E-01 (AssignmentExpression visitor, L66-69), E-17, E-18 | ○ |
| C-11 | UT-EXP-011: ネストされたメンバー式の**=が正しく変換されること | E-01, E-12 (o.p.q **= 2) | ○ |
| C-12 | UT-EXP-012: デフォルト引数内の**=がIIFEでラップされること | E-01 (AssignmentExpression visitor, L56-61), E-10, E-11 | ○ |
| C-13 | UT-EXP-013: super式の**=が正しく変換されること | E-01, E-13, E-14, E-15, E-16 | ○ |
| C-14 | UT-EXP-014: 演算子が**=でない場合は処理をスキップすること | E-01 (AssignmentExpression visitor, L49) | ○ |
| C-15 | UT-EXP-015: **演算子がMath.powに変換されること | E-01 (BinaryExpression visitor, L97-107), E-03, E-04 | ○ |
| C-16 | UT-EXP-016: ネストされた**演算子が正しく変換されること | E-01, E-12 (2 ** (3 ** 2)) | ○ |
| C-17 | UT-EXP-017: 前置インクリメントを含む**演算子が正しく変換されること | E-01, E-12 (2 ** ++x) | ○ |
| C-18 | UT-EXP-018: 算術演算と組み合わせた**が正しく変換されること | E-01, E-12 (3 * (2 ** 3)) | ○ |
| C-19 | UT-EXP-019: 負の指数を含む式が正しく変換されること | E-01, E-12 (2 ** -1 * 2) | ○ |
| C-20 | UT-EXP-020: 演算子が**でない場合は処理をスキップすること | E-01 (BinaryExpression visitor, L99) | ○ |
| C-21 | UT-EXP-021: プラグインが正しい名前で登録されること | E-01 (L44: name: "transform-exponentiation-operator") | ○ |
| C-22 | UT-EXP-022: Babel 7.x互換性が宣言されること | E-01 (L5: api.assertVersion) | ○ |
| C-23 | UT-EXP-023: Babel 8.x互換性が宣言されること | E-01 (L5: ^8.0.0), E-02 (version: "8.0.0-rc.2") | ○ |
| C-24 | UT-EXP-024: 静的メンバー式の場合はメモ化されないこと | E-01 (maybeMemoize関数, L20-21) | ○ |
| C-25 | UT-EXP-025: 非計算プロパティの場合はプロパティがメモ化されないこと | E-01 (AssignmentExpression visitor, L70-76) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし

全てのテストケースについて、ソースコードまたはテストフィクスチャに基づく根拠が確認できました。

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全てのテストケースがソースコード・テストフィクスチャに基づいており、信頼性が高い

## 6) レビュアーチェックリスト（最小）
- [ ] build関数のテストケース（UT-EXP-001〜004）がMath.pow変換の正確性を検証しているか
- [ ] maybeMemoize関数のテストケース（UT-EXP-005〜007）がメモ化の条件分岐を網羅しているか
- [ ] AssignmentExpressionのテストケース（UT-EXP-008〜014）が代入演算子変換の全パターンをカバーしているか
- [ ] BinaryExpressionのテストケース（UT-EXP-015〜020）が二項演算子変換の全パターンをカバーしているか
- [ ] エッジケース（デフォルト引数、super式、計算プロパティ）のテストケースが適切に定義されているか
- [ ] 優先度の設定が適切か（ビジネスクリティカルな変換が「高」になっているか）
