def test_filter_and_limit(): grid = Grid(columns={'id': {}, 'site': {}}) grid.append({ 'id': Ref('id1'), 'site': MARKER, 'equip': 'Chicago', 'geoPostalCode': "78280", 'ahu': MARKER, 'geoCity': 'Chicago', 'curVal': 76 }) grid.append({ 'id': Ref('id2'), 'hvac': MARKER, 'geoPostalCode': "23220", 'curVal': 75 }) grid.append({ 'equip': 'Chicago', 'hvac': MARKER, 'siteRef': Ref('id1'), 'curVal': 74 }) assert len(grid.filter('not acme', limit=1)) == 1
def test_grid_filter(): grid = Grid( columns={ 'id': {}, 'site': {}, 'equip': {}, 'geoPostalCode': {}, 'ahu': {}, 'geoCity': {}, 'curVal': {}, 'hvac': {}, 'siteRef': {} }) grid.append({ 'id': Ref('id1'), 'site': MARKER, 'equip': 'Chicago', 'geoPostalCode': "78280", 'ahu': MARKER, 'geoCity': 'Chicago', 'curVal': 76 }) grid.append({ 'id': Ref('id2'), 'hvac': MARKER, 'geoPostalCode': "23220", 'curVal': 75 }) grid.append({ 'equip': 'Chicago', 'hvac': MARKER, 'siteRef': Ref('id1'), 'curVal': 74 }) result = grid.filter('site') assert len(result) == 1 assert result[Ref('id1')] result = grid.filter('equip == "Chicago"') assert len(result) == 2 assert result[0]['id'] == Ref('id1') assert result[1]['equip'] == 'Chicago' result = grid.filter('not id') assert len(result) == 1 assert result[0]['equip'] == 'Chicago'
def test_multiple_and_filter(): grid = Grid( columns={ 'id': {}, 'site': {}, 'equip': {}, 'geoPostalCode': {}, 'ahu': {}, 'geoCity': {}, 'curVal': {}, 'hvac': {}, 'siteRef': {} }) grid.append({ 'id': Ref('id1'), 'site': MARKER, 'equip': 'Chicago', 'geoPostalCode': "78280", 'ahu': MARKER, 'geoCity': 'Chicago', 'curVal': 76 }) assert len(grid.filter("id and site and equip and geoPostalCode")) == 1
def test_xstr(): grid = Grid(columns={'id': {}, 'data': {}}) grid.append({'id': Ref('id1'), 'data': XStr("hex", 'deadbeef')}) assert len(grid.filter('data == hex("deadbeef")')) == 1
def test_grid_specification_filter_sample(): grid = Grid(columns=[ 'id', 'site', 'equip', 'geoPostalCode', 'ahu', 'geoCity', 'curVal', 'hvac', 'siteRef' ]) grid.append({ 'id': Ref('id1'), 'site': MARKER, 'equip': 'Chicago', 'geoPostalCode': "78280", 'ahu': MARKER, 'geoCity': 'Chicago', 'curVal': 76 }) grid.append({ 'id': Ref('id2'), 'hvac': MARKER, 'geoPostalCode': "23220", 'curVal': 75 }) grid.append({ 'equip': 'Chicago', 'hvac': MARKER, 'siteRef': Ref('id1'), 'curVal': 74 }) # specification samples result = grid.filter('site') assert len(result) == 1 assert result[0]['site'] == MARKER result = grid.filter('geoPostalCode == "23220"') assert len(result) == 1 assert result[0]['id'] == Ref('id2') result = grid.filter('geoPostalCode != "23220"') assert len(result) == 1 assert result[0]['id'] == Ref('id1') result = grid.filter('curVal < 75') assert len(result) == 1 assert result[0]['siteRef'] == Ref('id1') result = grid.filter('curVal <= 75') assert len(result) == 2 assert result[0]['id'] == Ref('id2') assert result[1]['siteRef'] == Ref('id1') result = grid.filter('curVal > 75') assert len(result) == 1 assert result[0]['id'] == Ref('id1') result = grid.filter('curVal >= 75') assert len(result) == 2 assert result[0]['id'] == Ref('id1') assert result[1]['id'] == Ref('id2') result = grid.filter('site or equip') assert len(result) == 2 assert result[0]['id'] == Ref('id1') assert result[0]['site'] assert result[1]['siteRef'] == Ref('id1') assert result[1]['equip'] result = grid.filter('equip and hvac') assert len(result) == 1 assert result[0]['siteRef'] == Ref('id1') result = grid.filter('equip and not ahu') assert len(result) == 1 assert result[0]['siteRef'] == Ref('id1') result = grid.filter('equip and siteRef->geoCity == "Chicago"') assert len(result) == 1 assert result[0]['equip'] == 'Chicago'