public void NonLinear(decimal current, decimal candidate) { Func <decimal, decimal, bool> comparer = (a, b) => a >= b * b; var strategy = new Extremum(comparer); Assert.AreEqual(comparer(current, candidate), strategy.Better(current, candidate)); }