mirror of
https://github.com/BorysLevytskyi/BitwiseCmd.git
synced 2026-01-17 17:32:52 +01:00
* Move BitwiseCmd to typescript * Add serve-build http command * Add Env type * Add CNAME and sitemap.xml files * Add files via upload
35 lines
1.3 KiB
TypeScript
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);
|
|
});
|
|
}) |