def METHOD_NAME():
    env: cy.CylonEnv = cy.CylonEnv(config=cy.MPIConfig(), distributed=True)
    print("CylonContext Initialized: My rank: ", env.rank)
    input_file = "data/mpiops/sales_nulls_nunascii_" + str(env.rank) + ".csv"
    initial_sizes = [[0,0,0,0],
                     [1,1,1,1],
                     [10,0,0,0],
                     [10,10,10,10],]
    repart_sizes = [[0,0,0,0],
                    [4,0,0,0],
                    [0,0,0,10],
                    [0,20,20,0],]
    initial_offsets = [0,1,10,0]
    df = gcy.DataFrame.from_cudf(cudf.read_csv(input_file))
    for init_sizes, part_sizes, init_offset in zip(initial_sizes, repart_sizes, initial_offsets):
        df1 = df[init_offset:(init_offset + init_sizes[env.rank])]
        reparted_df = gcy.comms.repartition(df1, env=env, rows_per_partition=part_sizes)
        assert len(reparted_df) == part_sizes[env.rank], \
            "Repartitioned DataFrame row count does not match requested row count"