def METHOD_NAME(config):
    p = CSVProvider(config)
    fields = p.get_fields()
    assert len(fields) == 4
    assert fields['value']['type'] == 'number'
    assert fields['stn_id']['type'] == 'integer'
    results = p.query()
    assert len(results['features']) == 5
    assert results['numberMatched'] == 5
    assert results['numberReturned'] == 5
    assert results['features'][0]['id'] == '371'
    assert results['features'][0]['properties']['value'] == 89.9
    assert results['features'][0]['geometry']['coordinates'][0] == -75.0
    assert results['features'][0]['geometry']['coordinates'][1] == 45.0
    results = p.query(limit=1)
    assert len(results['features']) == 1
    assert results['features'][0]['id'] == '371'
    results = p.query(offset=2, limit=1)
    assert len(results['features']) == 1
    assert results['features'][0]['id'] == '238'
    assert len(results['features'][0]['properties']) == 3
    results = p.query(select_properties=['value'])
    assert len(results['features'][0]['properties']) == 1
    results = p.query(select_properties=['value', 'stn_id'])
    assert len(results['features'][0]['properties']) == 2
    results = p.query(skip_geometry=True)
    assert results['features'][0]['geometry'] is None
    results = p.query(properties=[('stn_id', '35')])
    assert len(results['features']) == 2
    assert results['numberMatched'] == 2
    assert results['numberReturned'] == 2
    results = p.query(properties=[('stn_id', '35'), ('value', '93.9')])
    assert len(results['features']) == 1
    config['properties'] = ['value', 'stn_id']
    p = CSVProvider(config)
    results = p.query()
    assert len(results['features'][0]['properties']) == 2