Вы хотите сказать, что вы математически докажете, что ваш алгоритм верен на бумаге, или напишите код, который будет делать то же самое? (Я заинтригован тем, как вы будете делать последнее - пожалуйста, дайте ссылку на пост в блоге или объяснение, как это сделать в комментариях, если это возможно)
В первом случае без тестов у вас нет возможности доказать, что ваша реализация отражает ваши намерения и работает как задумано.
В последнем случае, если код доказательства теоремы не осуществляет реализацию - предыдущий аргумент верен.
Лично я бы просто использовал TDD - потому что его просто для меня и других прочитать кучу хорошо написанных тестов и выяснить, что делает код. Не говоря уже о быстрее тоже.
Вам не нужно проверять все возможные выходные данные, а скорее определять репрезентативный набор входных данных. Каждый вход должен осуществлять различные результаты / путь через код.