wifi-densepose/vendor/sublinear-time-solver/tests/convergence/quick-test.js

56 lines
1.4 KiB
JavaScript

const { createSolver } = require('../../src/solver.js');
async function quickTest() {
console.log('Running quick convergence test...');
// Create a simple 3x3 diagonal matrix
const matrix = {
data: [
[2, 0, 0],
[0, 3, 0],
[0, 0, 4]
],
rows: 3,
cols: 3,
format: 'dense'
};
const b = [2, 6, 12]; // Should give solution [1, 2, 3]
try {
const solver = await createSolver({
matrix: matrix,
method: 'jacobi',
tolerance: 1e-10,
maxIterations: 100,
verbose: true
});
const result = await solver.solve(b);
console.log('Results:');
console.log(' Solution:', result.values.map(x => x.toFixed(3)));
console.log(' Iterations:', result.iterations);
console.log(' Converged:', result.converged);
console.log(' Convergence Rate:', result.convergenceRate?.toFixed(1) + '%');
console.log(' Performance Grade:', result.performanceGrade);
console.log(' Residual:', result.residual?.toExponential(3));
return result;
} catch (error) {
console.error('Error:', error.message);
throw error;
}
}
if (require.main === module) {
quickTest().then(() => {
console.log('✅ Quick test passed!');
process.exit(0);
}).catch(error => {
console.error('❌ Quick test failed:', error.message);
process.exit(1);
});
}
module.exports = { quickTest };