32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { atBasis, fkBasis, lepMax, paBasis, computeDerived } from '$lib/engine/derived';
|
|
import { newCharacter } from '$lib/characters/default';
|
|
|
|
describe('derived', () => {
|
|
it('computes AT/PA/FK basis for default human', () => {
|
|
const c = newCharacter({ name: 'Test', id: '00000000-0000-4000-8000-000000000001' });
|
|
expect(atBasis(c)).toBe(Math.round((11 + 11 + 11) / 5));
|
|
expect(paBasis(c)).toBe(Math.round((11 + 11 + 11) / 5));
|
|
expect(fkBasis(c)).toBe(Math.round((11 + 11 + 11) / 4));
|
|
});
|
|
|
|
it('includes race LeP bonus for human', () => {
|
|
const c = newCharacter({ name: 'H', id: '00000000-0000-4000-8000-000000000002' });
|
|
c.meta.rasse = 'Mensch';
|
|
const ko = 12;
|
|
const kk = 13;
|
|
c.eigenschaften.KO = { startwert: ko, mod: 0 };
|
|
c.eigenschaften.KK = { startwert: kk, mod: 0 };
|
|
const base = Math.floor((2 * ko + kk) / 2);
|
|
expect(lepMax(c)).toBe(base + 5 + c.energien.lep.mod);
|
|
});
|
|
|
|
it('computeDerived returns all keys', () => {
|
|
const c = newCharacter({ id: '00000000-0000-4000-8000-000000000003' });
|
|
const d = computeDerived(c);
|
|
expect(d.atBasis).toBeTypeOf('number');
|
|
expect(d.fkBasis).toBeTypeOf('number');
|
|
expect(d.lepMax).toBeTypeOf('number');
|
|
});
|
|
});
|