Тесты на основе свойств в Rust находят баги, которые пропускают ваши юнит-тесты
Тестирование на примерах покрывает только те входные данные, о которых вы подумали. Тестирование на основе свойств генерирует случайные данные, проверяет инварианты и сокращает ошибки до минимальных контрпримеров.