nizavisim
Version:
Независимый язык программирования с поддержкой русского языка.
37 lines (30 loc) • 1.35 kB
JavaScript
const { interpreter } = require('../src/interpreter');
function testInterpreter() {
// Создаем тестовый AST
const ast = [
{ type: 'FunctionDeclaration', name: 'пример' },
{ type: 'PrintStatement', value: 'Hello, World!' }
];
console.log('Начало теста интерпретатора');
// Переопределяем console.log для проверки вывода
const consoleLog = console.log;
let output = '';
console.log = (msg) => {
output += msg + '\n';
};
// Вызываем интерпретатор
interpreter(ast);
// Сравниваем ожидаемый и фактический вывод
const expectedOutput = 'Объявлена функция: пример\nВывод: Hello, World!\n';
if (output === expectedOutput) {
console.log('Тест интерпретатора пройден');
} else {
console.error('Тест не пройден');
console.error(`Ожидаемый вывод:\n${expectedOutput}`);
console.error(`Фактический вывод:\n${output}`);
}
// Восстанавливаем оригинальный console.log
console.log = consoleLog;
}
// Запускаем тест
testInterpreter();