feat(math6): Глава 4 — Рациональные числа (§1–§11 + финал)
§1 числа со знаком + координатная прямая; §2 модуль, противоположные, диаграмма N⊂Z⊂Q; §3 сравнение (прямая + наибольшее из трёх); §4 сложение (демонстратор на прямой + тренажёр); §5 вычитание = +противоп. (тренажёр + перепиши сложением); §6 законы сложения (удобный счёт + определи закон); §7 умножение (таблица знаков + тренажёр); §8 деление (тренажёр + знак частного); §9 порядок действий; §11 прикладной (температуры/долги/глубина); финал — 6 боссов. ВСЕ 6 глав готовы. Тесты math6: 17/17. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -102,6 +102,25 @@ test('ch3: множество — интерактивы + финал', async ()
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
});
|
||||
|
||||
test('ch4: рациональные числа — интерактивы + финал', async () => {
|
||||
const { doc, errors } = await loadDom('math_6_ch4.html');
|
||||
const win = doc.defaultView;
|
||||
assert.ok(doc.querySelector('#p1-fig svg') && doc.querySelectorAll('#p1-iv2 [data-v]').length === 3, 'координатная прямая §1');
|
||||
win.goTo('p2'); await wait(80);
|
||||
assert.ok(doc.querySelector('#p2-q') && doc.querySelector('#p2-oq'), 'модуль и противоположные §2');
|
||||
win.goTo('p4'); await wait(80);
|
||||
assert.ok(doc.querySelector('#p4-asl') && doc.querySelector('#p4-fig svg'), 'сложение на прямой §4');
|
||||
win.goTo('p7'); await wait(80);
|
||||
assert.ok(doc.querySelectorAll('#p7-iv1 [data-s]').length === 4 && doc.querySelector('#p7-q'), 'знаки умножения §7');
|
||||
win.goTo('p9'); await wait(80);
|
||||
assert.ok(doc.querySelector('#p9-q'), 'порядок действий §9');
|
||||
win.goTo('final'); await wait(80);
|
||||
assert.ok(doc.querySelector('#fin-go'), 'арена боссов §4');
|
||||
win.bumpProgress('final', 100); await wait(20);
|
||||
assert.ok(win.M6STATE.achievements.has('ch4_done'), 'достижение «Глава 4 пройдена»');
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
});
|
||||
|
||||
test('ch5: координатная плоскость — интерактивы §1–§3 + финал', async () => {
|
||||
const { doc, errors } = await loadDom('math_6_ch5.html');
|
||||
const win = doc.defaultView;
|
||||
|
||||
Reference in New Issue
Block a user