tests: Add tests for ascend().

Turns out it's broken! Who knew?

Refs #390.
tests: Fix tests.
beta/protocol: Improve ascend().

Fixes #390.