mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
test / fix wrap-around for mod-interval
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
1355ea432a
commit
ff717a9db1
5 changed files with 120 additions and 51 deletions
|
@ -30,6 +30,69 @@ static void test_interval2() {
|
|||
SASSERT(i.is_empty());
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << "test-wrap: " << i << "\n";
|
||||
std::cout << " >= 0: " << i.intersect_uge(0) << "\n";
|
||||
std::cout << " >= 2: " << i.intersect_uge(2) << "\n";
|
||||
std::cout << " >= 11: " << i.intersect_uge(11) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " >= 10: " << i << " -> " << i.intersect_uge(10) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " >= 499: " << i << " -> " << i.intersect_uge(499) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " >= 500: " << i << " -> " << i.intersect_uge(500) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " >= 501: " << i << " -> " << i.intersect_uge(501) << "\n";
|
||||
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " > 0: " << i.intersect_ugt(0) << "\n";
|
||||
std::cout << " > 2: " << i.intersect_ugt(2) << "\n";
|
||||
std::cout << " > 10: " << i.intersect_ugt(10) << "\n";
|
||||
std::cout << " > 11: " << i.intersect_ugt(11) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " > 10: " << i << " -> " << i.intersect_ugt(10) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " > 499: " << i << " -> " << i.intersect_ugt(499) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " > 500: " << i << " -> " << i.intersect_ugt(500) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " > 501: " << i << " -> " << i.intersect_ugt(501) << "\n";
|
||||
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " <= 0: " << i.intersect_ule(0) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " <= 2: " << i.intersect_ule(2) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " <= 9: " << i.intersect_ule(9) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " <= 10: " << i.intersect_ule(10) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " <= 11: " << i.intersect_ule(11) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " <= 499: " << i << " -> " << i.intersect_ule(499) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " <= 500: " << i << " -> " << i.intersect_ule(500) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " <= 501: " << i << " -> " << i.intersect_ule(501) << "\n";
|
||||
|
||||
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " < 0: " << i.intersect_ult(0) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " < 2: " << i.intersect_ult(2) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " < 9: " << i.intersect_ult(9) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " < 10: " << i.intersect_ult(10) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " < 11: " << i.intersect_ult(11) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " < 499: " << i << " -> " << i.intersect_ult(499) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " < 500: " << i << " -> " << i.intersect_ult(500) << "\n";
|
||||
i = mod_interval<uint32_t>(500, 10);
|
||||
std::cout << " < 501: " << i << " -> " << i.intersect_ult(501) << "\n";
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void tst_mod_interval() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue