feat(chemistry7): визуал V1-хвост — §9 валентные связи + §12 подсчёт атомов

§9: добавлена схема «связей-крючков» (Chem7Anim.valenceLink, SVG) — атомы A и B
с чёрточками валентности, связи прорисовываются (draw-in); число связей = НОК.
§12: под балансировщиком — анимированный подсчёт атомов (реагенты vs продукты),
атомы-точки появляются масштабированием; подтверждается баланс слева=справа.

Все интерактивы Химии 7 анимированы. Тесты chem7: 16/16; полный прогон 162/165.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-05-30 20:07:06 +03:00
parent 639f985e6f
commit ac6552b44f
3 changed files with 72 additions and 8 deletions
+2
View File
@@ -131,6 +131,7 @@ test('ch1 Волна 3: интерактивы §7–§9 монтируются
assert.match(doc.querySelector('#p8-out').textContent, /100/, 'M_r(CaCO3)=100');
doc.defaultView.goTo('p9'); await wait(100);
assert.ok(doc.querySelector('#p9-bld #p9-a'), 'конструктор валентности §9');
assert.ok(doc.querySelector('#p9-vis svg circle'), 'схема валентных связей §9');
assert.match(doc.querySelector('#p9-bout').textContent, /Al/, 'формула по валентности построена');
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
});
@@ -145,6 +146,7 @@ test('ch1 Волна 4: §10–§12 + ЛО1 + финал главы монтир
assert.ok(doc.querySelector('#p11-bal svg'), 'весы сохранения массы §11');
doc.defaultView.goTo('p12'); await wait(120);
assert.ok(doc.querySelector('#p12-mount').childElementCount > 0, 'балансировщик §12');
assert.ok(doc.querySelector('#p12-tally .c7-atom'), 'подсчёт атомов §12 (летящие атомы)');
doc.defaultView.goTo('final1'); await wait(120);
assert.ok(doc.querySelectorAll('#navDotsfinal1 .nav-dot').length >= 6, 'боссы финала главы');
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));