21 lines
738 B
Python
21 lines
738 B
Python
from energiamesh.core import SafetyBudget, PrivacyBudget
|
|
|
|
|
|
def test_safety_budget_basic():
|
|
sb = SafetyBudget(enabled=True, max_current_draw_a=50.0, max_voltage_variation_pu=0.02)
|
|
assert sb.enabled is True
|
|
assert sb.max_current_draw_a == 50.0
|
|
assert sb.max_voltage_variation_pu == 0.02
|
|
# Update device limits
|
|
sb.update("DER-01", 40.0)
|
|
assert sb.device_limits["DER-01"] == 40.0
|
|
|
|
|
|
def test_privacy_budget_basic_and_use():
|
|
pb = PrivacyBudget(enabled=True, allowed_signals=["forecast"], total_budget_units=1.0)
|
|
assert pb.enabled is True
|
|
assert pb.allowed_signals == ["forecast"]
|
|
pb.per_signal_budget["forecast"] = 1.0
|
|
pb.use("forecast", 0.25)
|
|
assert pb.per_signal_budget["forecast"] == 0.75
|