def METHOD_NAME(prepare_data, setup):
    tempdir, pdf = prepare_data
    dirname = os.path.join(tempdir, "test_parquet")
    os.makedirs(dirname)
    for i in range(3):
        file_path = os.path.join(dirname, f"test{i}.parquet")
        pdf[i * 40 : (i + 1) * 40].to_parquet(file_path, index=False)
    df1 = md.read_parquet(dirname)
    df2 = df1.head(5)
    graph = TileableGraph([df2.data])
    next(TileableGraphBuilder(graph).build())
    records = optimize(graph)
    assert records.get_optimization_result(df1.data) is None
    opt_df2 = records.get_optimization_result(df2.data)
    assert opt_df2.op.nrows == 5
    assert len(graph) == 1
    assert opt_df2 in graph.results
    result = df2.execute(
        extra_config={"operand_executors": _iloc_operand_executors}
    ).fetch()
    expected = pdf.head(5)
    pd.testing.assert_frame_equal(result, expected)