feat(math6): Глава 6 — Наглядная геометрия (§1–§5 + финал)
§1 тела (куб/призма/пирамида/цилиндр/конус) + развёртки: квиз грани/рёбра/ вершины + «какое тело из развёртки»; §2 окружность и круг (слайдер r → C, S при π=3,14) + тренажёр; §3 виды треугольников по сторонам и по углам (классификация вычисляется из координат, штрихи равных сторон, метка прямого угла); §4 центральная симметрия (построй A'); §5 осевая симметрия (Oy/Ox); финал — 5 боссов. SVG: тела/развёртки/треугольники inline, симметрия на Math6.plane. Тесты math6: 14/14. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -85,6 +85,27 @@ test('ch5: координатная плоскость — интерактив
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
});
|
||||
|
||||
test('ch6: наглядная геометрия — интерактивы §1–§5 + финал', async () => {
|
||||
const { doc, errors } = await loadDom('math_6_ch6.html');
|
||||
const win = doc.defaultView;
|
||||
assert.ok(doc.querySelector('#p1-fig svg') && doc.querySelector('#p1-q'), 'тела §1');
|
||||
win.goTo('p2'); await wait(80);
|
||||
assert.ok(doc.querySelector('#p2-r') && doc.querySelector('#p2-fig svg circle'), 'окружность §2');
|
||||
assert.ok(doc.querySelector('#p2-out').textContent.indexOf('=') >= 0, 'формулы C, S §2');
|
||||
win.goTo('p3'); await wait(80);
|
||||
assert.ok(doc.querySelector('#p3-fig svg polygon'), 'треугольник §3');
|
||||
assert.ok(doc.querySelectorAll('#p3-iv1 [data-v]').length === 3, 'виды по сторонам §3');
|
||||
win.goTo('p4'); await wait(80);
|
||||
assert.ok(doc.querySelector('#p4-fig svg'), 'плоскость симметрии §4');
|
||||
win.goTo('p5'); await wait(80);
|
||||
assert.ok(doc.querySelector('#p5-fig svg'), 'плоскость симметрии §5');
|
||||
win.goTo('final'); await wait(80);
|
||||
assert.ok(doc.querySelector('#fin-go'), 'арена боссов §6');
|
||||
win.bumpProgress('final', 100); await wait(20);
|
||||
assert.ok(win.M6STATE.achievements.has('ch6_done'), 'достижение «Глава 6 пройдена»');
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
});
|
||||
|
||||
test('hub: 6 карточек глав', async () => {
|
||||
const { doc, errors } = await loadDom('math_6_hub.html');
|
||||
assert.deepEqual(errors, [], 'нет ошибок: ' + errors.join(' | '));
|
||||
|
||||
Reference in New Issue
Block a user