def METHOD_NAME(df_factory):
    df = df_factory(x=[1, 2, 3], y=[2, 3, 4])
    # polygon1a = np.array( [(1.5, 2.5, 2.5, 1.5), (2.5, 2.5, 3.5, 3.5)] )
    # polygon1b = (polygon1a.T + [1, 1]).T
    px = np.array([1.5, 2.5, 2.5, 1.5])
    py = np.array([2.5, 2.5, 3.5, 3.5])
    polygon1a = [px, py]  # matches #1
    polygon1b = [px + 1, py + 1]  # matches #2
    polygon_nothing = [px + 10, py + 10]  # matches nothing
    pxw = np.array([1.5, 3.5, 3.5, 1.5])
    pyw = np.array([2.5, 2.5, 4.5, 4.5])
    polygon1c = [pxw, pyw]  # matches #1 and 2
    pxs = [[polygon1a, polygon1b], [polygon1b, polygon1c], [polygon1c]]
    df['polygon_index'] = df.geo.inside_which_polygons(df.x, df.y, pxs, any=True)
    assert df.polygon_index.values.tolist() == [None, 0, 0]
    df['polygon_index'] = df.geo.inside_which_polygons(df.x, df.y, pxs, any=False)
    assert df.polygon_index.values.tolist() == [None, 2, 1]
    pxs = [[polygon_nothing, polygon1a, polygon_nothing]]
    df['polygon_index'] = df.geo.inside_which_polygons(df.x, df.y, pxs, any=True)
    assert df.polygon_index.values.tolist() == [None, 0, None]
    pxs = [[polygon1a, polygon_nothing, polygon1a]]
    df['polygon_index'] = df.geo.inside_which_polygons(df.x, df.y, pxs, any=False)
    assert df.polygon_index.values.tolist() == [None, None, None]