def test_select_falsey(): table = (('foo',), ([],), ('',)) expect = (('foo',),) actual = select(table, '{foo}') ieq(expect, actual)
def test_recordselect(): table = (('foo', 'bar', 'baz'), ('a', 4, 9.3), ('a', 2, 88.2), ('b', 1, 23.3), ('c', 8, 42.0), ('d', 7, 100.9), ('c', 2)) actual = select(table, lambda rec: rec['foo'] == 'a') expect = (('foo', 'bar', 'baz'), ('a', 4, 9.3), ('a', 2, 88.2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice
def test_select(): table = (('foo', 'bar', 'baz'), ('a', 4, 9.3), ('a', 2, 88.2), ('b', 1, 23.3), ('c', 8, 42.0), ('d', 7, 100.9), ('c', 2)) actual = select(table, lambda rec: rec[0] == 'a') expect = (('foo', 'bar', 'baz'), ('a', 4, 9.3), ('a', 2, 88.2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice table = (('foo', 'bar', 'baz'), ('a', 4, 9.3), ('a', 2, 88.2), ('b', 1, 23.3), ('c', 8, 42.0), ('d', 7, 100.9), ('c', 2)) actual = select(table, lambda rec: rec['foo'] == 'a') expect = (('foo', 'bar', 'baz'), ('a', 4, 9.3), ('a', 2, 88.2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice table = (('foo', 'bar', 'baz'), ('a', 4, 9.3), ('a', 2, 88.2), ('b', 1, 23.3), ('c', 8, 42.0), ('d', 7, 100.9), ('c', 2)) actual = select(table, lambda rec: rec.foo == 'a') expect = (('foo', 'bar', 'baz'), ('a', 4, 9.3), ('a', 2, 88.2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice # check select complement actual = select(table, lambda rec: rec['foo'] == 'a', complement=True) expect = (('foo', 'bar', 'baz'), ('b', 1, 23.3), ('c', 8, 42.0), ('d', 7, 100.9), ('c', 2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice actual = select(table, lambda rec: rec['foo'] == 'a' and rec['bar'] > 3) expect = (('foo', 'bar', 'baz'), ('a', 4, 9.3)) ieq(expect, actual) actual = select(table, "{foo} == 'a'") expect = (('foo', 'bar', 'baz'), ('a', 4, 9.3), ('a', 2, 88.2)) ieq(expect, actual) actual = select(table, "{foo} == 'a' and {bar} > 3") expect = (('foo', 'bar', 'baz'), ('a', 4, 9.3)) ieq(expect, actual) # check error handling on short rows actual = select(table, lambda rec: Comparable(rec['baz']) > 88.1) expect = (('foo', 'bar', 'baz'), ('a', 2, 88.2), ('d', 7, 100.9)) ieq(expect, actual) # check single field tests actual = select(table, 'foo', lambda v: v == 'a') expect = (('foo', 'bar', 'baz'), ('a', 4, 9.3), ('a', 2, 88.2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice # check select complement actual = select(table, 'foo', lambda v: v == 'a', complement=True) expect = (('foo', 'bar', 'baz'), ('b', 1, 23.3), ('c', 8, 42.0), ('d', 7, 100.9), ('c', 2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice
def test_select_empty(): table = (('foo', 'bar'), ) expect = (('foo', 'bar'), ) actual = select(table, lambda r: r['foo'] == r['bar']) ieq(expect, actual)
def test_select_empty(): table = (('foo', 'bar'),) expect = (('foo', 'bar'),) actual = select(table, lambda r: r['foo'] == r['bar']) ieq(expect, actual)
def test_select(): table = ( ("foo", "bar", "baz"), ("a", 4, 9.3), ("a", 2, 88.2), ("b", 1, 23.3), ("c", 8, 42.0), ("d", 7, 100.9), ("c", 2), ) actual = select(table, lambda rec: rec[0] == "a") expect = (("foo", "bar", "baz"), ("a", 4, 9.3), ("a", 2, 88.2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice table = ( ("foo", "bar", "baz"), ("a", 4, 9.3), ("a", 2, 88.2), ("b", 1, 23.3), ("c", 8, 42.0), ("d", 7, 100.9), ("c", 2), ) actual = select(table, lambda rec: rec["foo"] == "a") expect = (("foo", "bar", "baz"), ("a", 4, 9.3), ("a", 2, 88.2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice table = ( ("foo", "bar", "baz"), ("a", 4, 9.3), ("a", 2, 88.2), ("b", 1, 23.3), ("c", 8, 42.0), ("d", 7, 100.9), ("c", 2), ) actual = select(table, lambda rec: rec.foo == "a") expect = (("foo", "bar", "baz"), ("a", 4, 9.3), ("a", 2, 88.2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice # check select complement actual = select(table, lambda rec: rec["foo"] == "a", complement=True) expect = (("foo", "bar", "baz"), ("b", 1, 23.3), ("c", 8, 42.0), ("d", 7, 100.9), ("c", 2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice actual = select(table, lambda rec: rec["foo"] == "a" and rec["bar"] > 3) expect = (("foo", "bar", "baz"), ("a", 4, 9.3)) ieq(expect, actual) actual = select(table, "{foo} == 'a'") expect = (("foo", "bar", "baz"), ("a", 4, 9.3), ("a", 2, 88.2)) ieq(expect, actual) actual = select(table, "{foo} == 'a' and {bar} > 3") expect = (("foo", "bar", "baz"), ("a", 4, 9.3)) ieq(expect, actual) # check error handling on short rows actual = select(table, lambda rec: rec["baz"] > 88.1) expect = (("foo", "bar", "baz"), ("a", 2, 88.2), ("d", 7, 100.9)) ieq(expect, actual) # check single field tests actual = select(table, "foo", lambda v: v == "a") expect = (("foo", "bar", "baz"), ("a", 4, 9.3), ("a", 2, 88.2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice # check select complement actual = select(table, "foo", lambda v: v == "a", complement=True) expect = (("foo", "bar", "baz"), ("b", 1, 23.3), ("c", 8, 42.0), ("d", 7, 100.9), ("c", 2)) ieq(expect, actual) ieq(expect, actual) # check can iterate twice
def test_select_empty(): table = (("foo", "bar"),) expect = (("foo", "bar"),) actual = select(table, lambda r: r["foo"] == r["bar"]) ieq(expect, actual)