def METHOD_NAME(
    test_id,
    status,
    phash,
    expected_path,
    result_path,
    diff_fname,
):
    fig = plt.figure(figsize=(14, 12))
    plt.suptitle(expected_path.name)
    ax = plt.subplot(221)
    ax.imshow(mimg.imread(expected_path))
    ax = plt.subplot(222, sharex=ax, sharey=ax)
    ax.imshow(mimg.imread(result_path))
    ax = plt.subplot(223, sharex=ax, sharey=ax)
    ax.imshow(mimg.imread(diff_fname))
    result_dir = result_path.parent
    repo = graphics.read_repo_json()
    def accept(event):
        if test_id not in repo:
            repo[test_id] = phash
            graphics.write_repo_json(repo)
            out_file = result_dir / (test_id + ".png")
            result_path.rename(out_file)
            msg = f"ACCEPTED:  {result_path.name} -> {out_file.name}"
            print(msg)
        else:
            msg = f"DUPLICATE: {result_path.name} -> {expected_path.name} (ignored)"
            print(msg)
            result_path.unlink()
        diff_fname.unlink()
        plt.close()
    def reject(event):
        if test_id not in repo:
            print(f"REJECTED:  {result_path.name}")
        else:
            msg = f"DUPLICATE: {result_path.name} -> {expected_path.name} (ignored)"
            print(msg)
        result_path.unlink()
        diff_fname.unlink()
        plt.close()
    def skip(event):
        # Let's keep both the result and the diff files.
        print(f"SKIPPED:   {result_path.name}")
        plt.close()
    ax_accept = plt.axes([0.59, 0.05, 0.1, 0.075])
    ax_reject = plt.axes([0.7, 0.05, 0.1, 0.075])
    ax_skip = plt.axes([0.81, 0.05, 0.1, 0.075])
    baccept = mwidget.Button(ax_accept, "Accept")
    baccept.on_clicked(accept)
    breject = mwidget.Button(ax_reject, "Reject")
    breject.on_clicked(reject)
    bskip = mwidget.Button(ax_skip, "Skip")
    bskip.on_clicked(skip)
    plt.text(0.59, 0.15, status, transform=fig.transFigure)
    plt.show()