"""Finish these small functions before opening solutions/learner_functions.py."""
import numpy as np

def regression_mae(actual,predicted):
    """Return MAE for equal-length, nonempty one-dimensional arrays."""
    raise NotImplementedError('Complete exercise 5: absolute errors, then mean.')

def confusion_counts(actual,probability,threshold):
    """Return dict tn,fp,fn,tp. Predict positive for probability >= threshold."""
    raise NotImplementedError('Complete exercise 6: make masks and count.')

def threshold_cost(actual,probability,threshold):
    """Teaching cost = FP + 4*FN, not a measured real business cost."""
    raise NotImplementedError('Complete exercise 8: use your confusion counts.')

def candidate_features(columns):
    """Return only the course-approved inputs, in canonical feature order."""
    raise NotImplementedError('Complete exercise 2: explicit allowlist, not drop target alone.')
