UNPKG

calculate-items

Version:

Items calculation template

104 lines (95 loc) 5.03 kB
import ItemsValidator from "../../utils/ItemsValidator"; describe("ItemsValidator.test ", () => { test('hi', ()=>{ expect(ItemsValidator.isValidExpToParse(`Osh [ 1, 2] - 23000`)).toEqual(true); }) test("empty values", () => { expect(ItemsValidator.isValidExpToParse("")).toEqual(false) expect(ItemsValidator.isValidExpToParse(" ")).toEqual(false) // expect(isValidTextToParse(undefined)).toEqual(false) // expect(isValidTextToParse(null)).toEqual(false) expect(ItemsValidator.isValidExpToParse(' . ')).toBe(false); expect( ItemsValidator.isValidExpToParse(` `), ).toBe(false); }) test("wrong operators", () => { expect(ItemsValidator.isValidExpToParse("1400+4555-")).toEqual(false) expect(ItemsValidator.isValidExpToParse("14*45*")).toEqual(false) expect(ItemsValidator.isValidExpToParse("*+-/")).toEqual(false) expect(ItemsValidator.isValidExpToParse('sdfa-')).toEqual(false) expect(ItemsValidator.isValidExpToParse('-')).toEqual(false) expect(ItemsValidator.isValidExpToParse('400--600')).toEqual(false) expect(ItemsValidator.isValidExpToParse('100+-3000')).toEqual(false) expect(ItemsValidator.isValidExpToParse('asdf-450+898*7*')).toEqual(false) expect(ItemsValidator.isValidExpToParse('*88855+555+8888')).toEqual(false) expect(ItemsValidator.isValidExpToParse('*88855+555+8888')).toEqual(false) expect(ItemsValidator.isValidExpToParse('8855 + 7100 [23, ')).toEqual(false) expect(ItemsValidator.isValidExpToParse("1400")).toEqual(false) expect(ItemsValidator.isValidExpToParse('234234423')).toBe(false); expect(ItemsValidator.isValidExpToParse('234234423+-342423-7888')).toBe(false); expect(ItemsValidator.isValidExpToParse('uqweruqeqe')).toBe(false); expect(ItemsValidator.isValidExpToParse('----------')).toBe(false); expect(ItemsValidator.isValidExpToParse('+-\\*=23423')).toBe(false); expect(ItemsValidator.isValidExpToParse('asdfad[1, - 234')).toBe(false); expect(ItemsValidator.isValidExpToParse('(1+3)*234[2,')).toBe(false); expect(ItemsValidator.isValidExpToParse('45000 + (1+3)*234[2,]')).toEqual(true); expect(ItemsValidator.isValidExpToParse('2+4-55\\*=23423')).toBe(false); expect(ItemsValidator.isValidExpToParse('sdfasdf - 324324 +')).toBe(false); expect(ItemsValidator.isValidExpToParse('sd(fas(d)fa - 234[1, + 23234324[]')).toBe(false); }) test("wrong items", () => { expect(ItemsValidator.isValidExpToParse('toy oshi -sadfasd')).toEqual(false) expect(ItemsValidator.isValidExpToParse('toy oshi ------')).toEqual(false) expect(ItemsValidator.isValidExpToParse('to\'y oshi - narxi yoq')).toEqual(false) expect(ItemsValidator.isValidExpToParse('to\'y oshi - []')).toEqual(false) expect(ItemsValidator.isValidExpToParse('to\'y oshi - ()')).toEqual(false) }) describe("valid expressions", () => { test("simple calculation", () => { expect(ItemsValidator.isValidExpToParse("1400+4555")).toEqual(true) expect(ItemsValidator.isValidExpToParse("14*45*78")).toEqual(true) expect(ItemsValidator.isValidExpToParse("78*986+556-5/32")).toEqual(true) }) test("with item", () => { expect(ItemsValidator.isValidExpToParse('zig\'ir osh - 4000 * 2')).toEqual(true) expect(ItemsValidator.isValidExpToParse('крыльца item - 2000 - (34+89-78) * 6000 + 7800/2')).toEqual(true) }) test("multi items list", () => { expect(ItemsValidator.isValidExpToParse('крыльца item - 4000 * 2 \n item 2 - (34+89-78) * 6000 + 7800/2')).toEqual(true) expect(ItemsValidator.isValidExpToParse(`Osh [ 1, 2] - 23000`)).toEqual(true); expect( ItemsValidator.isValidExpToParse(`Osh [1, 2] - 43 000 so'm Sho'rva[4] - 23 400 so'm Choy - 3500 so'm Non - 4000 so'm Xizmat - 12% [@user1, tyun, koang\'ip, hwoa sdfa]`), ).toBe(true); expect( ItemsValidator.isValidExpToParse(` tok - 34000 uy - 3*50000 non - 3 * 12000 tash [2,3] - 4*3550 [@user_bsdfas, Kun G'olib] `), ).toBe(true); expect(ItemsValidator.isValidExpToParse('2400+2*4500+(3-5+8*2)*100 - 900')).toBe(true); expect(ItemsValidator.isValidExpToParse('(2400+2*4500+(3-5+8*2)*100 - 900)*100/500')).toBe(true); }) }) describe("brackets", () => { test("wrong brackets", () => { expect(ItemsValidator.isValidExpToParse("140(0+4[5)55-12")).toEqual(false) expect(ItemsValidator.isValidExpToParse("140(10+45)55-123")).toEqual(false) expect(ItemsValidator.isValidExpToParse("140*[10+45-(24]+55-123")).toEqual(false) }) test("correct brackets", () => { expect(ItemsValidator.isValidExpToParse("xizmat uchun - (24+45)*55-123")).toEqual(true) expect(ItemsValidator.isValidExpToParse("140*(340+45)/55-12")).toEqual(true) expect(ItemsValidator.isValidExpToParse("2*55-5000+140/(10+45)")).toEqual(true) }) }) })