def test_load(sample_list, sample_annotation, sample_scores):

    coParser = CoParser(uris=sample_list,
                        annotation=sample_annotation,
                        scores=sample_scores)

    for uri, annotation, scores in coParser.iter('uris', 'annotation',
                                                 'scores'):
        break

    assert uri == 'uri1'

    assert list(annotation.itertracks(label=True)) == [
        (Segment(1, 3.5), 0, 'alice'), (Segment(3, 7.5), 1, 'barbara'),
        (Segment(6, 9), 2, 'chris')
    ]

    assert list(scores.itervalues()) == [(Segment(1, 3.5), 0, 'alice', 0.8),
                                         (Segment(1, 3.5), 1, 'barbara', 0.1),
                                         (Segment(1, 3.5), 2, 'chris', 0.1),
                                         (Segment(3, 7.5), 3, 'barbara', 0.5),
                                         (Segment(3, 7.5), 4, 'chris', 0.4),
                                         (Segment(6, 9), 5, 'alice', 0.1),
                                         (Segment(6, 9), 6, 'barbara', 0.2),
                                         (Segment(6, 9), 7, 'chris', 0.7)]
def do_train(
    uris_lst,
    references_mdtm,
    features_pkl,
    model_pkl,
    n_components=16,
    covariance_type='diag',
    min_duration=0.250,
):

    hmm = ViterbiHMM(n_components=n_components,
                     covariance_type=covariance_type,
                     random_state=None,
                     thresh=1e-2,
                     min_covar=1e-3,
                     n_iter=10,
                     disturb=0.05,
                     sampling=1000,
                     min_duration=min_duration)

    # iterate over all uris in a synchronous manner
    coParser = CoParser(uris=uris_lst,
                        reference=references_mdtm,
                        features=features_pkl)
    references, features = coParser.generators('reference', 'features')

    hmm.fit(references, features)

    with open(model_pkl, 'wb') as f:
        pickle.dump(hmm, f)