Files
physicalCombinatorics/tests/test_combinator.py
Andrew Simonson e99a14d087 seeding expansion
also: replace energy output with energy output density
2026-03-04 13:21:20 -06:00

29 lines
968 B
Python

"""Tests for the Cartesian product combinator."""
import pytest
from physcom.engine.combinator import generate_combinations
from physcom.models.entity import Entity
def test_generates_cartesian_product(seeded_repo):
from physcom.seed.transport_example import PLATFORMS, POWER_SOURCES
combos = generate_combinations(seeded_repo, ["platform", "power_source"])
expected = len(PLATFORMS) * len(POWER_SOURCES)
assert len(combos) == expected
def test_each_combo_has_one_per_dimension(seeded_repo):
combos = generate_combinations(seeded_repo, ["platform", "power_source"])
for combo in combos:
dims = [e.dimension for e in combo.entities]
assert "platform" in dims
assert "power_source" in dims
assert len(combo.entities) == 2
def test_missing_dimension_raises(seeded_repo):
with pytest.raises(ValueError, match="No entities found"):
generate_combinations(seeded_repo, ["platform", "nonexistent"])