This commit is contained in:
m.elgin
2026-06-30 15:29:48 +03:00
parent 79acf6c317
commit 3b5624e2ab
40 changed files with 303 additions and 429 deletions

View File

@@ -24,11 +24,12 @@ async function main() {
const report = fs.readFileSync(reportPath, 'utf8');
const handout = fs.readFileSync(handoutPath, 'utf8');
const generator = fs.readFileSync(generatorPath, 'utf8');
assert(report.includes('Sanguis Noctis Virus'), 'В докладе отсутствует ключевой термин');
assert(report.includes('Экономика качественной крови'), 'В докладе нет раздела о качественной крови');
assert(report.includes('Почему искусственная кровь им не подходит'), 'В докладе нет раздела про искусственную кровь');
assert(handout.includes('Тайный рынок доноров'), 'В раздатке нет блока про тайный рынок доноров');
assert(generator.includes("12-food-chain-chart.png") && generator.includes("assets', 'generated'"), 'Генератор не использует пакет generated PNG');
assert(generator.includes('ai-01-snv12-agent.png') && generator.includes('ai-08-feeding-zones-map.png'), 'Генератор не использует новый набор scientific PNG');
const pptxBuf = fs.readFileSync(pptxPath);
const zip = await JSZip.loadAsync(pptxBuf);
@@ -38,10 +39,13 @@ async function main() {
assert(slideFiles.length === 15, `Ожидалось 15 слайдов, получено ${slideFiles.length}`);
const firstSlide = await zip.files[slideFiles[0]].async('string');
const chainSlide = await zip.files[slideFiles[13]].async('string');
const agentSlide = await zip.files[slideFiles[2]].async('string');
const marketSlide = await zip.files[slideFiles[11]].async('string');
const lastSlide = await zip.files[slideFiles[slideFiles.length - 1]].async('string');
assert(firstSlide.includes('Пищевая цепочка:'), 'На первом слайде нет заголовка');
assert(chainSlide.includes('Пищевая цепочка: от тебя до теневого правительства'), 'На слайде пищевой цепочки нет подписанного изображения');
assert(agentSlide.includes('SNV-12'), 'На биологическом слайде нет SNV-12');
assert(marketSlide.includes('Тайный рынок доноров'), 'На слайде рынка доноров нет заголовка');
assert(lastSlide.includes('Вывод'), 'На последнем слайде нет слайда с выводом');
try {
@@ -67,4 +71,4 @@ async function main() {
main().catch((err) => {
console.error(err.stack || err.message || String(err));
process.exit(1);
});
});