The zh_CN.UTF-8 locale on Glibc has got n_sign_posn == 4 (which means
having the negative sign just after the currency symbol), but has
int_n_sign_posn == 1 (which means before the string).
On Windows, there's no separate int_n_sign_posn field, so the same
n_sign_posn (which is 4 there too) is used for international currency
formatting too. This makes the ordering for the international case on
Windows be the same as for the national one right above it.
On Apple platforms, the fr_FR.UTF-8 locale has got n_sign_posn == 2
but p_sign_posn == 1, giving a different order for the French locale
for the negative format.
On Apple platforms for the zh_CN.UTF-8 locale, both n_sign_posn and
int_n_sign_posn are 4, but p_sign_posn and int_p_sign_posn are 1.
Is the order always either value-none-symbol-sign or sign-value-none-symbol?
Thus, could every one of these tests (even the ones you're not touching) profitably be refactored into something like this?