Complete unit test, Use evaluatePrecondition instead of my long code (should've known this beforegit add -A)