throw if scale_factor == 0 instead of hanging and add rendering tests - closes #1100