| |
|
|
| const { processSignal } = require('./engine'); |
|
|
| function runDeterministicTest() { |
| const input = 'test-signal'; |
|
|
| const run1 = processSignal(input); |
| const run2 = processSignal(input); |
|
|
| console.log('Run 1:', run1); |
| console.log('Run 2:', run2); |
|
|
| const sameOutput = run1.output === run2.output; |
| const sameTimestamp = run1.timestamp === run2.timestamp; |
| const sameStatus = run1.status === run2.status; |
|
|
| if (!sameOutput || !sameTimestamp || !sameStatus) { |
| console.error('Determinism violated'); |
| process.exit(1); |
| } |
|
|
| if (run1.invariants.violations.length > 0 || run2.invariants.violations.length > 0) { |
| console.error('Invariant violation detected'); |
| console.error('Run 1 violations:', run1.invariants.violations); |
| console.error('Run 2 violations:', run2.invariants.violations); |
| process.exit(1); |
| } |
|
|
| console.log('Determinism and invariants confirmed.'); |
| } |
|
|
| runDeterministicTest(); |
|
|
|
|