def test_score():
    """MotifMatchResult scoring"""
    m = Motif(polymorphisms=(p1,))
    mmo = MotifMatchObject(m, match=1)
    mq = MotifQuery(all_polymorphisms=(p1,p2), 
                    defining_polymorphisms=(p1,))
    mmr = MotifMatchResult(mq, [mmo])
    mmr.score()
def test_filter_by():
    """MotifMatchResult filter_by"""
    m1 = Motif(polymorphisms=(p1,), sources=['a', 'b'])
    mmo1 = MotifMatchObject(m1, match=1, missing=1)
    m2 = Motif(polymorphisms=(p3,), sources=['a'])
    mmo2 = MotifMatchObject(m2, mismatch=1)
    m3 = Motif(polymorphisms=(p1,p2), sources=['b'])
    mmo3 = MotifMatchObject(m3, match=2)

    mq = MotifQuery(all_polymorphisms=(p1,p2), 
                    defining_polymorphisms=(p1,p2))
    mmr = MotifMatchResult(mq, [mmo1, mmo2, mmo3])

    assert_equal(14, mmr.top_score)

    mmr.filter_by(source='a')
    assert_equal(1, mmr.top_score)

    mmr.reset_filter()
    assert_equal(14, mmr.top_score)

    mmr.filter_by(sources_in=['a'])
    assert_equal(1, mmr.top_score)

    mmr.reset_filter()
    assert_equal(14, mmr.top_score)