12 2/16: Black-box testing, invariants, amortized analysis, and function constructors