Files
BitwiseCmd/src/expression/expression.test.ts
Borys Levytskyi 271c58a980 Migrate to typescript (#14)
* Move BitwiseCmd to typescript

* Add serve-build http command

* Add Env type

* Add CNAME and sitemap.xml files

* Add files via upload
2021-01-12 16:41:03 +02:00

35 lines
1.3 KiB
TypeScript

import { parser, ListOfNumbersExpression, BitwiseOperationExpression, NumericOperand, ExpressionOperand } from "./expression";
describe("expression parser", () => {
it("pares list of number expression", () => {
var result = parser.parse("1 2 3");
expect(result).toBeInstanceOf(ListOfNumbersExpression);
});
it("pares different operations expressions", () => {
expect(parser.parse("~1")).toBeInstanceOf(BitwiseOperationExpression);
expect(parser.parse("1^2")).toBeInstanceOf(BitwiseOperationExpression);
expect(parser.parse("1|2")).toBeInstanceOf(BitwiseOperationExpression);
});
it("pares multiple operand expression", () => {
const result = parser.parse("1^2") as BitwiseOperationExpression;
expect(result.expressionItems.length).toBe(2);
const first = result.expressionItems[0];
const second = result.expressionItems[1];
expect(first).toBeInstanceOf(NumericOperand);
expect(first.value).toBe(1);
expect(second).toBeInstanceOf(ExpressionOperand);
expect(second.sign).toBe("^");
expect(second.operand.value).toBe(2);
});
it("bug", () => {
var result = parser.parse("1|~2") as BitwiseOperationExpression;
expect(result.expressionItems.length).toBe(2);
});
})