import assert from 'node:assert/strict'; import { getEffectiveAmount, getNetAmount } from './analyticsSemantics'; assert.equal(getNetAmount('expense', [ { amountSigned: -10_000, commission: 0 }, { amountSigned: 4_000, commission: 0 }, ]), 6_000, 'возврат уменьшает расход своей категории'); assert.equal(getNetAmount('income', [ { amountSigned: 20_000, commission: 0 }, { amountSigned: -5_000, commission: 0 }, ]), 15_000, 'корректировка уменьшает доход'); assert.equal(getNetAmount('transfer', [ { amountSigned: -10_000, commission: 0 }, { amountSigned: 10_000, commission: 0 }, ]), 0, 'перевод не является доходом или расходом'); assert.equal( getEffectiveAmount({ amountSigned: 0, commission: 500, description: 'Зачисление кэшбэка' }), 500, 'кэшбэк учитывается как поступление', ); console.log('analytics semantics: OK');