From 74ad27f9298c035affb8ac8b0dd9fbfe0ba55922 Mon Sep 17 00:00:00 2001
From: Pauli Virtanen <pauli.t.virtanen@jyu.fi>
Date: Wed, 24 Aug 2022 12:56:33 +0300
Subject: [PATCH] Basic tests

---
 tests/__init__.py   |  0
 tests/test_basic.py | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 38 insertions(+)
 create mode 100644 tests/__init__.py
 create mode 100644 tests/test_basic.py

diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/test_basic.py b/tests/test_basic.py
new file mode 100644
index 0000000..c7df3dc
--- /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)
-- 
GitLab