Working but slow

This commit is contained in:
2026-07-06 23:11:42 +02:00
parent 09c1fba8e6
commit f93bcfb8d4
15 changed files with 4443 additions and 4205 deletions
@@ -19,7 +19,7 @@ describe('CA initial condition runtimes', () => {
const input = {
caClass: { dimensions: 2, states: 2 },
settings: { simulation: { grid: { size: [5, 5, 1] } } },
params: { density: 0.35, seed: 'repeatable' }
params: { density: 0.35, ic_seed: 'repeatable' }
}
expect(generateInitialCondition('random-soup', input)).toEqual(generateInitialCondition('random-soup', input))
@@ -29,11 +29,11 @@ describe('CA initial condition runtimes', () => {
const generated = generateInitialCondition('random-soup', {
caClass: { dimensions: 2, states: 2 },
settings: { simulation: { grid: { size: [3, 3, 1] } } },
params: { density: 2, seed: 'full' }
params: { density: 2, ic_seed: 'full' }
})
expect(generated.cells).toHaveLength(9)
expect(generated.generator).toEqual({ kind: 'random-soup', density: 1, seed: 'full' })
expect(generated.generator).toEqual({ kind: 'random-soup', density: 1, ic_seed: 'full' })
})
it('lets custom initial condition runtimes plug into the same contract', () => {
@@ -54,7 +54,7 @@ describe('CA initial condition runtimes', () => {
const generated = generateInitialCondition('naga-markov', {
caClass: { dimensions: 3, states: 7 },
settings: { simulation: { grid: { size: [12, 12, 12] } } },
params: { count: 2, length: 5, sameTypeProbability: 1, seed: 'straight-nagas' }
params: { count: 2, meanLength: 5, lengthStdDev: 0, sameTypeProbability: 1, ic_seed: 'straight-nagas' }
})
expect(generated.cells).toHaveLength(10)
@@ -62,9 +62,10 @@ describe('CA initial condition runtimes', () => {
expect(generated.generator).toMatchObject({
kind: 'naga-markov',
count: 2,
length: 5,
meanLength: 5,
lengthStdDev: 0,
sameTypeProbability: 1,
seed: 'straight-nagas',
ic_seed: 'straight-nagas',
created: 2
})
@@ -93,6 +94,31 @@ describe('CA initial condition runtimes', () => {
}
})
it('samples Naga Markov chain lengths from deterministic mean and deviation settings', () => {
const generated = generateInitialCondition('naga-markov', {
caClass: { dimensions: 3, states: 7 },
settings: { simulation: { grid: { size: [30, 30, 30] } } },
params: { count: 8, meanLength: 7, lengthStdDev: 3, sameTypeProbability: 0.8, ic_seed: 'variable-nagas' }
})
const repeated = generateInitialCondition('naga-markov', {
caClass: { dimensions: 3, states: 7 },
settings: { simulation: { grid: { size: [30, 30, 30] } } },
params: { count: 8, meanLength: 7, lengthStdDev: 3, sameTypeProbability: 0.8, ic_seed: 'variable-nagas' }
})
expect(generated).toEqual(repeated)
expect(generated.generator).toMatchObject({
kind: 'naga-markov',
count: 8,
meanLength: 7,
lengthStdDev: 3,
ic_seed: 'variable-nagas',
created: 8
})
expect(generated.cells.length).not.toBe(56)
})
it('rejects duplicate runtime ids and missing implementations', () => {
expect(() =>
registerInitialConditionRuntime({