File size: 1,758 Bytes
e0265b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from __future__ import annotations

from adam.models import ExecutionPlan, Job, JobStatus, PlanStep
from adam.commands import TrainingCommand


def test_job_round_trip_preserves_enums_and_plan() -> None:
    job = Job(
        plan=ExecutionPlan(
            request="Check GPU",
            summary="Inspect resources",
            steps=[
                PlanStep(
                    "system_monitor",
                    "Inspect system",
                    "Read local sensors",
                    {"project_name": "System check"},
                )
            ],
        ),
        status=JobStatus.FINISHED,
        progress=100,
        preview_path="D:/runs/preview_epoch_5.png",
        preview_epoch=5,
        preview_next_epoch=10,
        preview_prompt="test prompt",
        preview_seed=42,
        preview_steps=30,
    )

    restored = Job.from_dict(job.to_dict())
    assert restored.status == JobStatus.FINISHED
    assert restored.plan.steps[0].tool_id == "system_monitor"
    assert restored.progress == 100
    assert restored.preview_path == "D:/runs/preview_epoch_5.png"
    assert restored.preview_epoch == 5
    assert restored.preview_next_epoch == 10
    assert restored.preview_prompt == "test prompt"
    assert restored.preview_seed == 42
    assert restored.preview_steps == 30


def test_training_command_accepts_live_preview_options() -> None:
    command = TrainingCommand.from_dict({
        "trainer": "ddpm", "dataset": "D:/data", "model_name": "Test",
        "epochs": 10,
        "training_options": {
            "preview_enabled": True, "preview_every": 3,
            "preview_prompt": "a test subject", "preview_seed": 123456789,
        },
    })

    assert command.training_options["preview_every"] == 3