Skip to content

Commit 4104aa0

Browse files
committed
Add and update tests
1 parent 766148b commit 4104aa0

2 files changed

Lines changed: 38 additions & 5 deletions

File tree

tests/e2e/functional/test_out_of_bounds_processing.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ def test_out_of_bounds_processing(study_id: str, expected_objective: float) -> N
140140
# Constraints: 2 components (gen_1, gen_2) × 3 timesteps = 6 potential instances each.
141141
#
142142
# system_cyclic_with_param_in_shift — no drop mode, all instances present:
143-
# is_on_dynamics (lb + ub): 6 each
143+
# is_on_dynamics (eq): 6
144144
# min_up_duration (ub only): 6
145145
# min_down_duration (ub only): 6
146146
#
@@ -151,14 +151,12 @@ def test_out_of_bounds_processing(study_id: str, expected_objective: float) -> N
151151
# min_down_duration: both have d_min_down=1 → range [0,0] → never dropped → 6
152152
_EXPECTED_CONSTRAINT_COUNTS: Dict[str, Dict[str, int]] = {
153153
"system_cyclic_with_param_in_shift": {
154-
f"{_GEN_PREFIX}__is_on_dynamics__lb": 6,
155-
f"{_GEN_PREFIX}__is_on_dynamics__ub": 6,
154+
f"{_GEN_PREFIX}__is_on_dynamics__eq": 6,
156155
f"{_GEN_PREFIX}__min_up_duration__ub": 6,
157156
f"{_GEN_PREFIX}__min_down_duration__ub": 6,
158157
},
159158
"system_drop_with_param_in_shift": {
160-
f"{_GEN_PREFIX}__is_on_dynamics__lb": 4,
161-
f"{_GEN_PREFIX}__is_on_dynamics__ub": 4,
159+
f"{_GEN_PREFIX}__is_on_dynamics__eq": 4,
162160
f"{_GEN_PREFIX}__min_up_duration__ub": 5,
163161
f"{_GEN_PREFIX}__min_down_duration__ub": 6,
164162
},

tests/unittests/system/test_model.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,41 @@ def test_constraint_equals() -> None:
219219
)
220220

221221

222+
def test_is_equality_true_for_equality_comparison() -> None:
223+
c = Constraint(name="c", expression=var("x") == param("p"))
224+
assert c.is_equality is True
225+
226+
227+
def test_is_equality_false_for_inequality_comparison() -> None:
228+
assert Constraint(name="c", expression=var("x") <= param("p")).is_equality is False
229+
assert Constraint(name="c", expression=var("x") >= param("p")).is_equality is False
230+
231+
232+
def test_is_equality_false_for_range_constraint() -> None:
233+
c = Constraint(
234+
name="c", expression=var("x"), lower_bound=literal(0), upper_bound=literal(10)
235+
)
236+
assert c.is_equality is False
237+
238+
239+
def test_is_equality_true_for_equal_explicit_bounds() -> None:
240+
c = Constraint(
241+
name="c", expression=var("x"), lower_bound=param("p"), upper_bound=param("p")
242+
)
243+
assert c.is_equality is True
244+
245+
246+
def test_is_equality_false_for_one_sided_constraint() -> None:
247+
assert (
248+
Constraint(name="c", expression=var("x"), lower_bound=literal(0)).is_equality
249+
is False
250+
)
251+
assert (
252+
Constraint(name="c", expression=var("x"), upper_bound=literal(0)).is_equality
253+
is False
254+
)
255+
256+
222257
# --- Issue #76: tolerate absence of expec() in objective contributions ---
223258

224259

0 commit comments

Comments
 (0)