aboutsummaryrefslogtreecommitdiffstats
path: root/z3/subprojects/solver/src/test/java/tools/refinery/z3/Z3SolverLoaderTest.java
diff options
context:
space:
mode:
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.java30
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 */
6package tools.refinery.z3;
7
8import com.microsoft.z3.*;
9import org.junit.jupiter.api.Test;
10
11import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
12import static org.junit.jupiter.api.Assertions.assertEquals;
13
14class 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}