Versie 0.2.0
This commit is contained in:
commit
e77d8fd373
495 files changed
+81026
No files matched your search
@@ -0,0 +1,47 @@
|
||||
// Generated, do not edit. sha256:515b7630b75a6d1f882ae0d4ae11739fa997ad5145e50b0f07c78592fad5f7e2
|
||||
import { describe, it } from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
|
||||
import { carriedPerAsset, carriedDays } from '../../client/wealth/carried.js';
|
||||
|
||||
const dagen = (van, n) => Array.from({ length: n }, (_, i) =>
|
||||
new Date(Date.parse(`${van}T00:00:00Z`) + i * 86_400_000).toISOString().slice(0, 10));
|
||||
const rijen = (...ds) => ds.map(d => ({ observedAt: `${d}T00:00:00Z`, fiatPrice: 100 }));
|
||||
const BTC = { id: 1, kind: 'crypto' };
|
||||
const XAU = { id: 2, kind: 'metal' };
|
||||
|
||||
describe('carriedPerAsset', () => {
|
||||
it('markeert bij crypto elke dag zonder koers, en niet de dagen ervoor', () => {
|
||||
const d = dagen('2026-03-01', 6);
|
||||
const v = carriedPerAsset({ dagen: d, assets: [BTC], rijenPerAsset: new Map([[1, rijen('2026-03-02', '2026-03-05')]]) });
|
||||
assert.deepEqual(v.get(1), [false, false, true, true, false, false]);
|
||||
});
|
||||
|
||||
it('markeert bij metaal een weekend niet, en een week zonder koers wel', () => {
|
||||
const d = dagen('2026-03-06', 11);
|
||||
const weekend = carriedPerAsset({ dagen: d, assets: [XAU],
|
||||
rijenPerAsset: new Map([[2, rijen('2026-03-06', '2026-03-09', '2026-03-10', '2026-03-11', '2026-03-12', '2026-03-13', '2026-03-14', '2026-03-15', '2026-03-16')]]) });
|
||||
assert.ok(weekend.get(2).every(x => !x), 'twee dagen dicht is geen gat');
|
||||
const week = carriedPerAsset({ dagen: d, assets: [XAU], rijenPerAsset: new Map([[2, rijen('2026-03-06', '2026-03-16')]]) });
|
||||
assert.deepEqual(week.get(2), [false, true, true, true, true, true, true, true, true, true, false]);
|
||||
});
|
||||
|
||||
it('telt de laatste dag als geprijsd, laat fiat weg en negeert een koers van nul', () => {
|
||||
const d = dagen('2026-03-01', 3);
|
||||
const v = carriedPerAsset({ dagen: d, assets: [BTC, { id: 3, kind: 'fiat' }],
|
||||
rijenPerAsset: new Map([[1, [...rijen('2026-03-01'), { observedAt: '2026-03-02T00:00:00Z', fiatPrice: 0 }]]]) });
|
||||
assert.deepEqual(v.get(1), [false, true, false]);
|
||||
assert.equal(v.has(3), false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('carriedDays', () => {
|
||||
it('neemt alleen dagen waarop je het asset had, over de gekozen assets', () => {
|
||||
const d = dagen('2026-03-01', 5);
|
||||
const reeks = { dagen: d,
|
||||
rijenPerAsset: new Map([[1, rijen('2026-03-01')], [2, rijen('2026-03-01', '2026-03-02', '2026-03-03', '2026-03-04')]]),
|
||||
eenhedenPerAsset: new Map([[1, [1, 1, 0, 0, 0]], [2, [1, 1, 1, 1, 1]]]) };
|
||||
assert.deepEqual([...carriedDays(reeks, null, [BTC, XAU])], [1]);
|
||||
assert.deepEqual([...carriedDays(reeks, [2], [BTC, XAU])], []);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user