Exemplo n.º 1
0
def test_result_filter():
    filter_0 = neurovault.ResultFilter(query_terms={'a': 0},
                                       callable_filter=lambda d: len(d) < 5,
                                       b=1)
    assert np.unicode(filter_0) == u'ResultFilter'
    assert filter_0['a'] == 0
    assert filter_0({'a': 0, 'b': 1, 'c': 2})
    assert not filter_0({'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4})
    assert not filter_0({'b': 1, 'c': 2, 'd': 3})
    assert not filter_0({'a': 1, 'b': 1, 'c': 2})

    filter_1 = neurovault.ResultFilter(query_terms={'c': 2})
    filter_1['d'] = neurovault.NotNull()
    assert filter_1({'c': 2, 'd': 1})
    assert not filter_1({'c': 2, 'd': 0})
    filter_1['d'] = neurovault.IsIn(0, 1)
    assert filter_1({'c': 2, 'd': 1})
    assert not filter_1({'c': 2, 'd': 2})
    del filter_1['d']
    assert filter_1({'c': 2, 'd': 2})
    filter_1['d'] = neurovault.NotIn(0, 1)
    assert not filter_1({'c': 2, 'd': 1})
    assert filter_1({'c': 2, 'd': 3})
    filter_1.add_filter(lambda d: len(d) > 2)
    assert not filter_1({'c': 2, 'd': 3})
    assert filter_1({'c': 2, 'd': 3, 'e': 4})
Exemplo n.º 2
0
def test_move_unknown_terms_to_local_filter():
    terms, new_filter = neurovault._move_unknown_terms_to_local_filter(
        {
            'a': 0,
            'b': 1
        }, neurovault.ResultFilter(), ('a', ))
    assert terms == {'a': 0}
    assert not new_filter({'b': 0})
    assert new_filter({'b': 1})
Exemplo n.º 3
0
def test_move_unknown_terms_to_local_filter():
    terms, new_filter = neurovault._move_unknown_terms_to_local_filter(
        {
            'a': 0,
            'b': 1
        }, neurovault.ResultFilter(), ('a', ))
    assert_equal(terms, {'a': 0})
    assert_false(new_filter({'b': 0}))
    assert_true(new_filter({'b': 1}))
Exemplo n.º 4
0
def test_result_filter_combinations():
    filter_0 = neurovault.ResultFilter(a=0, b=1)
    filter_1 = neurovault.ResultFilter(c=2, d=3)

    filter_0_and_1 = filter_0.AND(filter_1)
    assert filter_0_and_1({'a': 0, 'b': 1, 'c': 2, 'd': 3})
    assert not filter_0_and_1({'a': 0, 'b': 1, 'c': 2, 'd': None})
    assert not filter_0_and_1({'a': None, 'b': 1, 'c': 2, 'd': 3})

    filter_0_or_1 = filter_0.OR(filter_1)
    assert filter_0_or_1({'a': 0, 'b': 1, 'c': 2, 'd': 3})
    assert filter_0_or_1({'a': 0, 'b': 1, 'c': 2, 'd': None})
    assert filter_0_or_1({'a': None, 'b': 1, 'c': 2, 'd': 3})
    assert not filter_0_or_1({'a': None, 'b': 1, 'c': 2, 'd': None})

    filter_0_xor_1 = filter_0.XOR(filter_1)
    assert not filter_0_xor_1({'a': 0, 'b': 1, 'c': 2, 'd': 3})
    assert filter_0_xor_1({'a': 0, 'b': 1, 'c': 2, 'd': None})
    assert filter_0_xor_1({'a': None, 'b': 1, 'c': 2, 'd': 3})
    assert not filter_0_xor_1({'a': None, 'b': 1, 'c': 2, 'd': None})

    not_filter_0 = filter_0.NOT()
    assert not_filter_0({})
    assert not not_filter_0({'a': 0, 'b': 1})

    filter_2 = neurovault.ResultFilter({
        'a': neurovault.NotNull()
    }).AND(lambda d: len(d) < 2)
    assert filter_2({'a': 'a'})
    assert not filter_2({'a': ''})
    assert not filter_2({'a': 'a', 'b': 0})

    filt = neurovault.ResultFilter(a=0).AND(
        neurovault.ResultFilter(b=1).OR(neurovault.ResultFilter(b=2)))
    assert filt({'a': 0, 'b': 1})
    assert not filt({'a': 0, 'b': 0})