Positive definite test extracted as Predicate

Also tiny improvement in the code - fail faster
(issue 12)