What problem does it solve? Example-based unit tests only cover the cases a developer thinks to write, leaving edge cases and invariant violations undiscovered. This Skill guides the creation of property-based tests with Hypothesis that automatically generate inputs, shrink failures, and verify invariants across thousands of cases. ## Core Features & Use Cases - Property and Invariant Testing: Define properties like commutativity, reversibility, and non-negativity instead of hardcoded examples, and let Hypothesis search for counterexamples. - Custom Strategies and Stateful Testing: Build strategies for emails, dates, and URLs, and model stateful systems like shopping carts with RuleBasedStateMachine to verify invariants across operation sequences. - Use Case: When refactoring a data transformation function, write a property test asserting round-trip consistency (e.g., decode(encode(x)) == x) so Hypothesis finds edge cases like empty strings, unicode, and boundary values automatically. ## Quick Start Write a Hypothesis property-based test for my parse_date function that verifies it never crashes on arbitrary string input and raises ValueError for invalid formats.