if link_ids is None: return None return {par : [true_parents[par][link]] for par in true_parents \ for link in link_ids} # TEST LINK GENERATION ######################################################### N_NODES = 4 @pytest.fixture(params=[ # Generate a test data sample # Parameterize the sample by setting the autocorrelation value, coefficient # value, total time length, and random seed to different numbers # links_coeffs, time, seed_val (a_chain(0.5, 0.6, length=N_NODES), 1000, 42) ]) def a_sample(request): # Set the parameters links_coeffs, time, seed_val = request.param # Set the random seed np.random.seed(seed_val) # Generate the data data, _ = pp.var_process(links_coeffs, T=time) # Get the true parents true_parents = _get_parent_graph(links_coeffs) return pp.DataFrame(data), true_parents # PCMCI CONSTRUCTION ########################################################### @pytest.fixture()
""" Select links given by from the true parents dictionary """ if link_ids is None: return None return {par : [true_parents[par][link]] for par in true_parents \ for link in link_ids} # TEST LINK GENERATION ######################################################### N_NODES = 4 @pytest.fixture(params=[ # Generate a test data sample # Parameterize the sample by setting the autocorrelation value, coefficient # value, total time length, and random seed to different numbers # links_coeffs, time, seed_val (a_chain(0.5, 0.6, length=N_NODES), 1000, 42)]) def a_sample(request): # Set the parameters links_coeffs, time, seed_val = request.param # Set the random seed np.random.seed(seed_val) # Generate the data data, _ = pp.var_process(links_coeffs, T=time) # Get the true parents true_parents = _get_parent_graph(links_coeffs) return pp.DataFrame(data), true_parents # PCMCI CONSTRUCTION ########################################################### @pytest.fixture() # Fixture to build and return a parameterized PCMCI. Different selected # variables can be defined here.
#seed, corr_val, T (5, 0.3, 1000), # Default (6, 0.3, 1000), # New Seed (1, 0.9, 1000)]) # Strong Correlation def data_sample_a(request): # Unpack the parameters seed, corr_val, T = request.param # Return the data sample return gen_data_sample(seed, corr_val, T) @pytest.fixture(params=[ # Generate a test data sample # Parameterize the sample by setting the autocorrelation value, coefficient # value, total time length, and random seed to different numbers # links_coeffs, time, seed_val (a_chain(0.1, 0.9), 1000, 2), (a_chain(0.5, 0.6), 1000, 11), (a_chain(0.5, 0.6, length=5), 1000, 42)]) def data_frame_a(request): # Set the parameters links_coeffs, time, seed_val = request.param # Generate the dataframe return gen_data_frame(links_coeffs, time, seed_val) def test_get_array_parcorr(par_corr, data_frame_a): # Check the get_array function check_get_array(par_corr, data_frame_a) def test_run_test_parcorr(par_corr, data_frame_a): # Check the run_test function check_run_test(par_corr, data_frame_a)
from tigramite.models import Prediction from tigramite.independence_tests import ParCorr from test_pcmci_calculations import a_chain, gen_data_frame # Pylint settings # pylint: disable=redefined-outer-name # TEST LINK GENERATION ######################################################### @pytest.fixture(params=[ # Generate a test data sample # Parameterize the sample by setting the autocorrelation value, coefficient # value, total time length, and random seed to different numbers # links_coeffs, time, seed_val (a_chain(0.9, 0.7), 10000, 21), (a_chain(0.9, 0.7), 10000, 42) ]) def data_frame_a(request): # Set the parameters links_coeffs, time, seed_val = request.param # Generate the dataframe return gen_data_frame(links_coeffs, time, seed_val), links_coeffs # TEST MODELS ################################################################## def test_linear_mediation_coeffs(data_frame_a): # Build the dataframe and the model (dataframe, true_parents), links_coeffs = data_frame_a med = LinearMediation(dataframe=dataframe, data_transform=None) # Fit the model
import tigramite.data_processing as pp from tigramite.models import Prediction from tigramite.independence_tests import ParCorr from test_pcmci_calculations import a_chain, gen_data_frame # Pylint settings # pylint: disable=redefined-outer-name # TEST LINK GENERATION ######################################################### @pytest.fixture(params=[ # Generate a test data sample # Parameterize the sample by setting the autocorrelation value, coefficient # value, total time length, and random seed to different numbers # links_coeffs, time, seed_val (a_chain(0.5, 0.2), 10000, 21), (a_chain(0.5, 0.2), 10000, 42)]) def data_frame_a(request): # Set the parameters links_coeffs, time, seed_val = request.param # Generate the dataframe return gen_data_frame(links_coeffs, time, seed_val), links_coeffs # TEST MODELS ################################################################## def test_linear_mediation_coeffs(data_frame_a): # Build the dataframe and the model (dataframe, true_parents), links_coeffs = data_frame_a med = LinearMediation(dataframe=dataframe) # Fit the model med.fit_model(all_parents=true_parents, tau_max=3) # Ensure the results make sense