const { init, version, list_available_fluids, WasmSystem, WasmPressure, WasmTemperature, WasmFallbackConfig, WasmCompressor, WasmCondenser, WasmEvaporator, WasmExpansionValve } = require('../pkg/entropyk_wasm.js'); async function main() { console.log('Entropyk WASM Integration Test'); console.log('=============================='); // Initialize module await init(); console.log('WASM Version:', version()); // Verify fluids const fluids = list_available_fluids(); console.log('Available fluids:', fluids); if (!fluids.includes('R134a')) { throw new Error('R134a should be available'); } // Create system const system = new WasmSystem(); console.log('System created'); // Add components // coeffs: m1..m10 const compressor = new WasmCompressor( 0.85, 2.5, 500.0, 1500.0, -2.5, 1.8, 600.0, 1600.0, -3.0, 2.0 ).into_component(); const condenser = new WasmCondenser(5000.0).into_component(); const evaporator = new WasmEvaporator(3000.0).into_component(); const valve = new WasmExpansionValve().into_component(); const cIdx = system.add_component(compressor); const condIdx = system.add_component(condenser); const eIdx = system.add_component(evaporator); const vIdx = system.add_component(valve); console.log(`Added 4 components. Node count: ${system.node_count()}`); // Connect components system.add_edge(cIdx, condIdx); system.add_edge(condIdx, vIdx); system.add_edge(vIdx, eIdx); system.add_edge(eIdx, cIdx); console.log(`Connected components. Edge count: ${system.edge_count()}`); // Finalize system system.finalize(); console.log('System finalized'); // Solve const config = new WasmFallbackConfig(); console.log('Solving system...'); const result = system.solve(config); console.log('Solve Result:', result.toJson()); if (result.converged) { console.log('Convergence achieved in', result.iterations, 'iterations'); // Extract result for a node const state = system.get_node_result(0); console.log('Node 0 state:', state.toJson()); } else { console.error('System failed to converge'); // This is expected if the simple setup without boundary conditions is unstable, // but it verifies the API pipeline. } console.log('\nWASM Integration Test PASSED (API verification complete)'); } main().catch(err => { console.error('Test failed:', err); process.exit(1); });