diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/tests/test_basic.py b/tests/test_basic.py
new file mode 100644
index 0000000000000000000000000000000000000000..c7df3dc9fba728e365676ecaf0eb411286b1ba61
--- /dev/null
+++ b/tests/test_basic.py
@@ -0,0 +1,38 @@
+# -*- eval: (blacken-mode) -*-
+import logging
+import numpy as np
+from numpy.testing import assert_allclose
+
+import usadelndsoc
+import usadelndsoc.solver
+
+usadelndsoc.logger.setLevel(logging.DEBUG)
+
+
+def basic_setup(terminals=False):
+    Delta = np.zeros((4, 4))
+    Delta[:2, 2:] = np.eye(2)
+    Delta[2:, :2] = np.eye(2)
+
+    s = usadelndsoc.solver.Solver(nx=15, ny=5)
+    s.Omega[...] = Delta
+    s.alpha = 0.0
+    s.U[:, :, 1, :, :] = np.eye(4)
+
+    if terminals:
+        s.mask[0, 0] = usadelndsoc.solver.MASK_TERMINAL
+        s.mask[-1, -1] = usadelndsoc.solver.MASK_TERMINAL
+
+    return s
+
+
+# s.solve(omega=150, maxiter=300, preconditioner="none")
+
+
+def test_solve_dos():
+    s = basic_setup()
+    E = np.linspace(-3, 3, 101) + 0.001j
+    res = s.solve_many(omega=-1j * E)
+    g = res.G[:, 10, 2, 0, 0]
+    g_an = -1j * E / np.sqrt(1 - E**2)
+    assert_allclose(g, g_an, rtol=1e-4)