// Test the EnhancedTruthTableVisualizer integration
import { EnhancedTruthTableVisualizer } from '../dist/systems/visualization/propositional/enhancedTruthTable.js';
const visualizer = new EnhancedTruthTableVisualizer();
console.log('\n=== Testing Enhanced Truth Table Visualizer ===');
// Test simple formula
const simpleFormula = {
type: 'binary',
operator: 'and',
left: { type: 'variable', name: 'P' },
right: { type: 'variable', name: 'Q' }
};
console.log('\nTesting simple formula: P ∧ Q');
const simpleHtml = visualizer.generateTruthTable(simpleFormula, 'html');
console.log('HTML visualization generated successfully');
// Save HTML
const fs = await import('fs');
fs.writeFileSync('test-truth-table-simple.html', simpleHtml);
console.log('Saved to test-truth-table-simple.html');
// Test SVG format
const simpleSvg = visualizer.generateTruthTable(simpleFormula, 'svg');
fs.writeFileSync('test-truth-table-simple.svg', simpleSvg);
console.log('SVG version saved to test-truth-table-simple.svg');
// Test text format
const simpleText = visualizer.generateTruthTable(simpleFormula, 'text');
console.log('\nText version:');
console.log(simpleText);
// Test argument (syllogism)
const argument = {
premises: [
{
type: 'binary',
operator: 'implies',
left: { type: 'variable', name: 'P' },
right: { type: 'variable', name: 'Q' }
},
{
type: 'variable',
name: 'P'
}
],
conclusion: {
type: 'variable',
name: 'Q'
}
};
console.log('\nTesting argument: (P → Q), P ⊢ Q');
const argumentHtml = visualizer.generateTruthTable(argument, 'html');
fs.writeFileSync('test-truth-table-argument.html', argumentHtml);
console.log('Argument visualization saved to test-truth-table-argument.html');
console.log('\n✅ Enhanced Truth Table Visualizer tests completed');