| 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 |
|
|