From 7b3f79f487cd42dc752e2ca4dc6334f22652c32a Mon Sep 17 00:00:00 2001 From: hemantch01 Date: Tue, 24 Feb 2026 09:27:08 +0000 Subject: [PATCH] added volume arrays --- package-lock.json | 9 +++++---- src/gluon.ts | 38 ++++++++++++++++++++++++++++++++++++++ src/test.ts | 30 ++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6166d24..03f4cc4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -607,10 +607,11 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", diff --git a/src/gluon.ts b/src/gluon.ts index e1d8aa4..5997585 100644 --- a/src/gluon.ts +++ b/src/gluon.ts @@ -575,4 +575,42 @@ export class Gluon { return 100 * (Number(protonValue) + Number(neutronValue)) / Number(neutronValue) } + + /** + * Get the array of volumes for Protons to Neutrons transmutation + * @param gluonBox - input gluon box + * @returns {Promise} array of volumes + */ + async getVolumeProtonsToNeutronsArray(gluonBox: GluonBox): Promise { + return await gluonBox.getVolumeProtonsToNeutronsArray() + } + + /** + * Get the array of volumes for Neutrons to Protons transmutation + * @param gluonBox - input gluon box + * @returns {Promise} array of volumes + */ + async getVolumeNeutronsToProtonsArray(gluonBox: GluonBox): Promise { + return await gluonBox.getVolumeNeutronsToProtonsArray() + } + + /** + * Get the accumulated volume for Protons to Neutrons transmutation + * @param gluonBox - input gluon box + * @param days - number of days to accumulate (1-BUCKET_LEN) + * @returns {Promise} accumulated volume + */ + async accumulateVolumeProtonsToNeutrons(gluonBox: GluonBox, days?: number): Promise { + return days !== undefined ? await gluonBox.accumulateVolumeProtonsToNeutrons(days) : await gluonBox.accumulateVolumeProtonsToNeutrons() + } + + /** + * Get the accumulated volume for Neutrons to Protons transmutation + * @param gluonBox - input gluon box + * @param days - number of days to accumulate (1-BUCKET_LEN) + * @returns {Promise} accumulated volume + */ + async accumulateVolumeNeutronsToProtons(gluonBox: GluonBox, days?: number): Promise { + return days !== undefined ? await gluonBox.accumulateVolumeNeutronsToProtons(days) : await gluonBox.accumulateVolumeNeutronsToProtons() + } } diff --git a/src/test.ts b/src/test.ts index dc4979d..364b467 100644 --- a/src/test.ts +++ b/src/test.ts @@ -100,4 +100,34 @@ testFusionRatio().then((ratio) => { console.log('Fusion Ratio:\n') console.log(Number(ratio)) console.log('\n') +}) + +async function testVolumes() { + const gluon = new Gluon() + const gluonBox = await gluon.getGluonBox() + + const pToNArray = await gluon.getVolumeProtonsToNeutronsArray(gluonBox) + const nToPArray = await gluon.getVolumeNeutronsToProtonsArray(gluonBox) + + const accPToN = await gluon.accumulateVolumeProtonsToNeutrons(gluonBox) + const accNToP = await gluon.accumulateVolumeNeutronsToProtons(gluonBox) + const partialAccPToN = await gluon.accumulateVolumeProtonsToNeutrons(gluonBox, 5) + + return { + pToNArray, + nToPArray, + accPToN, + accNToP, + partialAccPToN + } +} + +testVolumes().then((vols) => { + console.log('Volumes:\n') + console.log('Protons to Neutrons Array:', vols.pToNArray) + console.log('Neutrons to Protons Array:', vols.nToPArray) + console.log('Accumulated Protons to Neutrons:', vols.accPToN) + console.log('Accumulated Neutrons to Protons:', vols.accNToP) + console.log('Partial Accumulated (5 days) Protons to Neutrons:', vols.partialAccPToN) + console.log('\n') }) \ No newline at end of file