Тестирую свой код.
1. Пишу юнит-тест.
2. Прога выдает на нём не тот результат.
3. Проверяю юнит-тест — не, прога вывела правильный результат, это у меня неправильный юнит-тест.
4. Исправляю.
5. Запускаю — ну надо же, проходит! Как так вдруг?!
6. Пишу новый юнит-тест.
7. Возвращаюсь к пункту 2.
Последние полчаса из такого цикла не выходил. Алгоритмами мыслить проще, чем частными случаями. Наверное, поэтому я программист.