feat(math5): Глава 2 «Выражения. Уравнения» — §1–9 + финал (Sonnet по эталону)
Числовые выражения и порядок действий, выражения с переменными, уравнение (SVG-весы + решение/проверка корня), формулы (P,S,путь), решение задач уравнением, угол (SVG-рисунок + классификация острый/прямой/тупой/развёрнутый), прикладные/занимательные/исторические § + финал-боссы. Реализовано Sonnet-агентом по образцу math_5_ch1, проверено: грузится без ошибок, §1–9 без заглушек. Тесты: 11/11. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -75,10 +75,33 @@ for (const ch of CHAPTERS) {
|
||||
});
|
||||
}
|
||||
|
||||
test('ch2/ch3: §§ без билдеров — заглушка движка (каркас ждёт наполнения)', async () => {
|
||||
for (const f of ['math_5_ch2.html', 'math_5_ch3.html']) {
|
||||
const { doc } = await loadDom(f);
|
||||
assert.ok(doc.querySelector('#p1-body .m6-placeholder'), f + ': заглушка § 1');
|
||||
test('ch3: §§ без билдеров — заглушка движка (каркас ждёт наполнения)', async () => {
|
||||
const { doc } = await loadDom('math_5_ch3.html');
|
||||
assert.ok(doc.querySelector('#p1-body .m6-placeholder'), 'ch3: заглушка § 1');
|
||||
});
|
||||
|
||||
test('ch2: выражения/уравнения/углы + финал', async () => {
|
||||
const { doc, errors } = await loadDom('math_5_ch2.html');
|
||||
const win = doc.defaultView;
|
||||
assert.ok(!doc.querySelector('#p1-body .m6-placeholder'), '§1 наполнен');
|
||||
assert.ok(doc.querySelector('#p1-iv1 #p1-a'), '§1: тренажёр выражений');
|
||||
win.goTo('p3'); await wait(80);
|
||||
assert.ok(doc.querySelector('#p3-iv1 #p3-a'), '§3: решение уравнения');
|
||||
win.goTo('p6'); await wait(80);
|
||||
assert.ok(doc.querySelector('#p6-fig svg'), '§6: SVG угла');
|
||||
win.goTo('final'); await wait(80);
|
||||
assert.ok(doc.querySelector('#fin-go'), 'финал: арена боссов');
|
||||
win.bumpProgress('final', 100); await wait(20);
|
||||
assert.ok(win.M6STATE.achievements.has('ch2_done'), 'достижение «Глава 2 пройдена»');
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
});
|
||||
|
||||
test('ch2: все § §1–§9 наполнены (нет заглушек)', async () => {
|
||||
const { doc } = await loadDom('math_5_ch2.html');
|
||||
const win = doc.defaultView;
|
||||
for (let n = 1; n <= 9; n++) {
|
||||
win.goTo('p' + n); await wait(20);
|
||||
assert.ok(!doc.querySelector('#p' + n + '-body .m6-placeholder'), '§' + n + ' наполнен');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user