Add a bunch of test vectors that actually expose this (previously the shift-by-zero test had equal lower and upper halves and hid the bug), including the most basic of all, 1 << 0 == 1 (thanks @bjorn3 for finding this).
Add a bunch of test vectors that actually expose this (previously the shift-by-zero test had equal lower and upper halves and hid the bug), including the most basic of all, 1 << 0 == 1 (thanks @bjorn3 for finding this).