Refactored test for readability.
Added an integration test for a custom constraint.
Parameter renaming in Verifier.verify for clarity. Consolidate AbstractVerifier.
Use simple names in error messages instead of fully qualified where appropriate.