()
| 49 | |
| 50 | |
| 51 | def main() -> None: |
| 52 | parser = argparse.ArgumentParser( |
| 53 | description="MapCoder reproduction on HumanEval (MASFactory)." |
| 54 | ) |
| 55 | parser.add_argument("--dataset", required=True, help="Path to HumanEval .jsonl(.gz)") |
| 56 | parser.add_argument("--limit", type=int, default=10, help="0 = all problems") |
| 57 | parser.add_argument("--k", type=int, default=3, help="number of plans (max outer-loop iterations)") |
| 58 | parser.add_argument("--t", type=int, default=3, help="number of debug attempts (inner loop)") |
| 59 | parser.add_argument("--language", type=str, default="Python3") |
| 60 | parser.add_argument("--verbose", action="store_true", default=True) |
| 61 | args = parser.parse_args() |
| 62 | |
| 63 | items = load_humaneval_jsonl(args.dataset) |
| 64 | if args.limit > 0: |
| 65 | items = items[: args.limit] |
| 66 | print(f"Loaded {len(items)} HumanEval items from {args.dataset}") |
| 67 | |
| 68 | model = _make_model() |
| 69 | g = build_graph(model, k=args.k, t=args.t) |
| 70 | print(f"MapCoder graph built (k={args.k}, t={args.t}).") |
| 71 | |
| 72 | summary = run_dataset(g, items, language=args.language, k=args.k, verbose=args.verbose) |
| 73 | print( |
| 74 | f"\n=== MapCoder Pass@1: {summary['n_pass']}/{summary['n_total']} = {summary['pass_at_1']} ===" |
| 75 | ) |
| 76 | |
| 77 | |
| 78 | if __name__ == "__main__": |
no test coverage detected