:throws :nothing
throw-if and throw-if-not
fix issue #1
Merge branch 'taoda/improve_testing'