def test_split_terms(): terms, server_terms = neurovault._split_terms( { 'DOI': neurovault.NotNull(), 'name': 'my_name', 'unknown_term': 'something' }, neurovault._COL_FILTERS_AVAILABLE_ON_SERVER) assert (terms == { 'DOI': neurovault.NotNull(), 'unknown_term': 'something' }) assert server_terms == {'name': 'my_name'}
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_not_null(): not_null = neurovault.NotNull() assert not_null == 'a' assert not not_null == '' assert 'a' == not_null assert not '' == not_null assert not not_null != 'a' assert not_null != '' assert not 'a' != not_null assert '' != not_null assert str(not_null) == 'NotNull()'
def test_not_null(): not_null = neurovault.NotNull() assert_true(not_null == 'a') assert_false(not_null == '') assert_true('a' == not_null) assert_false('' == not_null) assert_false(not_null != 'a') assert_true(not_null != '') assert_false('a' != not_null) assert_true('' != not_null) assert_equal(str(not_null), 'NotNull()')
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})