Which are appropriate uses of assertions?
A, B, D.
Assertions are appropriate for checking post-conditions in all methods and for checking pre-conditions in most methods.
They are not appropriate for checking pre-conditions in public methods, however, because public methods are often called in environments where assertions are not enabled.