Тут много раз слышал про всякое там тестирование программ, чтобы убедиться, что они работают как надо. Так вот я тоже стал делать нечто подобное для своих этих октодеревьев для вокселей.
Суть в том, что библиотека делает в основном некие вычисления (математические), правильность которых нужно проверить. Моё видение тестов такое: если там вдруг после некоторого коммита резко станет неправильно работать некоторая функция, и программа будет падать - на это начихать с точки зрения тестирования. Главное, не пропускать «тихие» ошибки, когда функция вроде как отработала, но вернула неверный результат.
И я накатал такие тесты: построить дерево и проверить, правильно ли оно построено. Потом ещё в для каждого алгоритма поиска делается проверка с простейшим алгоритмом перебора (сложности O(n)) и сравнением результатов.
В основном это тесты, проверяющие некоторые математические свойства этих деревьев. А как делают настоящие программисты? Что именно тестируют? Ещё что-то слыхал про инструменты автоматического юнит тестирования. Это как?
И вопрос не совсем по теме: Ещё есть некие бинарные операции, хотелось бы проверить некоторые их свойства (ассоциативность, например). Для этого придется проверять на равенство 2 предположительно равных floting point значения, полученных разными способами. Как правильно это сделать?