UNPKG

calculate-items

Version:

Items calculation template

63 lines (61 loc) 3.38 kB
import NumberFormatter from "../../utils/NumberFormatter"; describe("NumberFormatter.test", () => { describe("Money format utils: NumberFormatter.format()", () => { test("Falsy values", () => { expect(NumberFormatter.format(0)).toEqual("0.00"); // expect(NumberFormatter.format(null)).toEqual("0"); // expect(NumberFormatter.format(undefined)).toEqual("0"); expect(NumberFormatter.format(0.0)).toEqual("0.00"); }) test("Integer numbers", () => { expect(NumberFormatter.format(1000)).toEqual("1 000.00"); expect(NumberFormatter.format(3440325423)).toEqual("3 440 325 423.00"); }); test("Float numbers", () => { expect(NumberFormatter.format(67000.33)).toEqual("67 000.33"); expect(NumberFormatter.format(30000 / 23)).toEqual("1 304.35"); }); }); describe("MathJs fraction round utils: tiyinRound()", () => { test("Falsy values", () => { expect(NumberFormatter.round(0)).toEqual(0); // expect(NumberFormatter.round(null)).toEqual(0); // expect(NumberFormatter.round(undefined)).toEqual(0); expect(NumberFormatter.round(0.0)).toEqual(0); }) test("Integer numbers", () => { expect(NumberFormatter.round(1000)).toEqual(1000); expect(NumberFormatter.round(3440325423)).toEqual(3440325423); }); test("Float numbers", () => { expect(NumberFormatter.round(67000.33)).toEqual(67000.33); expect(NumberFormatter.round(30000 / 23)).toEqual(1304.35); }); }); describe("MathJs evaluate utils: NumberFormatter.evaluateAndRound()", () => { test("Falsy expression", () => { expect(NumberFormatter.evaluateAndRound('')).toEqual(0); expect(NumberFormatter.evaluateAndRound(' ')).toEqual(0); expect(NumberFormatter.evaluateAndRound('0')).toEqual(0); // expect(NumberFormatter.evaluateAndRound(null)).toEqual(0); // expect(NumberFormatter.evaluateAndRound(undefined)).toEqual(0); expect(NumberFormatter.evaluateAndRound('0.0')).toEqual(0); expect(NumberFormatter.evaluateAndRound('0.0000001')).toEqual(0); }) test("Integer expression", () => { expect(NumberFormatter.evaluateAndRound("1000+(-8999+222-8222)-2*800+98000")).toEqual(80401); expect(NumberFormatter.evaluateAndRound("3440325423")).toEqual(3440325423); }); test("Float expression", () => { expect(NumberFormatter.evaluateAndRound("(2000+5000-2233)*25000-3*4*7000/343")).toEqual(119174755.1); expect(NumberFormatter.evaluateAndRound("67000.33 + 2*8000 + 3*4*7000/343")).toEqual(83245.23); expect(NumberFormatter.evaluateAndRound("2/4")).toEqual(0.5); }); test("Failed expression", () => { expect(() => NumberFormatter.evaluateAndRound("Invalid expression")).toThrowError(); expect(() => NumberFormatter.evaluateAndRound("sdfa+sadf-sd")).toThrowError(); expect(() => NumberFormatter.evaluateAndRound("2**4")).toThrow(SyntaxError); expect(() => NumberFormatter.evaluateAndRound(".$#")).toThrowError(); }); }); });