Skip to content

Commit d838704

Browse files
author
Thomas Kiley
committed
Add tests for definitely_true/false for numeric intervals
1 parent cc83805 commit d838704

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

unit/util/interval/comparisons.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,32 @@ SCENARIO("comparison interval domain", "[core][analyses][interval][comparison]")
208208
.greater_than_or_equal(constant_interval_exprt(CEV(30), CEV(40))) ==
209209
tvt::unknown());
210210
}
211+
THEN("Intervals for truthyness")
212+
{
213+
constant_interval_exprt spans_zero(CEV(-1), CEV(1));
214+
REQUIRE(spans_zero.is_definitely_true().is_unknown());
215+
REQUIRE(spans_zero.is_definitely_false().is_unknown());
216+
217+
constant_interval_exprt includes_zero_positive(CEV(0), CEV(1));
218+
REQUIRE(includes_zero_positive.is_definitely_true().is_unknown());
219+
REQUIRE(includes_zero_positive.is_definitely_false().is_unknown());
220+
221+
constant_interval_exprt includes_zero_negative(CEV(-1), CEV(9));
222+
REQUIRE(includes_zero_negative.is_definitely_true().is_unknown());
223+
REQUIRE(includes_zero_negative.is_definitely_false().is_unknown());
224+
225+
constant_interval_exprt zero(CEV(0));
226+
REQUIRE(zero.is_definitely_false().is_true());
227+
REQUIRE(zero.is_definitely_true().is_false());
228+
229+
constant_interval_exprt positive_interval(CEV(1), CEV(5));
230+
REQUIRE(positive_interval.is_definitely_true().is_true());
231+
REQUIRE(positive_interval.is_definitely_false().is_false());
232+
233+
constant_interval_exprt negative_interval(CEV(-5), CEV(-1));
234+
REQUIRE(negative_interval.is_definitely_true().is_true());
235+
REQUIRE(negative_interval.is_definitely_false().is_false());
236+
}
211237
}
212238
}
213239
}

0 commit comments

Comments
 (0)