# テスト方針 (Testing Strategy)

## テストフレームワーク (Framework)

- pytest を使用する（`pyproject.toml` で設定済み）

## テストの種類 (Test Types)

| 種類 | 対象 | 例 |
| --- | --- | --- |
| ユニットテスト | 個々の関数・モジュール | `calc_cov` が既知の配列で正しい値を返す |
| 統合テスト | パイプライン全体の連結 | 画像読み込みから CSV 出力まで通しで動く |

## テスト対象の優先度 (Priority)

1. **解析ロジック**（`uniformity.py`，`color.py`）— 数値の正しさが論文の信頼性に直結する
2. **入出力**（`loader.py`，`exporter.py`）— 形式変換のミスを防ぐ
3. **可視化**（`plotter.py`）— 出力ファイルが生成されることを確認する程度でよい

## テストデータ (Test Data)

- 小さなテスト用画像（例: 8x8 px）を `tests/fixtures/` に配置する
- 既知の値を持つ合成画像で期待値と比較する

```python
# 例: 均一な白画像（全ピクセル 200）→ CoV = 0.0
uniform_image = numpy.full((8, 8), 200, dtype=numpy.uint8)
assert calc_cov(uniform_image) == 0.0
```

## 実行方法 (Execution)

```bash
# 全テスト実行
pytest

# 特定のテストファイル
pytest tests/analysis/test_uniformity.py

# 詳細出力
pytest -v
```

## カバレッジ基準 (Coverage)

- 解析ロジック（`src/analysis/`）: 主要関数を網羅する
- 厳密なカバレッジ率は設けない（研究用プロジェクトのため）
