def METHOD_NAME(self_test_exe: str) -> Dict[int, List[str]]:
    """
    Asks the test binary for list of all tests, and also for lists of
    tests from shards.
    The combination of shards is then checked whether it corresponds to
    the full list of all tests.
    Returns the dictionary of shard-index => listed tests for later use.
    """
    all_tests = list_tests(self_test_exe)
    big_shard_tests = list_tests(self_test_exe, ['--shard-count', '1', '--shard-index', '0'])
    assert all_tests == big_shard_tests, (
        "No-sharding test list does not match the listing of big shard:\nNo shard:\n{}\n\nWith shard:\n{}\n".format(
            '\n'.join(all_tests),
            '\n'.join(big_shard_tests)
        )
    )
    shard_listings = dict()
    for shard_idx in range(number_of_shards):
        shard_listings[shard_idx] = list_tests(self_test_exe, ['--shard-count', str(number_of_shards), '--shard-index', str(shard_idx)])
    shard_sizes = [len(v) for v in shard_listings.values()]
    assert len(all_tests) == sum(shard_sizes)
    # Check that the shards have roughly the right sizes (e.g. we don't
    # have all tests in single shard and the others are empty)
    differences = [abs(x1 - x2) for x1, x2 in zip(shard_sizes, shard_sizes[1:])]
    assert all(diff <= 1 for diff in differences), "A shard has weird size: {}".format(shard_sizes)
    combined_shards = [inner for outer in shard_listings.values() for inner in outer]
    assert all_tests == combined_shards, (
        "All tests and combined shards disagree.\nNo shard:\n{}\n\nCombined:\n{}\n\n".format(
            '\n'.join(all_tests),
            '\n'.join(combined_shards)
        )
    )
    shard_listings[-1] = all_tests
    return shard_listings