Size: a a a

2020 August 24

CD

Constantine Drozdov in rust_offtopic
polunin.ai
А любые тесты можно выразить в сигнатуре либо в лемме
А любую императивную программу можно проверить на корректность на всех тестах)
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Выразить всю логику в сигнатуре неоправданно дорого, даже на предназначенных для этого языках типа идриса.
А ты пишешь для функций тесты на ту логику которая тебе нужна, или для всей логики?
источник

CD

Constantine Drozdov in rust_offtopic
Она же использует конечную память
источник

CD

Constantine Drozdov in rust_offtopic
polunin.ai
А ты пишешь для функций тесты на ту логику которая тебе нужна, или для всей логики?
Я не пишу тесты для функций*
*кроме определенного множества
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
А ты пишешь для функций тесты на ту логику которая тебе нужна, или для всей логики?
Для нетривиальной логики тесты написать гораздо проще, чем доказать, что она корректна.
источник

p

polunin.ai in rust_offtopic
Constantine Drozdov
Я не пишу тесты для функций*
*кроме определенного множества
А для чего?
источник

CD

Constantine Drozdov in rust_offtopic
polunin.ai
А для чего?
У меня вот есть тесты, которые берут входные данные из папочки и определенные результаты запуска на них укладывают в git
источник

EG

Emmanuel Goldstein in rust_offtopic
Кроме того, при переписывании функции, блэкбокс-тесты сохраняются, а доказательство нужно переделывать.
источник

CD

Constantine Drozdov in rust_offtopic
Constantine Drozdov
У меня вот есть тесты, которые берут входные данные из папочки и определенные результаты запуска на них укладывают в git
И они мне говорят, что я конченый долбоеб
источник

CD

Constantine Drozdov in rust_offtopic
Они не указывают конкретное место ошибки
источник

CD

Constantine Drozdov in rust_offtopic
Только что результат вот этого изменился
источник

CD

Constantine Drozdov in rust_offtopic
Если у меня есть какой-то хороший пример, я добавляю в эту папочку
источник

p

polunin.ai in rust_offtopic
Constantine Drozdov
А любую императивную программу можно проверить на корректность на всех тестах)
Тесты доказывают что на определенном наборе данных функция имеет определенное поведение. То что происходит на остальных данных неизвестно. Можно конечно благодаря индукции считать что функция работает на всех данных но ничего не мешает добавить if input == 269 { panic!() }
источник

CD

Constantine Drozdov in rust_offtopic
polunin.ai
Тесты доказывают что на определенном наборе данных функция имеет определенное поведение. То что происходит на остальных данных неизвестно. Можно конечно благодаря индукции считать что функция работает на всех данных но ничего не мешает добавить if input == 269 { panic!() }
Именно так. Вопрос в том, что такого в коде не будет, и редко срабатывающих ошибок - тоже, не писать их - как раз квалификация
источник

CD

Constantine Drozdov in rust_offtopic
Либо OK либо WA#1
источник

CD

Constantine Drozdov in rust_offtopic
Работает как надо всегда или никогда
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Для нетривиальной логики тесты написать гораздо проще, чем доказать, что она корректна.
Напиши мне тест который гарантирует что после реверса списка в списке остаются те же самые элементы что и до реверса.
источник

CD

Constantine Drozdov in rust_offtopic
polunin.ai
Напиши мне тест который гарантирует что после реверса списка в списке остаются те же самые элементы что и до реверса.
Зачем
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Напиши мне тест который гарантирует что после реверса списка в списке остаются те же самые элементы что и до реверса.
Лол, стандартные фпшные примеры
источник

p

polunin.ai in rust_offtopic
Он сказал про сложную логику
источник