Not sure of the intent of your comment -- the code I suggested catches all three case since they are all Numbers; the tests I suggested are missing the Rational case so you could also add `raises(GeneratorsNeeded, lambda: Poly(S.Half))`, too.