Working but slow
This commit is contained in:
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user