aboutsummaryrefslogtreecommitdiff
path: root/test/test_data_v1.py
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2026-07-07 23:30:52 +0200
committerPaul Oliver <contact@pauloliver.dev>2026-07-07 23:30:52 +0200
commita1569a33cec28b2ea874ae02fcf5863454586b30 (patch)
tree4ff6ef1ab200cc9dafe86fd832041ea623976eb1 /test/test_data_v1.py
parent55928b51596de4cd1b7a2783529ecda3ff3087ce (diff)
data-tests (WIP)more_tests
Diffstat (limited to 'test/test_data_v1.py')
-rw-r--r--test/test_data_v1.py81
1 files changed, 81 insertions, 0 deletions
diff --git a/test/test_data_v1.py b/test/test_data_v1.py
new file mode 100644
index 0000000..500a409
--- /dev/null
+++ b/test/test_data_v1.py
@@ -0,0 +1,81 @@
+import json
+import signal
+import socket
+import subprocess
+
+from test_general import SalisTest
+
+ANC_SIZE = 12
+
+SERVER_HOST = "localhost"
+SERVER_PORT = 8080
+
+SIM_OPTS = {
+ "anc": "datat",
+ "anc_path": "test/anc",
+ "clones": 2,
+ "cores": 1,
+ "data_push_pow": 12,
+ "force": False,
+ "muta_pow": 32,
+ "mvec_pow": 8,
+ "seed": "0x0",
+ "vm_arch": "v1",
+ "sync_pow": 10,
+ "auto_save_pow": 36,
+}
+
+class TestDataV1(SalisTest):
+ def request_from_server(self, request):
+ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client:
+ client.connect((SERVER_HOST, SERVER_PORT))
+ client.sendall(json.dumps(request).encode())
+ client.shutdown(socket.SHUT_WR)
+ return json.load(client.makefile(mode="r"))
+
+ @SalisTest.run_ui_test(**SIM_OPTS, ui="push", ui_path="test/ui")
+ def test_data(self):
+ with SalisTest.run_pipe(f"./salis.py server -H{self.tempdir.name}") as server_proc:
+ for line in server_proc.stdout:
+ if "Listening..." in line:
+ break
+
+ try:
+ self.assert_equal(self.request_from_server({"request": "name"})["name"], "def.sim")
+ self.assert_equal(self.request_from_server({"request": "hash"})["hash"], subprocess.check_output("git rev-parse HEAD".split()).decode().strip())
+ self.assert_equal(self.request_from_server({"request": "opts"}), SIM_OPTS)
+
+ data = self.request_from_server({
+ "request": "data",
+ "x-axis": "rowid",
+ "x-current": 0,
+ "x-high": 2,
+ "nth": 1,
+ "entries": 2,
+ "hm-left": 0,
+ "hm-pixel-count": 2 ** SIM_OPTS["mvec_pow"],
+ "hm-pixel-pow": 0,
+ })
+
+ # Check scalar values
+ self.assert_equal(data["rowid"], [1, 2])
+ self.assert_equal(data["cycl_0"], [0, 923])
+ self.assert_equal(data["mall_0"], [ANC_SIZE * 2, (ANC_SIZE * 2) + 12])
+ self.assert_equal(data["pnum_0"], [2, 5])
+ self.assert_equal(data["pfst_0"], [0, 0])
+ self.assert_equal(data["plst_0"], [1, 4])
+ self.assert_equal(data["amb0_0"], [ANC_SIZE, ((ANC_SIZE * 2) + (4 * 3)) // 5])
+ self.assert_equal(data["amb1_0"], [0, 0])
+ self.assert_equal(data["emb0_0"], [0, 1872])
+ self.assert_equal(data["emb1_0"], [0, 2])
+ self.assert_equal(data["eliv_0"], [0, 1894])
+ self.assert_equal(data["edea_0"], [0, 328])
+ self.assert_equal(data["wmb0_0"], [0, 1])
+ self.assert_equal(data["wmb1_0"], [0, 0])
+ self.assert_equal(data["wdea_0"], [0, 0])
+
+ self.assert_equal(data["step"], [0, 2 ** SIM_OPTS["data_push_pow"]])
+
+ print("---->", data)
+ finally:
+ server_proc.send_signal(signal.SIGINT)