diff options
Diffstat (limited to 'test/test_data_v1.py')
| -rw-r--r-- | test/test_data_v1.py | 81 |
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) |
