File size: 1,112 Bytes
ae6d94c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from __future__ import annotations

import argparse
from pathlib import Path

import pytest

from sctm_next_round import structure_gate


pytestmark = pytest.mark.integration


def test_step2_structure_gate_passes_on_canonical_smoke_tensor(tmp_path: Path) -> None:
    args = argparse.Namespace(
        tensor_dir=structure_gate.DEFAULT_TENSOR_SMOKE / "tensor",
        stage0_dir=structure_gate.DEFAULT_TENSOR_SMOKE / "stage0",
        out_dir=tmp_path / "structure_gate",
        split="train",
        action_dir=None,
        max_windows=32,
        batch_size=4,
        d_model=16,
        n_heads=4,
        n_layers=1,
        dropout=0.0,
        device="cpu",
        seed=20260605,
    )
    summary = structure_gate.run(args)
    assert summary["status"] == "pass"
    assert summary["n_gates"] == 10
    assert summary["n_fail"] == 0
    assert not summary["blocking_failure_ids"]
    assert (args.out_dir / "unit_test_summary.csv").exists()
    assert (args.out_dir / "unit_copy_delta_anchor_missing_current.json").exists()
    assert (args.out_dir / "informative_observation_gate.json").exists()