# Annotation Class & YAML Tests

**Task**: AZ-159_test_annotation_classes
**Name**: Annotation Class & YAML Tests
**Description**: Implement 4 tests for annotation class loading, weather mode expansion, YAML generation, and total class count
**Complexity**: 2 points
**Dependencies**: AZ-152_test_infrastructure
**Component**: Blackbox Tests
**Jira**: AZ-159
**Epic**: AZ-151

## Problem

The system loads 17 base annotation classes, expands them across 3 weather modes, and generates a data.yaml with 80 class slots. Tests verify the class pipeline.

## Outcome

- 4 passing pytest tests in `tests/test_annotation_classes.py`

## Scope

### Included
- BT-CLS-01: Load 17 base classes from classes.json
- BT-CLS-02: Weather mode expansion (offsets 0, 20, 40)
- BT-CLS-03: YAML generation produces nc: 80 with 17 named + 63 placeholders
- RL-CLS-01: Total class count is exactly 80

### Excluded
- Training configuration (beyond scope)

## Acceptance Criteria

**AC-1: Base classes**
Given classes.json
When AnnotationClass.read_json() is called
Then returns dict with 17 unique base class entries

**AC-2: Weather expansion**
Given classes.json
When classes are read
Then same class exists at offset 0 (Norm), 20 (Wint), 40 (Night)

**AC-3: YAML generation**
Given classes.json + dataset path
When create_yaml() runs with patched paths
Then data.yaml contains nc: 80, 17 named classes + 63 Class-N placeholders

**AC-4: Total count**
Given classes.json
When generating class list
Then exactly 80 entries

## Constraints

- Uses classes.json from project root (fixture_classes_json)
- YAML output goes to tmp_path
- Resource limit test marked: `@pytest.mark.resource_limit`
