Я думаю, что эта строка вызывает ошибку ..
imageView.setImageDrawable(createDrawableFromURL("http://savagelook.com/misc/sl_drop2.png"));
, и ошибка объясняет, почему это так ..
Only the original thread that created a view hierarchy can touch its views.
эта ошибка вызвана тем, что вы пытаясь изменить пользовательский интерфейс на mainthread из какого-то другого потока .. здесь doInBackground в вашем случае ...
Эти основанные на коде тесты умны и забавны, но до сих пор я думаю, что подход «попробуй набор чисел» может быть более мощным, в зависимости от типа функций, которые вы можете получить, и от того, заботитесь ли вы больше об ошибках типа I или типа II в вашей идентификации.
В своем вопросе вы говорите
, который определен на некотором интервале Реальной линии
. Итак, давайте предположим, что мы знаем интересующую область. Попробуйте некоторое количество точек в этом домене и проверьте свою функцию.
n = 1e5
test = runif(n, min = 0, max = 5)
results = f(test) # sapply(test, f) if f isn't vectorized
# test for constancy
all(results == results[1]) # or all(diff(results) == 0) or however else
Любая функция, которая действительно является константной функцией, пройдет этот тест очень хорошо, независимо от того, насколько патологична - это не будет верно для любого из других методов, предложенных до сих пор. Тем не менее, это довольно легко обмануть тест на примере, который я оставил в комментариях (или что-то в этом роде)
f3 = function(x) ifelse(x == 5.46512616432116, 0, 1)