about summary refs log tree commit diff
path: root/tests/test_pyhegp.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_pyhegp.py')
-rw-r--r--tests/test_pyhegp.py28
1 files changed, 27 insertions, 1 deletions
diff --git a/tests/test_pyhegp.py b/tests/test_pyhegp.py
index 1fceb99..0ddba99 100644
--- a/tests/test_pyhegp.py
+++ b/tests/test_pyhegp.py
@@ -18,12 +18,13 @@
 
 import math
 
+from click.testing import CliRunner
 from hypothesis import given, settings, strategies as st
 from hypothesis.extra.numpy import arrays, array_shapes
 import numpy as np
 from pytest import approx
 
-from pyhegp.pyhegp import Stats, hegp_encrypt, hegp_decrypt, random_key, pool_stats, standardize, unstandardize
+from pyhegp.pyhegp import Stats, main, hegp_encrypt, hegp_decrypt, random_key, pool_stats, standardize, unstandardize
 from pyhegp.utils import negate
 
 @given(st.lists(st.lists(arrays("float64",
@@ -102,3 +103,28 @@ def test_conservation_of_solutions(genotype, phenotype):
                    abs=1e-6, rel=1e-6)
             == np.linalg.solve(hegp_encrypt(genotype, key),
                                hegp_encrypt(phenotype, key)))
+
+def test_joint_workflow(tmp_path):
+    runner = CliRunner()
+    for i in range(4):
+        result = runner.invoke(
+            main, ["summary", f"test-data/genotype{i}.tsv",
+                   "-o", tmp_path / f"summary{i}"])
+        assert result.exit_code == 0
+    result = runner.invoke(
+        main, ["pool",
+               "-o", tmp_path / "complete-summary",
+               *(str(tmp_path / f"summary{i}") for i in range(4))])
+    assert result.exit_code == 0
+    for i in range(4):
+        result = runner.invoke(
+            main, ["encrypt",
+                   "-s", tmp_path / "complete-summary",
+                   "-o", tmp_path / f"encrypted-genotype{i}.tsv",
+                   f"test-data/genotype{i}.tsv"])
+        assert result.exit_code == 0
+    result = runner.invoke(
+        main, ["cat",
+               "-o", tmp_path / "complete-encrypted-genotype.tsv",
+               *(str(tmp_path / f"encrypted-genotype{i}.tsv") for i in range(4))])
+    assert result.exit_code == 0