wifi-densepose/vendor/sublinear-time-solver/crates/strange-loop/test/test-fake-only.js

84 lines
3.1 KiB
JavaScript

#!/usr/bin/env node
// Test just the fake version to see what it really does
const wasm = require('../wasm/strange_loop.js');
const chalk = require('chalk');
wasm.init_wasm();
console.log(chalk.cyan.bold('\n════════════════════════════════════════════'));
console.log(chalk.cyan.bold(' Testing Current WASM Implementation '));
console.log(chalk.cyan.bold('════════════════════════════════════════════\n'));
// Test quantum functions
console.log(chalk.yellow('▶ Quantum Superposition:'));
console.log(' ', wasm.quantum_superposition(4));
console.log(chalk.yellow('\n▶ Quantum Measurements (10 samples):'));
const measurements = [];
for (let i = 0; i < 10; i++) {
measurements.push(wasm.measure_quantum_state(4));
}
console.log(' ', measurements);
// Check if it's truly random
const unique = new Set(measurements).size;
console.log(chalk.gray(` Unique values: ${unique}/10`));
// Test multiple calls to same function
console.log(chalk.yellow('\n▶ Consciousness Evolution (same input):'));
for (let i = 0; i < 3; i++) {
console.log(` 100 iterations: ${wasm.evolve_consciousness(100)}`);
}
console.log(chalk.yellow('\n▶ Bell State:'));
console.log(' ', wasm.create_bell_state(0));
console.log(chalk.yellow('\n▶ Sublinear Solver:'));
console.log(' ', wasm.solve_linear_system_sublinear(1000, 0.001));
console.log(chalk.yellow('\n▶ PageRank:'));
console.log(' ', wasm.compute_pagerank(10000, 0.85));
// Performance test
const { performance } = require('perf_hooks');
console.log(chalk.yellow('\n▶ Performance Test:'));
const start = performance.now();
for (let i = 0; i < 10000; i++) {
wasm.measure_quantum_state(8);
}
const end = performance.now();
const time = end - start;
console.log(` 10,000 measurements: ${time.toFixed(2)}ms`);
console.log(` ${(10000 / time * 1000).toFixed(0)} ops/sec`);
// Check what functions are actually exported
console.log(chalk.yellow('\n▶ Available Functions:'));
const funcs = Object.keys(wasm).filter(k => typeof wasm[k] === 'function');
console.log(' Total functions:', funcs.length);
console.log(' First 10:', funcs.slice(0, 10).join(', '));
// Look for "real" vs "old" versions
const realFuncs = funcs.filter(f => !f.includes('_old') && !f.includes('__'));
const oldFuncs = funcs.filter(f => f.includes('_old'));
console.log(' Regular functions:', realFuncs.length);
console.log(' Old functions:', oldFuncs.length);
// If there are old versions, test them
if (oldFuncs.length > 0) {
console.log(chalk.cyan('\n▶ Testing "_old" versions:'));
if (wasm.quantum_superposition_old) {
console.log(' quantum_superposition_old:', wasm.quantum_superposition_old(4));
}
if (wasm.measure_quantum_state_old) {
const oldMeasurements = [];
for (let i = 0; i < 5; i++) {
oldMeasurements.push(wasm.measure_quantum_state_old(4));
}
console.log(' measure_quantum_state_old:', oldMeasurements);
}
}
process.exit(0);