Писать на фортране можно на любом языке

Господа, какой-же все-таки махровый &^%! Вот посмотрите сюда. Это код библиотеки OpenLIBM, которая, цитирую:

OpenLIBM is an effort to have a high quality standalone LIBM library.

Высококачественная замена стандартной математической библиотеки. Вот интересно, глядя на этот код, кто сможет ответить на простые вопросы:

  1. Сколько элементов массивов iq, f, fq и q на самом деле используется?

  2. Гарантирован ли невыход за пределы массива при обращении к ipio2?

  3. Сколько итераций recomputed выполнит эта функция?

Мелочи вроде «на кой объявлять константы для zero = 0.0 и one = 1.0 и продолжать использовать в коде литералы 0.0 и 1.0?» я уже спрашивать не буду. Сегодня все глаза сломал об этот код…

Для контраста – буквально пара слов про один юнит-тест, который я видел недавно. Тест используется для проверки библиотеки однотипных функций. Чтобы не копировать кучу похожего кода, тест оборачивает тестируемые функции в обертку из макросов и шаблонов. В результате логика тест кейсов очень проста и понятна – по одной строчке на кейс. А поскольку оберточная инфраструктура занимает больше пары экранов, то в самом начале идет набор кейсов, которые тестируют сами обертки. Вот такой inception и 99% покрытие кода тестами.

comments powered by Disqus