* add test * Assorted refactorings * complete test * saturating math * final check * use `default` Co-authored-by: Gav Wood <gavin@parity.io>