vak: (Робот 3)
[personal profile] vak
Покажу уровень интеллекта нынешнего Claude Code.

На досуге рихтую редактор Notepad Turbo. Хочу добавить юнит тестирование текстового UI. Кто пользовался ncurses, знает, что проверить содержимое экрана та ещё морока. Здесь Turbo Vision: с ним маленько полегче, но тоже не сахар.

Даю задание Клод Коду:
Note: Turbo Vision has support for testing TUI classes. See build/_deps/tvision-src/test/tvision/teditor.test.cpp and other files in that directory as an example. Can we adapt this methodology for testing our NN classes? Please come up with a plan.
Через пять минут получаю детальный анализ кода и план разработки тестов для TUI классов. Запускаю на выполнение - через пятнадцать минут имею 11 тестов в трёх файлах:Сам бы я неделю возился.

Даю следующий запрос:
Many of our classes have Scintilla interfaces. Do we exercise these interfaces in unit tests? Can we learn something useful from existing Scintilla tests in thirdparty/scintilla/test/unit directory?
Получаю неплохой план, командую выполнять. Имеем ещё 35 тестов:

Date: 2026-05-07 17:49 (UTC)
suhajh: (Default)
From: [personal profile] suhajh
👍 недельный план за пол часа❗ Cтахановцам и не снилось😁

Date: 2026-05-07 18:45 (UTC)
sobriquet9: (Default)
From: [personal profile] sobriquet9

И как эти тесты работают? Находят ошибки?

Например, мне нужно было добавить новый логический параметр в функцию. Claude Code добавил тест, который делает следующее: запускает функцию с этим параметром и без, сравнивает результаты, если они отличаются — значит тест прошёл.

Date: 2026-05-07 19:23 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Вопрос "Как тестировать тесты?" не имеет конечного решения.

Date: 2026-05-07 19:31 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Ну вот, работает же!

Date: 2026-05-07 21:41 (UTC)
ufm: (Default)
From: [personal profile] ufm
"что страшнее безинициативного дурака? Только инициативный дурак". :)

Date: 2026-05-07 23:56 (UTC)
sobriquet9: (Default)
From: [personal profile] sobriquet9

ИИ эту функцию сам написал, поэтому должен знать, что от неё ожидается. И это была настоящая функция, без побочных эффектов, где результат зависит только от аргументов.

Просто задача у ИИ — чтоб тесты проходили, вот он её и достигает.

Date: 2026-05-08 00:08 (UTC)
sobriquet9: (Default)
From: [personal profile] sobriquet9

От задачи зависит. Например, задача "написать архиватор, совместимый с gzip, который работает быстрее gzip на вот этом процессоре" легко проверяется, секундомером. Для неё тривиально автоматически нагенерить произвольное количество новых тест кейсов и проверить правильность.

Или задача "найти доказательство теоремы Ферма", тоже легко проверяется. Достаточно попросить это доказательство написать на Lean или Coq или что там сейчас математики используют.