Писать на фортране можно на любом языке
Jan 29, 2014 · CommentsПрограммирование
Господа, какой-же все-таки махровый &^%! Вот посмотрите сюда. Это код библиотеки OpenLIBM, которая, цитирую:
OpenLIBM is an effort to have a high quality standalone LIBM library.
Высококачественная замена стандартной математической библиотеки. Вот интересно, глядя на этот код, кто сможет ответить на простые вопросы:
-
Сколько элементов массивов iq, f, fq и q на самом деле используется?
-
Гарантирован ли невыход за пределы массива при обращении к ipio2?
-
Сколько итераций recomputed выполнит эта функция?
Мелочи вроде «на кой объявлять константы для zero = 0.0 и one = 1.0 и продолжать использовать в коде литералы 0.0 и 1.0?» я уже спрашивать не буду. Сегодня все глаза сломал об этот код…
Для контраста – буквально пара слов про один юнит-тест, который я видел недавно. Тест используется для проверки библиотеки однотипных функций. Чтобы не копировать кучу похожего кода, тест оборачивает тестируемые функции в обертку из макросов и шаблонов. В результате логика тест кейсов очень проста и понятна – по одной строчке на кейс. А поскольку оберточная инфраструктура занимает больше пары экранов, то в самом начале идет набор кейсов, которые тестируют сами обертки. Вот такой inception и 99% покрытие кода тестами.