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

153 lines
6.4 KiB
JavaScript

#!/usr/bin/env node
// Compare REAL vs FAKE implementations
const wasmFake = require('../wasm/strange_loop.js');
const wasmReal = require('../wasm-real/strange_loop.js');
const chalk = require('chalk');
// Initialize both WASM modules
console.log(chalk.cyan.bold('\n════════════════════════════════════════════════════════════════'));
console.log(chalk.cyan.bold(' REAL vs FAKE: Strange Loops Comparison '));
console.log(chalk.cyan.bold('════════════════════════════════════════════════════════════════\n'));
wasmFake.init_wasm();
wasmReal.init_wasm();
function compareResults(category, operation, fake, real) {
console.log(chalk.yellow(`\n${category}: ${operation}`));
console.log(chalk.red(' FAKE:'), fake);
console.log(chalk.green(' REAL:'), real);
}
// 1. QUANTUM SUPERPOSITION
console.log(chalk.cyan.bold('\n═══ 1. QUANTUM SUPERPOSITION ═══'));
const quantumFake = wasmFake.quantum_superposition(4);
const quantumReal = wasmReal.quantum_superposition(4);
compareResults('Quantum', 'Superposition (4 qubits)', quantumFake, quantumReal);
// 2. QUANTUM MEASUREMENT RANDOMNESS
console.log(chalk.cyan.bold('\n═══ 2. QUANTUM MEASUREMENT RANDOMNESS ═══'));
const measurementsFake = [];
const measurementsReal = [];
for (let i = 0; i < 10; i++) {
measurementsFake.push(wasmFake.measure_quantum_state(4));
measurementsReal.push(wasmReal.measure_quantum_state(4));
}
console.log(chalk.yellow('\n▶ Quantum Measurements (10 samples):'));
console.log(chalk.red(' FAKE:'), measurementsFake);
console.log(chalk.green(' REAL:'), measurementsReal);
// Calculate uniqueness
const uniqueFake = new Set(measurementsFake).size;
const uniqueReal = new Set(measurementsReal).size;
console.log(chalk.gray(` FAKE uniqueness: ${uniqueFake}/10`));
console.log(chalk.gray(` REAL uniqueness: ${uniqueReal}/10`));
// 3. CONSCIOUSNESS EVOLUTION
console.log(chalk.cyan.bold('\n═══ 3. CONSCIOUSNESS EVOLUTION ═══'));
const consciousnessFake100 = wasmFake.evolve_consciousness(100);
const consciousnessReal100 = wasmReal.evolve_consciousness(100);
const consciousnessFake500 = wasmFake.evolve_consciousness(500);
const consciousnessReal500 = wasmReal.evolve_consciousness(500);
compareResults('Consciousness', 'Evolution (100 iterations)',
consciousnessFake100, consciousnessReal100);
compareResults('Consciousness', 'Evolution (500 iterations)',
consciousnessFake500, consciousnessReal500);
// 4. NANO-AGENT SWARM
console.log(chalk.cyan.bold('\n═══ 4. NANO-AGENT SWARM ═══'));
const swarmFake = wasmFake.create_nano_swarm(100);
const swarmReal = wasmReal.create_nano_swarm(100);
compareResults('Swarm', 'Create (100 agents)', swarmFake, swarmReal);
// 5. SUBLINEAR SOLVER
console.log(chalk.cyan.bold('\n═══ 5. SUBLINEAR SOLVER ═══'));
const solverFake = wasmFake.solve_linear_system_sublinear(1000, 0.001);
const solverReal = wasmReal.solve_linear_system_sublinear(1000, 0.001);
compareResults('Solver', 'Linear System (n=1000)', solverFake, solverReal);
// 6. BELL STATES
console.log(chalk.cyan.bold('\n═══ 6. BELL STATES ═══'));
const bellFake = wasmFake.create_bell_state(0);
const bellReal = wasmReal.create_bell_state(0);
compareResults('Quantum', 'Bell State |Φ+⟩', bellFake, bellReal);
// 7. PERFORMANCE TEST
console.log(chalk.cyan.bold('\n═══ 7. PERFORMANCE COMPARISON ═══\n'));
const { performance } = require('perf_hooks');
// Test quantum measurement speed
const iterations = 1000;
const startFake = performance.now();
for (let i = 0; i < iterations; i++) {
wasmFake.measure_quantum_state(8);
}
const endFake = performance.now();
const startReal = performance.now();
for (let i = 0; i < iterations; i++) {
wasmReal.measure_quantum_state(8);
}
const endReal = performance.now();
const fakeTime = endFake - startFake;
const realTime = endReal - startReal;
console.log(chalk.yellow('▶ Performance (1000 quantum measurements):'));
console.log(chalk.red(` FAKE: ${fakeTime.toFixed(2)}ms (${(iterations / fakeTime * 1000).toFixed(0)} ops/sec)`));
console.log(chalk.green(` REAL: ${realTime.toFixed(2)}ms (${(iterations / realTime * 1000).toFixed(0)} ops/sec)`));
// 8. DETERMINISM CHECK
console.log(chalk.cyan.bold('\n═══ 8. DETERMINISM CHECK ═══\n'));
console.log(chalk.yellow('▶ Testing if functions are deterministic:'));
// Check consciousness (should be deterministic)
const c1 = wasmReal.evolve_consciousness(100);
const c2 = wasmReal.evolve_consciousness(100);
const c3 = wasmReal.evolve_consciousness(100);
console.log(' Consciousness(100):', c1 === c2 && c2 === c3 ?
chalk.red('DETERMINISTIC') : chalk.green('VARIES'));
// Check quantum measurement (should vary)
const m1 = wasmReal.measure_quantum_state(4);
const m2 = wasmReal.measure_quantum_state(4);
const m3 = wasmReal.measure_quantum_state(4);
console.log(' Quantum measurement:', m1 === m2 && m2 === m3 ?
chalk.red('DETERMINISTIC') : chalk.green('RANDOM'));
// SUMMARY
console.log(chalk.cyan.bold('\n════════════════════════════════════════════════════════════════'));
console.log(chalk.cyan.bold(' SUMMARY '));
console.log(chalk.cyan.bold('════════════════════════════════════════════════════════════════\n'));
console.log(chalk.red.bold('FAKE Implementation:'));
console.log(' • Returns formatted strings');
console.log(' • Uses basic hash for "randomness"');
console.log(' • No actual computation');
console.log(' • Fast but meaningless');
console.log(chalk.green.bold('\nREAL Implementation:'));
console.log(' • Complex state vectors for quantum');
console.log(' • Cryptographic randomness');
console.log(' • Actual mathematical computation');
console.log(' • Slightly slower but meaningful');
console.log(chalk.yellow.bold('\nConclusion:'));
console.log(' The FAKE version is performance theater.');
console.log(' The REAL version does actual computation.');
process.exit(0);