def test_multi_ops_multiple_times_sequentially():
    """Run 3 times test_full_psds using delete_ops to reset the metric"""
    gt = pd.read_csv(join(DATADIR, "baseline_validation_gt.csv"), sep="\t")
    metadata = pd.read_csv(join(DATADIR, "baseline_validation_metadata.csv"),
                           sep="\t")
    dets = []
    dets.append(
        pd.read_csv(join(DATADIR, "baseline_validation_AA_0.005.csv"),
                    sep="\t"))
    for k in range(5):
        dets.append(dets[0].sample(4500, random_state=7 * k))
        print(dets[k + 1])

    psds_eval = PSDSEval(dtc_threshold=0.5,
                         gtc_threshold=0.5,
                         cttc_threshold=0.3,
                         ground_truth=gt,
                         metadata=metadata)
    ref_psds_value = 0.07224283564515908
    for k in range(3):
        for det_t in dets:
            psds_eval.add_operating_point(det_t)
        psds = psds_eval.psds(0.0, 0.0, 100)
        assert psds.value == pytest.approx(ref_psds_value), \
            "PSDS was calculated incorrectly"
        psds_eval.clear_all_operating_points()
        assert psds_eval.num_operating_points() == 0
        assert len(psds_eval.operating_points) == 0
Example #2
0
def test_delete_ops():
    """Perform deletion of ops"""
    metadata = pd.read_csv(os.path.join(DATADIR, "test.metadata"), sep="\t")
    det = pd.read_csv(os.path.join(DATADIR, "test_1.det"), sep="\t")
    det_2 = pd.read_csv(os.path.join(DATADIR, "test_1a.det"), sep="\t")
    gt = pd.read_csv(os.path.join(DATADIR, "test_1.gt"), sep="\t")
    psds_eval = PSDSEval(dtc_threshold=0.5, gtc_threshold=0.5,
                         cttc_threshold=0.3, ground_truth=gt,
                         metadata=metadata)

    assert psds_eval.operating_points.empty
    psds_eval.add_operating_point(det)
    psds_eval.add_operating_point(det_2)
    assert psds_eval.num_operating_points() == 2

    psds_eval.clear_all_operating_points()
    assert psds_eval.operating_points.empty