Проверено локально 8 октября 2026 года: Windows, .NET SDK 10.0.401, Chrome. Сборка Release; браузерный сайт запускается через HTTP под тем же префиксом пути, который используется на GitHub Pages.
- Ядро собирается и тестируется как обычная .NET библиотека.
- WebAssembly публикуется с partial trimming, без AOT. При сборке есть предупреждения IL2040 о ресурсах оптимизационных метаданных FSharp.Core; успешная сборка не называется сборкой без предупреждений.
- Холодный запуск в Chrome доходит до вызова F# и выдаёт результат вычисления.
- Проверены широкая компоновка и начало страницы в iframe шириной 390 px. Это проверка адаптивной вёрстки, не тест физического мобильного устройства или Safari.
- Полный каталог опубликованного сайта занимает около 21 MiB без транспортного сжатия; фактический объём сетевой загрузки не измерялся.
- Новый workflow задаёт тесты Windows/Linux и публикацию Pages. Актуальный результат CI находится во вкладке Actions; локальный результат не заменяет CI.
23 тестовых случая: четыре поворота дерева, вставки и удаления с проверкой каждого шага, сравнение с Set, повторные значения, отображение/объединение/связывание, интерполяция узлов и параболы, некорректные параметры, короткие строки распознавателя, ограничение зависшего автомата, цикл светофора и пешеходная кнопка.
Команда: dotnet test lab/Tests/Tests.fsproj -c Release.
Случайные последовательности в новых тестах используют фиксированный seed. Они не выдаются за запуск исторического набора Expecto/FsCheck.
Через интерфейс проверены:
- «Двойной поворот»: 30, 10, 20 → отсортированный обход 10, 20, 30, высота 2, баланс сохранён.
- Парабола с 5 узлами: показанное отклонение на сетке равно 0 после округления.
- Светофор: на шаге 3 без кнопки остаются 3 шага зелёного, с кнопкой — 1.
- Текст вместо числа: понятная ошибка; переход из пустого поля дерева к интерполяции восстанавливает рабочий результат.
- Начальная последовательность из 7 значений: высота 3, баланс сохранён.
- В консоли Chrome ошибок и предупреждений при выполнении этих сценариев не наблюдалось.
Исторические консольные приложения целиком не запускались. Полная кроссбраузерная совместимость и промышленная производительность не заявлены.