Files
rubic-cube/node_modules/@gkucmierz/utils/spec/herons-formula.spec.mjs

42 lines
1.6 KiB
JavaScript

import {
heronsFormula,
heronsFormulaBI,
} from '../src/herons-formula.mjs';
describe('herons-formula', () => {
it('Integer', () => {
expect(heronsFormula(5, 12, 13)).toEqual(30);
expect(heronsFormula(6, 8, 10)).toEqual(24);
expect(heronsFormula(7, 15, 20)).toEqual(42);
expect(heronsFormula(17, 17, 30)).toEqual(120);
expect(heronsFormula(13, 37, 30)).toEqual(180);
expect(heronsFormula(6, 25, 29)).toEqual(60);
expect(heronsFormula(73, 9, 80)).toEqual(216);
expect(heronsFormula(12, 35, 37)).toEqual(210);
expect(heronsFormula(120, 109, 13)).toEqual(396);
expect(heronsFormula(9, 10, 17)).toEqual(36);
});
it('Float', () => {
expect(heronsFormula(2, 3, 4)).toEqual(2.9047375096555625);
expect(heronsFormula(7, 10, 12)).toEqual(34.977671449083054);
expect(heronsFormula(6, 11, 12)).toEqual(32.839572165300815);
expect(heronsFormula(25, 25, 45)).toEqual(245.1880655741629);
expect(heronsFormula(10, 11, 18)).toEqual(48.59976851796724);
});
it('BigInt', () => {
expect(heronsFormulaBI(5n, 12n, 13n)).toEqual(30n);
expect(heronsFormulaBI(6n, 8n, 10n)).toEqual(24n);
expect(heronsFormulaBI(7n, 15n, 20n)).toEqual(42n);
expect(heronsFormulaBI(17n, 17n, 30n)).toEqual(120n);
expect(heronsFormulaBI(13n, 37n, 30n)).toEqual(180n);
expect(heronsFormulaBI(6n, 25n, 29n)).toEqual(60n);
expect(heronsFormulaBI(73n, 9n, 80n)).toEqual(216n);
expect(heronsFormulaBI(12n, 35n, 37n)).toEqual(210n);
expect(heronsFormulaBI(120n, 109n, 13n)).toEqual(396n);
expect(heronsFormulaBI(9n, 10n, 17n)).toEqual(36n);
});
});