56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
|
|
const NodeClass = require('../../src/nodeClass');
|
|
const { Reactor_CSTR, Reactor_PFR } = require('../../src/specificClass');
|
|
const { makeUiConfig, makeReactorConfig, makeNodeStub } = require('../helpers/factories');
|
|
|
|
test('_loadConfig coerces numeric fields and builds initial state vector', () => {
|
|
const inst = Object.create(NodeClass.prototype);
|
|
inst.node = { id: 'n-reactor-1' };
|
|
inst.name = 'reactor';
|
|
|
|
inst._loadConfig(
|
|
makeUiConfig({
|
|
volume: '12.5',
|
|
length: '9',
|
|
resolution_L: '7',
|
|
alpha: '0.5',
|
|
n_inlets: '3',
|
|
timeStep: '2',
|
|
S_O_init: '1.1',
|
|
}),
|
|
);
|
|
|
|
assert.equal(inst.config.volume, 12.5);
|
|
assert.equal(inst.config.length, 9);
|
|
assert.equal(inst.config.resolution_L, 7);
|
|
assert.equal(inst.config.alpha, 0.5);
|
|
assert.equal(inst.config.n_inlets, 3);
|
|
assert.equal(inst.config.timeStep, 2);
|
|
assert.equal(inst.config.initialState.length, 13);
|
|
assert.equal(inst.config.initialState[0], 1.1);
|
|
});
|
|
|
|
test('_setupClass selects Reactor_CSTR when configured as CSTR', () => {
|
|
const inst = Object.create(NodeClass.prototype);
|
|
inst.node = makeNodeStub();
|
|
inst.config = makeReactorConfig({ reactor_type: 'CSTR' });
|
|
|
|
inst._setupClass();
|
|
|
|
assert.ok(inst.source instanceof Reactor_CSTR);
|
|
assert.equal(inst.node.source, inst.source);
|
|
});
|
|
|
|
test('_setupClass selects Reactor_PFR when configured as PFR', () => {
|
|
const inst = Object.create(NodeClass.prototype);
|
|
inst.node = makeNodeStub();
|
|
inst.config = makeReactorConfig({ reactor_type: 'PFR', length: 10, resolution_L: 5 });
|
|
|
|
inst._setupClass();
|
|
|
|
assert.ok(inst.source instanceof Reactor_PFR);
|
|
assert.equal(inst.node.source, inst.source);
|
|
});
|