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})
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})
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}))
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})