Я не делаю закрытых методов модульного теста. Закрытый метод является деталью реализации, которая должна быть скрыта пользователям класса. Тестирование закрытых методов повреждает инкапсуляцию.
, Если я нахожу, что закрытый метод огромен или сложен или достаточно важен для требования его собственных тестов, я просто поместил его в другой класс и обнародовал его там ( Объект Метода ). Тогда я могу легко протестировать previously-private-but-now-public метод, который теперь живет на его собственном классе.
попробуйте pow (10.0, 12.0). Еще лучше, #include math.h
.
Для пояснения: если вы не включаете math.h , компилятор предполагает, что pow ()
возвращает целое число. Включение math.h приводит к прототипу вроде
double pow(double, double);
, поэтому компилятор может понять, как обрабатывать аргументы и возвращаемое значение.
Вот как вычислить x ^ 12 с наименьшим числом умножений.
y = x*x*x; y *= y; y *= y;
Метод взят из получисленных алгоритмов Кнута, раздел 4.6.3.
Я даже не смог заставить программу скомпилировать без:
#include <math.h>
При использовании подобных математических функций вы должны ВСЕГДА включать math.h и убедиться, что вы вызываете правильную функцию pow. Кто знает, какая еще может быть функция мощности ... она может означать "силовые колеса", ха-ха
Это правильный синтаксис для pow, строку какого формата вы передаете в NSLog (…)?
вы пытались выполнить приведение к двойному:
NSLog(@"(double)pow(10, 12) = %lf", (double)pow(10, 12));