예제 #1
0
def test_sim_config_valid():

    # This shouldn't raise an error
    manager = get_manager(yaml="tests/config_files/valid_sim.yml", check=True)
    tasks = manager.tasks

    assert len(tasks) == 1
    task = tasks[0]

    assert isinstance(task, SNANASimulation)
예제 #2
0
def test_lcfit_config_valid():

    # This shouldn't raise an error
    manager = get_manager(yaml="tests/config_files/valid_lcfit.yml",
                          check=True)
    tasks = manager.tasks

    assert len(tasks) == 2
    assert isinstance(tasks[0], SNANASimulation)
    assert isinstance(tasks[1], SNANALightCurveFit)
예제 #3
0
def test_dataprep_config_valid():

    # This shouldn't raise an error
    manager = get_manager(yaml="tests/config_files/valid_dataprep.yml",
                          check=True)
    tasks = manager.tasks

    assert len(tasks) == 1
    task = tasks[0]

    assert isinstance(task, DataPrep)
예제 #4
0
def test_sim_outputs_set():
    manager = get_manager(yaml="tests/config_files/valid_sim.yml", check=True)
    tasks = manager.tasks
    task = tasks[0]

    # Check properties and outputs all set correctly
    assert task.name == "EXAMPLESIM"
    assert task.output["genversion"] == "PIP_VALID_SIM_EXAMPLESIM"
    assert task.output["ranseed_change"]
    assert not task.output["blind"]
    assert len(task.dependencies) == 0
예제 #5
0
def test_dataprep_outputs_set():
    manager = get_manager(yaml="tests/config_files/valid_dataprep.yml",
                          check=True)
    tasks = manager.tasks
    task = tasks[0]

    # Check properties and outputs all set correctly
    assert task.name == "LABEL"
    assert not task.output["blind"]
    assert task.output["is_sim"]
    assert os.path.basename(task.output["raw_dir"]) == "surveys"
    assert len(task.dependencies) == 0
예제 #6
0
def test_lcfit_outputs_set():
    manager = get_manager(yaml="tests/config_files/valid_lcfit.yml",
                          check=True)
    tasks = manager.tasks
    task = tasks[-1]

    # Check properties and outputs all set correctly
    assert task.name == "DIFFERENT_SN_EXAMPLESIM"
    assert task.output["genversion"] == "PIP_VALID_LCFIT_EXAMPLESIM"
    assert task.output["sim_name"] == "EXAMPLESIM"
    assert not task.output["is_data"]
    assert not task.output["blind"]
    assert len(task.dependencies) == 1
예제 #7
0
def test_lcfit_outputs_mask():
    manager = get_manager(yaml="tests/config_files/valid_lcfit_mask.yml",
                          check=True)
    tasks = manager.tasks
    assert len(tasks) == 5

    expected = {
        "DIFFERENT_SN_EXAMPLESIM", "DIFFERENT_SN_EXAMPLESIM2",
        "MASKTEST_EXAMPLESIM2"
    }
    found = set([t.name for t in tasks if isinstance(t, SNANALightCurveFit)])

    assert expected == found
예제 #8
0
def test_biascor_config_valid():
    # This shouldn't raise an error
    manager = get_manager(yaml="tests/config_files/valid_biascor.yml",
                          check=True)
    tasks = manager.tasks

    assert len(
        tasks
    ) == 13  # (2 sims, 2 lcfit, 4 classifiers, 2 agg, 2 merge, 1 bcor)
    assert isinstance(tasks[-1], BiasCor)

    task = tasks[-1]
    assert task.output["name"] == "BCOR"
    assert task.output["blind"]
    assert len(task.dependencies) == 3  # Two merge + classifier
예제 #9
0
def test_classify_sim_only_config_valid():

    # This shouldn't raise an error
    manager = get_manager(yaml="tests/config_files/valid_classify_sim.yml",
                          check=True)
    tasks = manager.tasks

    assert len(tasks) == 2
    assert isinstance(tasks[0], SNANASimulation)
    assert isinstance(tasks[1], PerfectClassifier)

    task = tasks[-1]
    assert task.output["name"] == "PERFECT"
    assert task.output["prob_column_name"] == "PROB_PERFECT"
    assert len(task.dependencies) == 1
예제 #10
0
def test_classifier_lcfit_config_valid():
    manager = get_manager(yaml="tests/config_files/valid_classify_lcfit.yml",
                          check=True)
    tasks = manager.tasks

    assert len(tasks) == 3
    assert isinstance(tasks[0], SNANASimulation)
    assert isinstance(tasks[1], SNANALightCurveFit)
    assert isinstance(tasks[2], FitProbClassifier)

    task = tasks[-1]

    # Check properties and outputs all set correctly
    assert task.name == "FITPROBTEST"
    assert task.output["prob_column_name"] == "PROB_FITPROBTEST"
    assert len(task.dependencies) == 2
예제 #11
0
def test_agg_config_valid():

    # This shouldn't raise an error
    manager = get_manager(yaml="tests/config_files/valid_agg.yml", check=True)
    tasks = manager.tasks

    assert len(tasks) == 5
    assert isinstance(tasks[0], SNANASimulation)
    assert isinstance(tasks[1], SNANALightCurveFit)
    assert isinstance(tasks[2], FitProbClassifier)
    assert isinstance(tasks[3], PerfectClassifier)
    assert isinstance(tasks[4], Aggregator)

    task = tasks[-1]
    assert task.output["name"] == "AGGLABEL_ASIM"
    assert task.output["sim_name"] == "ASIM"
    assert len(task.dependencies) == 2
예제 #12
0
def test_analyse_config_valid():
    manager = get_manager(yaml="tests/config_files/valid_analyse.yml",
                          check=True)
    tasks = manager.tasks

    assert len(
        tasks
    ) == 16  # (2 sims, 2 lcfit, 4 classifiers, 2 agg, 2 merge, 1 bcor, 1 create cov, 1 cosmomc, 1 analyse)
    assert isinstance(tasks[-1], AnalyseChains)

    task = tasks[-1]
    assert task.output["name"] == "ALL_OMW"
    assert len(
        task.dependencies
    ) == 2  # Create cosmomc for chains, and biascor for hubble diagram
    assert isinstance(task.dependencies[0], (CosmoMC, BiasCor))
    assert isinstance(task.dependencies[1], (CosmoMC, BiasCor))
예제 #13
0
def test_createcov_config_valid():
    # This shouldn't raise an error
    manager = get_manager(yaml="tests/config_files/valid_create_cov.yml",
                          check=True)
    tasks = manager.tasks

    assert len(
        tasks
    ) == 14  # (2 sims, 2 lcfit, 4 classifiers, 2 agg, 2 merge, 1 bcor, 1 create cov)
    assert isinstance(tasks[-1], CreateCov)

    task = tasks[-1]
    assert task.output["name"] == "COVTEST_BCOR"
    assert len(task.output["covopts"]) == 2
    assert "ALL" in task.output["covopts"]
    assert "NOSYS" in task.output["covopts"]
    assert task.output["blind"]
    assert len(task.dependencies) == 1  # Biascor only
예제 #14
0
def test_cosmomc_config_valid():
    # This shouldn't raise an error
    manager = get_manager(yaml="tests/config_files/valid_cosmomc.yml",
                          check=True)
    tasks = manager.tasks

    assert len(
        tasks
    ) == 15  # (2 sims, 2 lcfit, 4 classifiers, 2 agg, 2 merge, 1 bcor, 1 create cov, 1 cosmomc)
    assert isinstance(tasks[-1], CosmoMC)

    task = tasks[-1]
    assert task.output["name"] == "COSMOMC_SN_OMW_COVTEST_BCOR"
    assert len(task.output["covopts"]) == 2
    assert "ALL" in task.output["covopts"]
    assert "NOSYS" in task.output["covopts"]
    assert task.output["blind"]
    assert "w" in task.output["cosmology_params"]
    assert "omegam" in task.output["cosmology_params"]
    assert len(task.dependencies) == 1  # Create cov only
예제 #15
0
def test_merge_config_valid():
    # This shouldn't raise an error
    manager = get_manager(yaml="tests/config_files/valid_merge.yml",
                          check=True)
    tasks = manager.tasks

    assert len(tasks) == 6
    assert isinstance(tasks[0], SNANASimulation)
    assert isinstance(tasks[1], SNANALightCurveFit)
    assert isinstance(tasks[2], FitProbClassifier)
    assert isinstance(tasks[3], PerfectClassifier)
    assert isinstance(tasks[4], Aggregator)
    assert isinstance(tasks[5], Merger)

    task = tasks[-1]
    assert task.output["name"] == "MERGE_D_ASIM"
    assert task.output["sim_name"] == "ASIM"
    assert task.output["lcfit_name"] == "D_ASIM"
    assert not task.output["blind"]
    assert task.output["classifier_names"] == ["FITPROBTEST", "PERFECT"]
    assert len(task.dependencies) == 2
def test_sim_no_sim_comp():
    with pytest.raises(ValueError):
        get_manager(yaml="tests/config_files/fail_sim2.yml", check=True)
def test_dataprep_no_opts_fail():
    with pytest.raises(ValueError):
        get_manager(yaml="tests/config_files/fail_data1.yml", check=True)
def test_classify_needs_mode():
    with pytest.raises(ValueError):
        get_manager(yaml="tests/config_files/fail_classify1.yml", check=True)
def test_classify_mask_matches_nothing():
    with pytest.raises(ValueError):
        get_manager(yaml="tests/config_files/fail_classify2.yml", check=True)
def test_classify_predict_doesnt_specify_train():
    with pytest.raises(ValueError):
        get_manager(yaml="tests/config_files/fail_classify3.yml", check=True)
def test_classify_trained_model_not_found_snn():
    with pytest.raises(ValueError):
        get_manager(yaml="tests/config_files/fail_classify6.yml", check=True)
def test_dataprep_no_dir_found():
    with pytest.raises(ValueError):
        get_manager(yaml="tests/config_files/fail_data2.yml", check=True)
def test_lcfit_base_not_found():
    with pytest.raises(ValueError):
        get_manager(yaml="tests/config_files/fail_lcfit2.yml", check=True)