"""P10 learner task: implement paired summary without importing the supplied reference.
Use your frozen browser JSON export; preserve every task/seed row and errors.
This file deliberately raises until implemented. Public checks are practice.
"""
def paired_task_means(rows):
    """Return one mean baseline-minus-candidate difference per task.
    Reject duplicate (task, seed), missing tasks/seeds and nonfinite metrics.
    Do not average nine rows as if they were nine independent tasks.
    """
    raise NotImplementedError('Implement validation and task-cluster averaging')

def factorial_interaction(baseline, a, b, both):
    """Return interaction on an error scale; explain its sign in your report."""
    raise NotImplementedError('Implement the four-cell contrast')

if __name__=='__main__':
    assert factorial_interaction(10,7,8,6)==1
    rows=[dict(task=t,seed=s,baseline=t+2,candidate=1) for t in range(3) for s in (7,19,41)]
    assert paired_task_means(rows)==[1,2,3]
    print('Public practice checks passed; obtain independent code review separately.')
