diff options
Diffstat (limited to 'z3/subprojects/solver/src/test/java/tools/refinery/z3/Z3SolverLoaderTest.java')
-rw-r--r-- | z3/subprojects/solver/src/test/java/tools/refinery/z3/Z3SolverLoaderTest.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/z3/subprojects/solver/src/test/java/tools/refinery/z3/Z3SolverLoaderTest.java b/z3/subprojects/solver/src/test/java/tools/refinery/z3/Z3SolverLoaderTest.java new file mode 100644 index 00000000..df3139cc --- /dev/null +++ b/z3/subprojects/solver/src/test/java/tools/refinery/z3/Z3SolverLoaderTest.java | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | ||
3 | * | ||
4 | * SPDX-License-Identifier: Apache-2.0 | ||
5 | */ | ||
6 | package tools.refinery.z3; | ||
7 | |||
8 | import com.microsoft.z3.*; | ||
9 | import org.junit.jupiter.api.Test; | ||
10 | |||
11 | import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; | ||
12 | import static org.junit.jupiter.api.Assertions.assertEquals; | ||
13 | |||
14 | class Z3SolverLoaderTest { | ||
15 | @Test | ||
16 | void testLoad() { | ||
17 | assertDoesNotThrow(Z3SolverLoader::loadNativeLibraries); | ||
18 | try (var context = new Context()) { | ||
19 | var solver = context.mkSolver(); | ||
20 | var a = context.mkConst("a", context.getIntSort()); | ||
21 | var b = context.mkConst("b", context.getIntSort()); | ||
22 | solver.add(context.mkEq(a, context.mkInt(3))); | ||
23 | solver.add(context.mkEq(b, context.mkMul(context.mkInt(2), a))); | ||
24 | assertEquals(Status.SATISFIABLE, solver.check()); | ||
25 | var model = solver.getModel(); | ||
26 | var bValue = (IntNum) model.getConstInterp(b); | ||
27 | assertEquals(6, bValue.getInt()); | ||
28 | } | ||
29 | } | ||
30 | } | ||