TST: tests for maybe_promote (precursor to #23982)
First step towards #23833, resp. precursor to #23982.

TL;DR: `maybe_promote` is quite broken. #23982 tries to come up with tests that it should pass, and #25425 tries to fix the implementation. However, #23982 is quite big, so @jreback asked for a smaller version that (mostly) just tests existing behaviour.