const test = require('node:test'); const assert = require('node:assert/strict'); const { Reactor_CSTR, Reactor_PFR } = require('../../src/specificClass'); const { makeReactorConfig } = require('../helpers/factories'); test('CSTR getEffluent returns flat concentration vector', () => { const reactor = new Reactor_CSTR(makeReactorConfig({ reactor_type: 'CSTR', n_inlets: 1 })); reactor.state = Array.from({ length: 13 }, (_, i) => i + 1); reactor.Fs[0] = 5; const effluent = reactor.getEffluent; assert.equal(effluent.topic, 'Fluent'); assert.equal(effluent.payload.inlet, 0); assert.equal(effluent.payload.F, 5); assert.deepEqual(effluent.payload.C, reactor.state); }); test('PFR getEffluent returns last slice concentration vector', () => { const reactor = new Reactor_PFR( makeReactorConfig({ reactor_type: 'PFR', n_inlets: 1, length: 10, resolution_L: 4 }), ); reactor.state = [ Array(13).fill(10), Array(13).fill(20), Array(13).fill(30), Array(13).fill(40), ]; reactor.Fs[0] = 7; const effluent = reactor.getEffluent; assert.equal(effluent.topic, 'Fluent'); assert.equal(effluent.payload.F, 7); assert.deepEqual(effluent.payload.C, Array(13).fill(40)); });