split actuators from energy storage
This commit is contained in:
@@ -9,7 +9,7 @@ def test_pipeline_run_lifecycle(seeded_repo):
|
||||
"""Pipeline run should transition: pending -> running -> completed."""
|
||||
repo = seeded_repo
|
||||
domain = repo.get_domain("urban_commuting")
|
||||
config = {"passes": [1, 2, 3], "threshold": 0.1, "dimensions": ["platform", "power_source"]}
|
||||
config = {"passes": [1, 2, 3], "threshold": 0.1, "dimensions": ["platform", "actuator", "energy_storage"]}
|
||||
run_id = repo.create_pipeline_run(domain.id, config)
|
||||
|
||||
run = repo.get_pipeline_run(run_id)
|
||||
@@ -19,10 +19,10 @@ def test_pipeline_run_lifecycle(seeded_repo):
|
||||
scorer = Scorer(domain)
|
||||
pipeline = Pipeline(repo, resolver, scorer)
|
||||
|
||||
pipeline.run(domain, ["platform", "power_source"], passes=[1, 2, 3], run_id=run_id)
|
||||
pipeline.run(domain, ["platform", "actuator", "energy_storage"], passes=[1, 2, 3], run_id=run_id)
|
||||
|
||||
from physcom.seed.transport_example import PLATFORMS, POWER_SOURCES
|
||||
expected = len(PLATFORMS) * len(POWER_SOURCES)
|
||||
from physcom.seed.transport_example import PLATFORMS, ACTUATORS, ENERGY_STORAGES
|
||||
expected = len(PLATFORMS) * len(ACTUATORS) * len(ENERGY_STORAGES)
|
||||
|
||||
run = repo.get_pipeline_run(run_id)
|
||||
assert run["status"] == "completed"
|
||||
@@ -35,7 +35,7 @@ def test_pipeline_run_failed(seeded_repo):
|
||||
"""Pipeline run should be marked failed on error."""
|
||||
repo = seeded_repo
|
||||
domain = repo.get_domain("urban_commuting")
|
||||
config = {"passes": [1], "threshold": 0.1, "dimensions": ["platform", "power_source"]}
|
||||
config = {"passes": [1], "threshold": 0.1, "dimensions": ["platform", "actuator", "energy_storage"]}
|
||||
run_id = repo.create_pipeline_run(domain.id, config)
|
||||
|
||||
# Manually mark as failed (simulating what the web route does on exception)
|
||||
@@ -58,7 +58,7 @@ def test_resume_skips_completed_combos(seeded_repo):
|
||||
# First run: passes 1-3
|
||||
run_id_1 = repo.create_pipeline_run(domain.id, {"passes": [1, 2, 3]})
|
||||
result1 = pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.01, passes=[1, 2, 3], run_id=run_id_1,
|
||||
)
|
||||
assert result1.pass2_estimated > 0
|
||||
@@ -67,7 +67,7 @@ def test_resume_skips_completed_combos(seeded_repo):
|
||||
# Second run: same passes — should skip all combos (already pass_reached >= 3)
|
||||
run_id_2 = repo.create_pipeline_run(domain.id, {"passes": [1, 2, 3]})
|
||||
result2 = pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.01, passes=[1, 2, 3], run_id=run_id_2,
|
||||
)
|
||||
# pass2_estimated still counted (reloaded from DB) but no new estimation work
|
||||
@@ -93,7 +93,7 @@ def test_cancellation_stops_processing(seeded_repo):
|
||||
repo.update_pipeline_run(run_id, status="cancelled")
|
||||
|
||||
result = pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.01, passes=[1, 2, 3], run_id=run_id,
|
||||
)
|
||||
|
||||
@@ -115,7 +115,7 @@ def test_status_guard_no_downgrade_reviewed(seeded_repo):
|
||||
|
||||
# Run pipeline to get scored combos
|
||||
result = pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.01, passes=[1, 2, 3],
|
||||
)
|
||||
|
||||
@@ -148,7 +148,7 @@ def test_human_notes_preserved_on_rerun(seeded_repo):
|
||||
|
||||
# First run
|
||||
pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.01, passes=[1, 2, 3],
|
||||
)
|
||||
|
||||
@@ -177,7 +177,7 @@ def test_human_notes_preserved_on_rerun(seeded_repo):
|
||||
|
||||
# Re-run pipeline
|
||||
pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.01, passes=[1, 2, 3],
|
||||
)
|
||||
|
||||
@@ -212,7 +212,7 @@ def test_get_combo_pass_reached(seeded_repo):
|
||||
pipeline = Pipeline(repo, resolver, scorer)
|
||||
|
||||
pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.01, passes=[1, 2, 3],
|
||||
)
|
||||
|
||||
@@ -238,7 +238,7 @@ def test_blocked_combos_have_results(seeded_repo):
|
||||
pipeline = Pipeline(repo, resolver, scorer)
|
||||
|
||||
result = pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.01, passes=[1, 2, 3],
|
||||
)
|
||||
|
||||
@@ -269,7 +269,7 @@ def test_all_passes_run_and_tracked(seeded_repo):
|
||||
|
||||
run_id = repo.create_pipeline_run(domain.id, {"passes": [1, 2, 3]})
|
||||
result = pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.01, passes=[1, 2, 3], run_id=run_id,
|
||||
)
|
||||
|
||||
@@ -289,7 +289,9 @@ def test_save_combination_loads_existing_status(seeded_repo):
|
||||
repo = seeded_repo
|
||||
from physcom.models.combination import Combination
|
||||
|
||||
entities = repo.list_entities(dimension="platform")[:1] + repo.list_entities(dimension="power_source")[:1]
|
||||
entities = (repo.list_entities(dimension="platform")[:1]
|
||||
+ repo.list_entities(dimension="actuator")[:1]
|
||||
+ repo.list_entities(dimension="energy_storage")[:1])
|
||||
combo = Combination(entities=entities)
|
||||
saved = repo.save_combination(combo)
|
||||
assert saved.status == "pending"
|
||||
@@ -316,7 +318,7 @@ def test_p3_fail_below_threshold(seeded_repo):
|
||||
|
||||
# Use a very high threshold so most combos fail pass 3
|
||||
result = pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.99, passes=[1, 2, 3],
|
||||
)
|
||||
|
||||
@@ -350,7 +352,7 @@ def test_p4_fail_implausible(seeded_repo):
|
||||
pipeline = Pipeline(repo, resolver, scorer, llm=mock_llm)
|
||||
|
||||
result = pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.0, passes=[1, 2, 3, 4],
|
||||
)
|
||||
|
||||
@@ -381,7 +383,7 @@ def test_p4_pass_plausible(seeded_repo):
|
||||
pipeline = Pipeline(repo, resolver, scorer, llm=mock_llm)
|
||||
|
||||
result = pipeline.run(
|
||||
domain, ["platform", "power_source"],
|
||||
domain, ["platform", "actuator", "energy_storage"],
|
||||
score_threshold=0.01, passes=[1, 2, 3, 4],
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user