def test_like(): t = Symbol('t', 'var * {name: string, city: string}') data = [('Alice Smith', 'New York'), ('Bob Smith', 'Chicago'), ('Alice Walker', 'LA')] assert list(compute(t.like(name='Alice*'), data)) == [data[0], data[2]] assert list(compute(t.like(name='lice*'), data)) == [] assert list(compute(t.like(name='*Smith*'), data)) == [data[0], data[1]] assert list(compute(t.like(name='*Smith*', city='New York'), data)) == [data[0]]
except pymongo.errors.ConnectionFailure: mongo = None # {expr: [list-of-exclusions]} expressions = { t: [], t['id']: [], t.id.max(): [], t.amount.sum(): [], t.amount.head(): [], t.amount + 1: [mongo], sin(t.amount): [sql, mongo], # sqlite doesn't support trig exp(t.amount): [sql, mongo], t.amount > 50: [mongo], t[t.amount > 50]: [], t.like(name='Alic*'): [], t.sort('name'): [bc], t.sort('name', ascending=False): [bc], t.head(3): [], t.name.distinct(): [], t[t.amount > 50]['name']: [], # odd ordering issue t.id.map(lambda x: x + 1, schema='int', name='id'): [sql, mongo], t[t.amount > 50]['name']: [], by(t.name, t.amount.sum()): [], by(t.id, t.id.count()): [], by(t[['id', 'amount']], t.id.count()): [], by(t[['id', 'amount']], (t.amount + 1).sum()): [mongo], by(t[['id', 'amount']], t.name.nunique()): [mongo], by(t.id, t.amount.count()): [], by(t.id, t.id.nunique()): [mongo], # by(t, t.count()): [],