From 5d3b772a8942851948450ee2afa6c5c0283a1930 Mon Sep 17 00:00:00 2001
From: kohlhaasrebecca <rebecca.kohlhaas@outlook.com>
Date: Mon, 26 Aug 2024 10:30:53 +0200
Subject: [PATCH] [tests] Update PCE tests

---
 .coverage                                     | Bin 53248 -> 0 bytes
 .coverage.DESKTOP-ATMEKSV.10624.XjrvRHAx      |   0
 .coverage.DESKTOP-ATMEKSV.22780.XWOfrNvx      |   0
 .coverage.DESKTOP-ATMEKSV.25100.XbtpWDFx      |   0
 .coverage.DESKTOP-ATMEKSV.29056.XrBCQErx      | Bin 53248 -> 0 bytes
 .coverage.DESKTOP-ATMEKSV.34604.XhfDgthx      |   0
 .coverage.DESKTOP-ATMEKSV.37188.XIOzbGrx      |   0
 .../bayes_inference/bayes_inference.py        |   2 +-
 .../surrogate_models/polynomial_chaos.py      |   6 +-
 .../surrogate_models/surrogate_models.py      |   6 +-
 tests/test_BayesInference.py                  |   2 +-
 tests/test_MCMC.py                            |   6 +-
 tests/test_MetaModel.py                       |   6 +-
 tests/test_PolynomialChaosEmulator.py         | 479 +++++++-----------
 tests/test_SequentialDesign.py                |  44 +-
 tests/test_supplementary.py                   |  86 ++--
 16 files changed, 269 insertions(+), 368 deletions(-)
 delete mode 100644 .coverage
 create mode 100644 .coverage.DESKTOP-ATMEKSV.10624.XjrvRHAx
 create mode 100644 .coverage.DESKTOP-ATMEKSV.22780.XWOfrNvx
 create mode 100644 .coverage.DESKTOP-ATMEKSV.25100.XbtpWDFx
 delete mode 100644 .coverage.DESKTOP-ATMEKSV.29056.XrBCQErx
 create mode 100644 .coverage.DESKTOP-ATMEKSV.34604.XhfDgthx
 create mode 100644 .coverage.DESKTOP-ATMEKSV.37188.XIOzbGrx

diff --git a/.coverage b/.coverage
deleted file mode 100644
index 77770e96ea40081d86344c2d02b2a4fe13fed2cb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 53248
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

diff --git a/.coverage.DESKTOP-ATMEKSV.10624.XjrvRHAx b/.coverage.DESKTOP-ATMEKSV.10624.XjrvRHAx
new file mode 100644
index 000000000..e69de29bb
diff --git a/.coverage.DESKTOP-ATMEKSV.22780.XWOfrNvx b/.coverage.DESKTOP-ATMEKSV.22780.XWOfrNvx
new file mode 100644
index 000000000..e69de29bb
diff --git a/.coverage.DESKTOP-ATMEKSV.25100.XbtpWDFx b/.coverage.DESKTOP-ATMEKSV.25100.XbtpWDFx
new file mode 100644
index 000000000..e69de29bb
diff --git a/.coverage.DESKTOP-ATMEKSV.29056.XrBCQErx b/.coverage.DESKTOP-ATMEKSV.29056.XrBCQErx
deleted file mode 100644
index e1f7e6f75f5aa9a7a33884193b67b7cc22082200..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 53248
zcmeI)O>f&a7zc34ZmrmHpcX+O1VIsAHpi&r&d8zIcG$8lhhhb~Zow`C=F&2qXtg9q
zlJjyH2DbwO4A?gq_MP?-b}M$-X{TNGJd$YHNnG?+)cXsuElVUt{`iozqqN^Vee5Ml
z48q8liP$sl7^Z1_DuiJeReG$^LvI%C+|qC8)tuR1v|BaWgTL17Z;g88SHu2(?TNix
z|84F4)j#Tf^_SJ(Em?Kx1U3jj00I#Be+x{W)-7jq(|qw`B6~xXMAB7J_PqA_*9ZHD
z2jX!5v&RP_J0^B&g0|gVu`i<VOpH_{2HsE!FX(%&OuXPoB*#jp9>=QB3mqM!rH&J}
z)BL>G_4<@6QAbq7DDr$6U5MxEqLn7dua>CuBs)NbDDNoX6k;dO-V~7<s7M8_inChm
zc>QLr`SPcl<*cupmnv<Oj9mIzoofvpD4OzUKn1yB)aTmwA{n^HDsBlmZJ`@dJ<pS@
zwNdClNJ266g0z`I>?K|p2z9R9aiaP+Hn7ELdLz8q)=*i`xIxddocXn8bc)P3<jj-j
znFmz4Ak?fyM!qy<PU{?u{T`A3F!o2>Ig}&2a1t)cxhQWE=8b*hzPX_<i}ucSrzYnf
z&2o(c?_{i|o!=5g&Q{utAZ!V41VzAms}<+Nb<?1zROj)@kUnp9<v0n`_g(7zZik-g
zKi^%kob7G%@+1uu=IQplB%bb6=YnQ>ctPm!`NeU=qhvlvcoYqXA{?YchI5Oob10f;
z$IJtbAtN4WBFqy~P2Xy?ab>9vqBjhC^RbpjOsr^t&|ILC4aR}XLnY=mxZ$aa<dJIU
zXR~SHZ3hyCPN!ON4z?GC&NKwNo#}3EvRSd5tu6CKH4US@xAGTjE`)SX-Y|{oQ@)b%
zIMNfz>n2H^qnIW27|G92b9SwYv%j^dIeEHnC*N6_Shp-^W5b+eBZB88e%zjG1Rp7e
zz?FsI&8t6>$+5UzcRoxNZ``gpA8#zGI9H+D;pfWB?@DQvFE>+tpC)~Nl;^6<M~W(c
zsV;U;<&b8Rk@O-OvNQ*0D}dmHeMyOBFB~Un{PNp0JbCRY>YEi%yw~=Ws+lII;r&$@
z#~v-KylllE>7$}?EMuO9;)dvj;ZVsSTN^0HqnNJg#Uic4^;PMUqKx>0%Q!l1q;=AZ
z3s3WhH0bpBq8;CtK|f!wcp1)0rMaI6CtoL<L@1+Z(4dTIh+ZjE7n+~t8B3Sn9+3%`
z>dSsM+__U`N<2GO*NV$lqc3El63<tHlcbeN1M5u2!i^N2q_wo!D8DWYxVO3;e&%n<
zEBsMzvTa(<{rl!*oDarqp6SN4sQXe^JAYf63z91*i+FiL6E1z)nT->+o8jQM*%f$l
z%X+YvDd<%BXPsJ;zu=qpzXttag8&2|009U<00Izz00bZa0SG`~`2@;l$+Y<Uf64yS
zu>YnfY!H9|1Rwwb2tWV=5P$##AOHafyqf~`Qu&^(|HR`1+bnN6`5ys1Z11)AYSgNd
z{mQUk+5fzo4MeRW009U<00Izz00bZa0SG_<0uayw_3}Ma{}!NBD{ocvUjn56!2ga;
zg;xkb00Izz00bZa0SG_<0uX=z1eQ^N@Bh<(`iBhy5P$##AOHafKmY;|fB*y_0D&bI
z!2SOv?p!nt0uX=z1Rwwb2tWV=5P$##Adm~-{y#zi0uX=z1Rwwb2tWV=5P$##Ah7%b
zxc|TWeT)`D00Izz00bZa0SG_<0uX=z1aSW!F#rJwKmY;|fB*y_009U<00IzLegWM7
zU;aKu3n2gj2tWV=5P$##AOHafKmY=`|Bo1e00bZa0SG_<0uX=z1Rwwb2rRz<?*A`;
aAESj3fB*y_009U<00Izz00bZaf&Ty)+a0$6

diff --git a/.coverage.DESKTOP-ATMEKSV.34604.XhfDgthx b/.coverage.DESKTOP-ATMEKSV.34604.XhfDgthx
new file mode 100644
index 000000000..e69de29bb
diff --git a/.coverage.DESKTOP-ATMEKSV.37188.XIOzbGrx b/.coverage.DESKTOP-ATMEKSV.37188.XIOzbGrx
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/bayesvalidrox/bayes_inference/bayes_inference.py b/src/bayesvalidrox/bayes_inference/bayes_inference.py
index 728434826..c0c4cd08e 100644
--- a/src/bayesvalidrox/bayes_inference/bayes_inference.py
+++ b/src/bayesvalidrox/bayes_inference/bayes_inference.py
@@ -961,7 +961,7 @@ class BayesInference:
         output_names = self.engine.Model.Output.names
 
         # Evaluate MetaModel on the experimental design and ValidSet
-        OutputRS, stdOutputRS = MetaModel.eval_metamodel(samples=samples)
+        OutputRS, stdOutputRS = MetaModel.eval_metamodel(samples)
 
         logLik_data = np.zeros(n_samples)
         logLik_model = np.zeros(n_samples)
diff --git a/src/bayesvalidrox/surrogate_models/polynomial_chaos.py b/src/bayesvalidrox/surrogate_models/polynomial_chaos.py
index 7d2cf2616..25b1fdb52 100644
--- a/src/bayesvalidrox/surrogate_models/polynomial_chaos.py
+++ b/src/bayesvalidrox/surrogate_models/polynomial_chaos.py
@@ -55,8 +55,8 @@ class PCE(MetaModel):
     ----------
     input_obj : obj
         Input object with the information on the model input parameters.
-    _meta_model_type : str
-        Surrogate model types. Three surrogate model types are supported:
+    meta_model_type : str
+        PCE-surrogate model types. Two surrogate model types are supported:
         polynomial chaos expansion (`PCE`), arbitrary PCE (`aPCE`). 
         Default is PCE.
     _pce_reg_method : str
@@ -729,8 +729,6 @@ class PCE(MetaModel):
         mean_pred = {}
         std_pred = {}
         for output, values in model_dict.items():
-            print(output, values)
-
             mean = np.empty((len(samples), len(values)))
             std = np.empty((len(samples), len(values)))
             idx = 0
diff --git a/src/bayesvalidrox/surrogate_models/surrogate_models.py b/src/bayesvalidrox/surrogate_models/surrogate_models.py
index 131e59aa9..5a494135f 100644
--- a/src/bayesvalidrox/surrogate_models/surrogate_models.py
+++ b/src/bayesvalidrox/surrogate_models/surrogate_models.py
@@ -92,7 +92,6 @@ def _preprocessing_fit(fit_function):
 
         # Build the input space
         if self.InputSpace is None:
-            print(self.meta_model_type)
             self.InputSpace = InputSpace(self.input_obj, self.meta_model_type)
             n_init_samples = X.shape[0]
             self.InputSpace.n_init_samples = n_init_samples
@@ -107,14 +106,14 @@ def _preprocessing_fit(fit_function):
 
         # --- Loop through data points and fit the surrogate ---
         if self.verbose:
-            print(f"\n>>>> Training the {self._meta_model_type} metamodel "
+            print(f"\n>>>> Training the {self.meta_model_type} metamodel "
                   "started. <<<<<<\n")
 
         # Call the function for fitting
         fit_function(self, X, y, **kwargs)
 
         if self.verbose:
-            print(f"\n>>>> Training the {self._meta_model_type} metamodel"
+            print(f"\n>>>> Training the {self.meta_model_type} metamodel"
                   " sucessfully completed. <<<<<<\n")
     return decorator
 
@@ -415,6 +414,7 @@ class MetaModel:
         self.n_pca_components = None
 
         # Build general parameters
+        self._pce_deg = 1 # TODO: rename this more generally, so that it can be used for other types as well
 
         # General warnings
         if not self.is_gaussian:
diff --git a/tests/test_BayesInference.py b/tests/test_BayesInference.py
index 4b37f2cbb..9048776c8 100644
--- a/tests/test_BayesInference.py
+++ b/tests/test_BayesInference.py
@@ -112,7 +112,7 @@ def test_create_inference() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45])}
diff --git a/tests/test_MCMC.py b/tests/test_MCMC.py
index e38c93b0a..31b245986 100644
--- a/tests/test_MCMC.py
+++ b/tests/test_MCMC.py
@@ -54,7 +54,7 @@ def test_MCMC() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=2)
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
@@ -102,7 +102,7 @@ if 0: # TODO: issue not resolved here, issue appears due to specific test setup,
     
         mm = MetaModel(inp)
         mm.fit(expdes.X, expdes.Y)
-        expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+        expdes.generate_ED(expdes.n_init_samples, max_pce_deg=2)
     
         mod = PL()
         mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
@@ -197,7 +197,7 @@ if __name__ == '__main__':
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=2)
 
     mod = PL()
     mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
diff --git a/tests/test_MetaModel.py b/tests/test_MetaModel.py
index dd1eb29f2..f2a4981ea 100644
--- a/tests/test_MetaModel.py
+++ b/tests/test_MetaModel.py
@@ -29,7 +29,7 @@ import numpy as np
 import pytest
 import sys
 
-sys.path.append("src/")
+sys.path.append("../src/")
 
 from bayesvalidrox.surrogate_models.inputs import Input
 from bayesvalidrox.surrogate_models.input_space import InputSpace
@@ -250,7 +250,7 @@ def test_copy_meta_model_opts() -> None:
 
 #%% Test MetaModel.__select_degree
 
-#%% Test Engine._compute_pce_moments
+#%% Test MetaModel.compute_moments
 
 def test__compute_moments() -> None:
     """
@@ -262,7 +262,7 @@ def test__compute_moments() -> None:
     inp.Marginals[0].parameters = [0, 1]
     mm = MetaModel(inp)
     mm.fit([[0.2], [0.4], [0.8]], {'Z': [[0.4], [0.2], [0.5]]})
-    mm._compute_moments()
+    mm.compute_moments()
 
 
 
diff --git a/tests/test_PolynomialChaosEmulator.py b/tests/test_PolynomialChaosEmulator.py
index fea710dd7..61c658897 100644
--- a/tests/test_PolynomialChaosEmulator.py
+++ b/tests/test_PolynomialChaosEmulator.py
@@ -26,7 +26,7 @@ import numpy as np
 import pytest
 import sys
 
-sys.path.append("src/")
+sys.path.append("../src/")
 
 from bayesvalidrox.surrogate_models.inputs import Input
 from bayesvalidrox.surrogate_models.input_space import InputSpace
@@ -35,6 +35,23 @@ from bayesvalidrox.surrogate_models.polynomial_chaos import PCE
 from bayesvalidrox.surrogate_models.supplementary import gaussian_process_emulator, corr_loocv_error, create_psi
 
 
+@pytest.fixture
+def PCE_1DwithInputSpace():
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    #mm = MetaModel(inp)
+    samples = np.array([[0.2], [0.8]])
+    mm = PCE(inp)
+    mm.CollocationPoints = samples
+    mm.InputSpace = InputSpace(mm.input_obj, mm.meta_model_type)
+    n_init_samples = samples.shape[0]
+    mm.InputSpace.n_init_samples = n_init_samples
+    # TODO: _pce_deg not necessarily available, generalize this!
+    mm.InputSpace.init_param_space(np.max(mm._pce_deg))
+    return mm
+
 
 #%% Test MetaMod constructor on its own
 
@@ -51,66 +68,32 @@ def test_metamod() -> None:
 
 #%% Test PCE.build_metamodel
 
-def test_build_metamodel_nosamples() -> None:
-    """
-    Build PCE without collocation samples
-    """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
-    with pytest.raises(AttributeError) as excinfo:
-        mm.build_metamodel()
-    assert str(excinfo.value) == 'Please provide samples to the metamodel before building it.'
+#def test_build_metamodel_nosamples() -> None:
+#    """
+#    Build PCE without collocation samples
+#    """
+#    inp = Input()
+#    inp.add_marginals()
+#    inp.Marginals[0].dist_type = 'normal'
+#    inp.Marginals[0].parameters = [0, 1]
+#    mm = PCE(inp)
+#    with pytest.raises(AttributeError) as excinfo:
+#        mm.build_metamodel()
+#    assert str(excinfo.value) == 'Please provide samples to the metamodel before building it.'
 
 
-def test_build_metamodel() -> None:
+def test_build_metamodel(PCE_1DwithInputSpace) -> None:
     """
     Build PCE
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     mm.CollocationPoints = np.array([[0.2], [0.8]])
     mm.build_metamodel()
 
 
-def test_build_metamodel_ninitsamples() -> None:
-    """
-    Build PCE with n_init_samples
-    """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
-    mm.CollocationPoints = np.array([[0.2], [0.8]])
-    mm.build_metamodel(n_init_samples=2)
+#%% Test PCE._generate_polynomials
 
-
-
-def test_build_metamodel_coldimerr() -> None:
-    """
-    Build PCE with wrong shape collocation samples
-    """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
-    mm.CollocationPoints = [[0.2, 0.8]]
-    with pytest.raises(AttributeError) as excinfo:
-        mm.build_metamodel()
-    assert str(
-        excinfo.value) == 'The second dimension of X should be the same size as the number of marginals in the InputObj'
-
-
-#%% Test MetaMod.generate_polynomials
-
-def test_generate_polynomials_noexp() -> None:
+def test__generate_polynomials_noexp() -> None:
     """
     Generate polynomials without ExpDeg
     """
@@ -120,11 +103,11 @@ def test_generate_polynomials_noexp() -> None:
     inp.Marginals[0].parameters = [0, 1]
     mm = PCE(inp)
     with pytest.raises(AttributeError) as excinfo:
-        mm.generate_polynomials()
+        mm._generate_polynomials()
     assert str(excinfo.value) == 'Generate or add InputSpace before generating polynomials'
 
 
-def test_generate_polynomials_nodeg() -> None:
+def test__generate_polynomials_nodeg() -> None:
     """
     Generate polynomials without max_deg
     """
@@ -137,17 +120,17 @@ def test_generate_polynomials_nodeg() -> None:
     # Setup
     mm.InputSpace = InputSpace(inp)
     mm.InputSpace.n_init_samples = 2
-    mm.InputSpace.init_param_space(np.max(mm.pce_deg))
+    mm.InputSpace.init_param_space(np.max(mm._pce_deg))
     mm.ndim = mm.InputSpace.ndim
     mm.n_params = len(mm.input_obj.Marginals)
 
     # Generate
     with pytest.raises(AttributeError) as excinfo:
-        mm.generate_polynomials()
-    assert str(excinfo.value) == 'PCE cannot generate polynomials in the given scenario!'
+        mm._generate_polynomials()
+    assert str(excinfo.value) == 'MetaModel cannot generate polynomials in the given scenario!'
 
 
-def test_generate_polynomials_deg() -> None:
+def test__generate_polynomials_deg() -> None:
     """
     Generate polynomials with max_deg
     """
@@ -160,12 +143,12 @@ def test_generate_polynomials_deg() -> None:
     # Setup
     mm.InputSpace = InputSpace(inp)
     mm.InputSpace.n_init_samples = 2
-    mm.InputSpace.init_param_space(np.max(mm.pce_deg))
+    mm.InputSpace.init_param_space(np.max(mm._pce_deg))
     mm.ndim = mm.InputSpace.ndim
     mm.n_params = len(mm.input_obj.Marginals)
 
     # Generate
-    mm.generate_polynomials(4)
+    mm._generate_polynomials(4)
 
 
 #%% Test MetaMod.add_InputSpace
@@ -236,447 +219,381 @@ def test_fit_pca() -> None:
 
 #%% Test PCE.regression
 
-def test_regression() -> None:
+def test_regression(PCE_1DwithInputSpace) -> None:
     """
     Regression without a method
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
     mm.regression(samples, outputs, psi)
 
 
-def test_regression_ols() -> None:
+def test_regression_ols(PCE_1DwithInputSpace) -> None:
     """
     Regression: ols
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='ols')
+    mm._pce_reg_method = 'ols'
+    mm.regression(samples, outputs, psi)
 
 
-def test_regression_olssparse() -> None:
+def test_regression_olssparse(PCE_1DwithInputSpace) -> None:
     """
     Regression: ols and sparse
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='ols', sparsity=True)
+    mm._pce_reg_method = 'ols'
+    mm.regression(samples, outputs, psi, sparsity=True)
 
 
-def test_regression_ard() -> None:
+def test_regression_ard(PCE_1DwithInputSpace) -> None:
     """
     Regression: ard
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2], [0.8]])
     outputs = np.array([0.4, 0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='ard')
+    mm._pce_reg_method = 'ard'
+    mm.regression(samples, outputs, psi)
 
 
-def test_regression_ardssparse() -> None:
+def test_regression_ardssparse(PCE_1DwithInputSpace) -> None:
     """
     Regression: ard and sparse
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2], [0.8]])
     outputs = np.array([0.4, 0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='ard', sparsity=True)
+    mm._pce_reg_method = 'ard'
+    mm.regression(samples, outputs, psi, sparsity=True)
 
 
-def test_regression_fastard() -> None:
+def test_regression_fastard(PCE_1DwithInputSpace) -> None:
     """
     Regression: fastard
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='fastard')
+    mm._pce_reg_method = 'fastard'
+    mm.regression(samples, outputs, psi)
 
 
-def test_regression_fastardssparse() -> None:
+def test_regression_fastardssparse(PCE_1DwithInputSpace) -> None:
     """
     Regression: fastard and sparse
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='fastard', sparsity=True)
+    mm._pce_reg_method = 'fastard'
+    mm.regression(samples, outputs, psi, sparsity=True)
 
 
-def test_regression_brr() -> None:
+def test_regression_brr(PCE_1DwithInputSpace) -> None:
     """
     Regression: brr
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='brr')
+    mm._pce_reg_method = 'brr'
+    mm.regression(samples, outputs, psi)
 
 
-def test_regression_brrssparse() -> None:
+def test_regression_brrssparse(PCE_1DwithInputSpace) -> None:
     """
     Regression: brr and sparse
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='brr', sparsity=True)
+    mm._pce_reg_method = 'brr'
+    mm.regression(samples, outputs, psi, sparsity=True)
 
 
 if 0: # Could not figure out these errors, issue most likely in chosen samples/outputs
-    def test_regression_bcs() -> None:
+    def test_regression_bcs(PCE_1DwithInputSpace) -> None:
         """
         Regression: bcs
         """
-        inp = Input()
-        inp.add_marginals()
-        inp.Marginals[0].dist_type = 'normal'
-        inp.Marginals[0].parameters = [0, 1]
-        mm = PCE(inp)
+        mm = PCE_1DwithInputSpace
         samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7], [0.8], [0.9]])
         outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
-        mm.pce_deg = 3
+        mm._pce_deg = 3
         mm.CollocationPoints = samples
-        mm.build_metamodel(n_init_samples=2)
-        BasisIndices = mm.allBasisIndices[str(mm.pce_deg)][str(1.0)]
+        mm.build_metamodel()
+        BasisIndices = mm._all_basis_indices[str(mm._pce_deg)][str(1.0)]
         univ_bas = mm.univ_basis_vals(samples)
         psi = create_psi(BasisIndices, univ_bas)
     
-        mm.regression(samples, outputs, psi, reg_method='bcs')
+        mm._pce_reg_method = 'bcs'
+        mm.regression(samples, outputs, psi)
     
     
-    def test_regression_bcsssparse() -> None:
+    def test_regression_bcsssparse(PCE_1DwithInputSpace) -> None:
         """
         Regression: bcs and sparse
         """
-        inp = Input()
-        inp.add_marginals()
-        inp.Marginals[0].dist_type = 'normal'
-        inp.Marginals[0].parameters = [0, 1]
-        mm = PCE(inp)
+        mm = PCE_1DwithInputSpace
         samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7], [0.8], [0.9], [1.0]])
         outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
     
         mm.CollocationPoints = samples
-        mm.build_metamodel(n_init_samples=2)
-        BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+        mm.build_metamodel()
+        BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
         univ_bas = mm.univ_basis_vals(samples)
         psi = create_psi(BasisIndices, univ_bas)
     
-        mm.regression(samples, outputs, psi, reg_method='bcs', sparsity=True)
+        mm._pce_reg_method = 'bcs'
+        mm.regression(samples, outputs, psi, sparsity=True)
 
 
-def test_regression_lars() -> None:
+def test_regression_lars(PCE_1DwithInputSpace) -> None:
     """
     Regression: lars
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7], [0.8], [0.9], [1.0]])
     outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='lars')
+    mm._pce_reg_method = 'lars'
+    mm.regression(samples, outputs, psi)
 
 
-def test_regression_larsssparse() -> None:
+def test_regression_larsssparse(PCE_1DwithInputSpace) -> None:
     """
     Regression: lars and sparse
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7], [0.8], [0.9], [1.0]])
     outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='lars', sparsity=True)
+    mm._pce_reg_method = 'lars'
+    mm.regression(samples, outputs, psi, sparsity=True)
 
 
-def test_regression_sgdr() -> None:
+def test_regression_sgdr(PCE_1DwithInputSpace) -> None:
     """
     Regression: sgdr
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='sgdr')
+    mm._pce_reg_method = 'sgdr'
+    mm.regression(samples, outputs, psi)
 
 
-def test_regression_sgdrssparse() -> None:
+def test_regression_sgdrssparse(PCE_1DwithInputSpace) -> None:
     """
     Regression: sgdr and sparse
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='sgdr', sparsity=True)
+    mm._pce_reg_method = 'sgdr'
+    mm.regression(samples, outputs, psi, sparsity=True)
 
 
 if 0: # Could not figure out these errors, issue most likely in chosen samples/outputs
-    def test_regression_omp() -> None:
+    def test_regression_omp(PCE_1DwithInputSpace) -> None:
         """
         Regression: omp
         """
-        inp = Input()
-        inp.add_marginals()
-        inp.Marginals[0].dist_type = 'normal'
-        inp.Marginals[0].parameters = [0, 1]
-        mm = PCE(inp)
+        mm = PCE_1DwithInputSpace
         samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7], [0.8], [0.9], [1.0]])
         outputs = np.array([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1])
     
         mm.CollocationPoints = samples
-        mm.build_metamodel(n_init_samples=2)
-        BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+        mm.build_metamodel()
+        BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
         univ_bas = mm.univ_basis_vals(samples)
         psi = create_psi(BasisIndices, univ_bas)
     
         mm.regression(samples, outputs, psi, reg_method='omp')
     
     
-    def test_regression_ompssparse() -> None:
+    def test_regression_ompssparse(PCE_1DwithInputSpace) -> None:
         """
         Regression: omp and sparse
         """
-        inp = Input()
-        inp.add_marginals()
-        inp.Marginals[0].dist_type = 'normal'
-        inp.Marginals[0].parameters = [0, 1]
-        mm = PCE(inp)
+        mm = PCE_1DwithInputSpace
         samples = np.array([[0.2]])
         outputs = np.array([0.5])
     
         mm.CollocationPoints = samples
-        mm.build_metamodel(n_init_samples=2)
-        BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+        mm.build_metamodel()
+        BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
         univ_bas = mm.univ_basis_vals(samples)
         psi = create_psi(BasisIndices, univ_bas)
     
         mm.regression(samples, outputs, psi, reg_method='omp', sparsity=True)
 
 
-def test_regression_vbl() -> None:
+def test_regression_vbl(PCE_1DwithInputSpace) -> None:
     """
     Regression: vbl
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='vbl')
+    mm._pce_reg_method = 'vbl'
+    mm.regression(samples, outputs, psi)
 
 
-def test_regression_vblssparse() -> None:
+def test_regression_vblssparse(PCE_1DwithInputSpace) -> None:
     """
     Regression: vbl and sparse
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='vbl', sparsity=True)
+    mm._pce_reg_method = 'vbl'
+    mm.regression(samples, outputs, psi, sparsity=True)
 
 
-def test_regression_ebl() -> None:
+def test_regression_ebl(PCE_1DwithInputSpace) -> None:
     """
     Regression: ebl
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='ebl')
+    mm._pce_reg_method = 'ebl'
+    mm.regression(samples, outputs, psi)
 
 
-def test_regression_eblssparse() -> None:
+def test_regression_eblssparse(PCE_1DwithInputSpace) -> None:
     """
     Regression: ebl and sparse
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.5])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    mm.regression(samples, outputs, psi, reg_method='ebl', sparsity=True)
+    mm._pce_reg_method = 'ebl'
+    mm.regression(samples, outputs, psi, sparsity=True)
 
 
 #%% Test Model.update_pce_coeffs
@@ -685,107 +602,87 @@ def test_regression_eblssparse() -> None:
 
 #%% Test PCE.univ_basis_vals
 
-def test_univ_basis_vals() -> None:
+def test_univ_basis_vals(PCE_1DwithInputSpace) -> None:
     """
     Creates univariate polynomials
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2], [0.8]])
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
+    mm.build_metamodel()
     mm.univ_basis_vals(samples)
 
 
 #%% Test PCE.adaptive_regression
 
-def test_adaptive_regression_fewsamples() -> None:
+def test_adaptive_regression_fewsamples(PCE_1DwithInputSpace) -> None:
     """
     Adaptive regression, no specific method, too few samples given
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.8])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
+    mm.build_metamodel()
 
     # Evaluate the univariate polynomials on InputSpace
     mm.univ_p_val = mm.univ_basis_vals(mm.CollocationPoints)
 
     with pytest.raises(AttributeError) as excinfo:
-        mm.adaptive_regression(outputs, 0)
+        mm.adaptive_regression(samples, outputs, 0)
     assert str(excinfo.value) == ('There are too few samples for the corrected loo-cv error. Fit surrogate on at least as '
                            'many samples as parameters to use this')
 
 
-def test_adaptive_regression() -> None:
+def test_adaptive_regression(PCE_1DwithInputSpace) -> None:
     """
     Adaptive regression, no specific method
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.0], [0.1]])
     outputs = np.array([0.0, 0.1])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
+    mm.build_metamodel()
 
     # Evaluate the univariate polynomials on InputSpace
     mm.univ_p_val = mm.univ_basis_vals(mm.CollocationPoints)
-    mm.adaptive_regression(outputs, 0)
+    mm.adaptive_regression(samples, outputs, 0)
 
 
-def test_adaptive_regression_verbose() -> None:
+def test_adaptive_regression_verbose(PCE_1DwithInputSpace) -> None:
     """
     Adaptive regression, no specific method, verbose output
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.0], [0.1]])
     outputs = np.array([0.0, 0.1])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
+    mm.build_metamodel()
 
     # Evaluate the univariate polynomials on InputSpace
     mm.univ_p_val = mm.univ_basis_vals(mm.CollocationPoints)
-    mm.adaptive_regression(outputs, 0, True)
+    mm.adaptive_regression(samples, outputs, 0, True)
 
 
-def test_adaptive_regression_ols() -> None:
+def test_adaptive_regression_ols(PCE_1DwithInputSpace) -> None:
     """
     Adaptive regression, ols
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = PCE(inp)
+    mm = PCE_1DwithInputSpace
     samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7], [0.8],
                         [0.9], [1.0]])
     outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
+    mm.build_metamodel()
 
     # Evaluate the univariate polynomials on InputSpace
     mm.univ_p_val = mm.univ_basis_vals(mm.CollocationPoints)
-    mm.pce_reg_method = 'ols'
-    mm.adaptive_regression(outputs, 0)
+    mm._pce_reg_method = 'ols'
+    mm.adaptive_regression(samples, outputs, 0)
 
 
 #%% Test PCE.pca_transformation
@@ -915,9 +812,9 @@ def test_copy_meta_model_opts() -> None:
 
 #%% Test PCE.__select_degree
 
-#%% Test Engine._compute_moments
+#%% Test PCE.compute_moments
 
-def test__compute_moments() -> None:
+def test_compute_moments() -> None:
     """
     Compute moments of a pce-surrogate
     """
@@ -927,10 +824,10 @@ def test__compute_moments() -> None:
     inp.Marginals[0].parameters = [0, 1]
     mm = PCE(inp)
     mm.fit([[0.2], [0.4], [0.8]], {'Z': [[0.4], [0.2], [0.5]]})
-    mm._compute_moments()
+    mm.compute_moments()
 
 
-def test__compute_moments_pca() -> None:
+def test_compute_moments_pca() -> None:
     """
     Compute moments of a pce-surrogate with pca
     """
@@ -941,7 +838,7 @@ def test__compute_moments_pca() -> None:
     mm = PCE(inp)
     mm.dim_red_method = 'pca'
     mm.fit([[0.2], [0.8]], {'Z': [[0.4, 0.4], [0.5, 0.6]]})
-    mm._compute_moments()
+    mm.compute_moments()
 
 
 #%% Test PCE.update_metamodel
diff --git a/tests/test_SequentialDesign.py b/tests/test_SequentialDesign.py
index 52e54be03..f922a77d7 100644
--- a/tests/test_SequentialDesign.py
+++ b/tests/test_SequentialDesign.py
@@ -170,7 +170,7 @@ def test_choose_next_sample() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -200,7 +200,7 @@ def test_choose_next_sample_da_spaceparallel() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -231,7 +231,7 @@ def test_choose_next_sample_da_spacenoparallel() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -262,7 +262,7 @@ def test_choose_next_sample_loo_space() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -292,7 +292,7 @@ def test_choose_next_sample_vor_space() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -327,7 +327,7 @@ def test_choose_next_sample_latin_space() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -357,7 +357,7 @@ def test_choose_next_sample_latin_alphD() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -387,7 +387,7 @@ def test_choose_next_sample_latin_alphK() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -417,7 +417,7 @@ def test_choose_next_sample_latin_alphA() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -448,7 +448,7 @@ def test_choose_next_sample_latin_VarALM() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -479,7 +479,7 @@ def test_choose_next_sample_latin_VarEIGF() -> None:
 
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -512,7 +512,7 @@ if 0:
     
         mm = MetaModel(inp)
         mm.fit(expdes.X, expdes.Y)
-        expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+        expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
         mod = PL()
         
         engine = Engine(mm, mod, expdes)
@@ -543,7 +543,7 @@ def test_choose_next_sample_latin_BODMI() -> None:
     expdes.util_func = 'MI'
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -576,7 +576,7 @@ def test_choose_next_sample_vor_BODMI() -> None:
     expdes.util_func = 'MI'
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -614,7 +614,7 @@ def test_choose_next_sample_latin_BODALC() -> None:
     expdes.util_func = 'ALC'
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -647,7 +647,7 @@ def test_choose_next_sample_latin_BODDKL() -> None:
     expdes.util_func = 'DKL'
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -680,7 +680,7 @@ def test_choose_next_sample_latin_BODDPP() -> None:
     expdes.util_func = 'DPP'
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -713,7 +713,7 @@ def test_choose_next_sample_latin_BODAPP() -> None:
     expdes.util_func = 'APP'
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -746,7 +746,7 @@ def test_choose_next_sample_latin_BODMI_() -> None:
     expdes.util_func = 'MI'
     mm = MetaModel(inp)
     mm.fit(expdes.X, expdes.Y)
-    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
     mod = PL()
     
     engine = Engine(mm, mod, expdes)
@@ -779,7 +779,7 @@ if 0:
         expdes.util_func = 'BME'
         mm = MetaModel(inp)
         mm.fit(expdes.X, expdes.Y)
-        expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+        expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
         mod = PL()
         
         engine = Engine(mm, mod, expdes)
@@ -813,7 +813,7 @@ if 0:
         expdes.util_func = 'DKL'
         mm = MetaModel(inp)
         mm.fit(expdes.X, expdes.Y)
-        expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+        expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
         mod = PL()
         
         engine = Engine(mm, mod, expdes)
@@ -847,7 +847,7 @@ if 0:
         expdes.util_func = 'infEntropy'
         mm = MetaModel(inp)
         mm.fit(expdes.X, expdes.Y)
-        expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+        expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm._pce_deg))
         mod = PL()
         
         engine = Engine(mm, mod, expdes)
diff --git a/tests/test_supplementary.py b/tests/test_supplementary.py
index 7537b0ca3..1eea5b70b 100644
--- a/tests/test_supplementary.py
+++ b/tests/test_supplementary.py
@@ -14,7 +14,7 @@ import numpy as np
 import pytest
 import sys
 
-sys.path.append("src/")
+sys.path.append("../src/")
 
 from bayesvalidrox.surrogate_models.inputs import Input
 from bayesvalidrox.surrogate_models.input_space import InputSpace
@@ -22,95 +22,101 @@ from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
 from bayesvalidrox.surrogate_models.polynomial_chaos import PCE
 from bayesvalidrox.surrogate_models.supplementary import gaussian_process_emulator, corr_loocv_error, create_psi
 
+@pytest.fixture
+def PCE_withInputSpace():
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    #mm = MetaModel(inp)
+    samples = np.array([[0.2], [0.8]])
+    mm = PCE(inp)
+    mm.CollocationPoints = samples
+    mm.InputSpace = InputSpace(mm.input_obj, mm.meta_model_type)
+    n_init_samples = samples.shape[0]
+    mm.InputSpace.n_init_samples = n_init_samples
+    mm.InputSpace.init_param_space(np.max(mm._pce_deg))
+    return mm
+    
+
 
 #%% Test create_psi
 
-def test_create_psi() -> None:
+def test_create_psi(PCE_withInputSpace) -> None:
     """
     Create psi-matrix
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = MetaModel(inp)
+    mm = PCE_withInputSpace#(inp, samples)
     samples = np.array([[0.2], [0.8]])
-    mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    #mm.InputSpace = InputSpace(mm.input_obj, mm.meta_model_type)
+    #n_init_samples = samples.shape[0]
+    #mm.InputSpace.n_init_samples = n_init_samples
+    # TODO: _pce_deg not necessarily available, generalize this!
+    #mm.InputSpace.init_param_space(np.max(mm._pce_deg))
+    mm.build_metamodel()
+    
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     create_psi(BasisIndices, univ_bas)
 
 #%% Test corr_loocv_error
 
-def test_corr_loocv_error_nosparse() -> None:
+def test_corr_loocv_error_nosparse(PCE_withInputSpace) -> None:
     """
     Corrected loocv error
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = MetaModel(inp)
+    mm = PCE_withInputSpace
     samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7],
                         [0.8], [0.9], [1.0]])
     outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    outs = mm.regression(samples, outputs, psi, reg_method='ebl')
+    outs = mm.regression(samples, outputs, psi)
     corr_loocv_error(outs['clf_poly'], outs['sparePsi'], outs['coeffs'],
                      outputs)
 
 
-def test_corr_loocv_error_singley() -> None:
+def test_corr_loocv_error_singley(PCE_withInputSpace) -> None:
     """
     Corrected loocv error
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = MetaModel(inp)
+    mm = PCE_withInputSpace
     samples = np.array([[0.2]])
     outputs = np.array([0.1])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
 
-    outs = mm.regression(samples, outputs, psi, reg_method='ols')
+    outs = mm.regression(samples, outputs, psi)
     corr_loocv_error(outs['clf_poly'], outs['sparePsi'], outs['coeffs'],
                      outputs)
 
 
-def test_corr_loocv_error_sparse() -> None:
+def test_corr_loocv_error_sparse(PCE_withInputSpace) -> None:
     """
     Corrected loocv error from sparse results
     """
-    inp = Input()
-    inp.add_marginals()
-    inp.Marginals[0].dist_type = 'normal'
-    inp.Marginals[0].parameters = [0, 1]
-    mm = MetaModel(inp)
+    mm = PCE_withInputSpace
     samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7],
                         [0.8], [0.9], [1.0]])
     outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
 
     mm.CollocationPoints = samples
-    mm.build_metamodel(n_init_samples=2)
-    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    mm.build_metamodel()
+    BasisIndices = mm._all_basis_indices[str(1)][str(1.0)]
     univ_bas = mm.univ_basis_vals(samples)
     psi = create_psi(BasisIndices, univ_bas)
+    mm._pce_reg_method='ebl'
 
-    outs = mm.regression(samples, outputs, psi, reg_method='ebl',
-                         sparsity=True)
+    outs = mm.regression(samples, outputs, psi, sparsity=True)
     corr_loocv_error(outs['clf_poly'], outs['sparePsi'], outs['coeffs'],
                      outputs)
 
@@ -147,7 +153,7 @@ def test_gaussian_process_emulator_autosel() -> None:
     inp.add_marginals()
     inp.Marginals[0].dist_type = 'normal'
     inp.Marginals[0].parameters = [0, 1]
-    gaussian_process_emulator([[0.2], [0.8]], [0.4, 0.5], autoSelect=True)
+    gaussian_process_emulator([[0.2], [0.8]], [0.4, 0.5], auto_select=True)
 
 
 def test_gaussian_process_emulator_varidx() -> None:
@@ -158,5 +164,5 @@ def test_gaussian_process_emulator_varidx() -> None:
     inp.add_marginals()
     inp.Marginals[0].dist_type = 'normal'
     inp.Marginals[0].parameters = [0, 1]
-    gaussian_process_emulator([[0.2], [0.8]], [0.4, 0.5], varIdx=1)
+    gaussian_process_emulator([[0.2], [0.8]], [0.4, 0.5], var_idx=1)
 
-- 
GitLab