Files
reactor/test/basic/cstr-tick.basic.test.js
2026-02-19 17:37:42 +01:00

43 lines
1.0 KiB
JavaScript

const test = require('node:test');
const assert = require('node:assert/strict');
const { Reactor_CSTR } = require('../../src/specificClass');
const { makeReactorConfig } = require('../helpers/factories');
const NUM_SPECIES = 13;
test('Reactor_CSTR tick clips negative concentrations to zero', () => {
const reactor = new Reactor_CSTR(
makeReactorConfig({
reactor_type: 'CSTR',
volume: 1,
n_inlets: 1,
kla: NaN,
S_O_init: 0.1,
S_I_init: 0.1,
S_S_init: 0.1,
S_NH_init: 0.1,
S_N2_init: 0.1,
S_NO_init: 0.1,
S_HCO_init: 0.1,
X_I_init: 0.1,
X_S_init: 0.1,
X_H_init: 0.1,
X_STO_init: 0.1,
X_A_init: 0.1,
X_TS_init: 0.1,
}),
);
reactor.asm = {
compute_dC: () => Array(NUM_SPECIES).fill(0),
};
reactor.Fs[0] = 1;
reactor.Cs_in[0] = Array(NUM_SPECIES).fill(0);
reactor.tick(1);
assert.equal(reactor.state.every((v) => Number.isFinite(v) && v >= 0), true);
assert.equal(reactor.state.every((v) => v === 0), true);
});