===== case 0000 | name=empty opt_stop=False ops=[] =====
!! ValueError: The program is empty - add a cycle to it first
===== case 0001 | name=bad op opt_stop=False ops=[od_profile T1] =====
!! ValueError: op 1 (OD turning): profile needs at least 2 points
===== case 0002 | name=bad second op opt_stop=True ops=[od_profile T2, od_profile T1] =====
!! ValueError: op 2 (OD turning): point 2: Z must not increase going away from the face (Z 0.000 then 5.000). G71 needs a monotonic Z; a reversal is a re-entrant undercut, not supported.
