﻿Range(5)
Range(1, 5)
Range(1, 5, 2)
Range(5, 1, -1)
Range(5, 1, -2)
Range(-3) // Empty
Range(-3, -5) // Empty
Range(-5, -3)
Range(-5, -3, +1)
Range(-3, -5, +1) // Empty
Range(-5, -3, -1) // Empty
Range(-3, -5, -1)
Range(-5, +3)
Range(-5, +3, +1)
Range(+5, -3, +1) // Empty
Range(-5, +3, -1) // Empty
Range(+5, -3, -1)

Range(0, 0x7FFF_FFFF_FFFF_FFFF, 0) // Zero step produces empty

Range(0x7FFF_FFFF_FFFF_FFF0, 0x7FFF_FFFF_FFFF_FFF5)
Range(0x7FFF_FFFF_FFFF_FFF5, 0x7FFF_FFFF_FFFF_FFFF)
// Last increment overflows to negative.
Range(0x7FFF_FFFF_FFFF_FFF5, 0x7FFF_FFFF_FFFF_FFFF, 3)

Range(-0x7FFF_FFFF_FFFF_FFF0, -0x7FFF_FFFF_FFFF_FFF5, -1)
Range(-0x7FFF_FFFF_FFFF_FFF5, -0x7FFF_FFFF_FFFF_FFFF, -1)
// Last increment overflows to negative.
Range(-0x7FFF_FFFF_FFFF_FFF5, -0x7FFF_FFFF_FFFF_FFFF, -3)
