More tests might be needed, as I haven't made tests that check edge cases of the arbitrary range functions and macros.