Files
BitwiseCmd/tests/domain/expressionSpec.js
2015-04-11 19:41:27 +03:00

38 lines
1.4 KiB
JavaScript

describe("expression parse", function() {
var app = window.app;
var expression = app.get('expression');
var decCases = {
"1 2 3": { numbers: [1,2,3] },
"1": { numbers: [1] },
"2>>1": { operand1: 2, operand2:1, "sign":">>", string:"2>>1" },
"123|111": { operand1: 123, operand2:111, "sign":"|", string: "123|111" },
"23^1": { operand1: 23, operand2:1, "sign":"^", string: "23^1" }
};
var hexCases = {
"1 10 f" : { numbers: [1, 16, 15] },
"f>>a": { operand1: 15, operand2:10, "sign":">>", string:"f>>a" },
"10&11": { operand1: 16, operand2:17, "sign":"&", string:"10&11" },
"10^11": { operand1: 16, operand2:17, "sign":"^", string:"10^11" }
};
it("should parse decimal expressions", function() {
var input, expr;
for(input in decCases) {
expect(expression.canParse(input)).toBe(true);
expr = expression.parse(input);
expect(JSON.stringify(expr)).toEqual(JSON.stringify(decCases[input]));
}
});
it("should parse hexadecimal expressions", function() {
var input, expr;
for(input in hexCases) {
console.log('input: ' + input)
expect(expression.canParse(input, 'hex')).toBe(true);
expr = expression.parse(input, 'hex');
expect(JSON.stringify(expr)).toEqual(JSON.stringify(hexCases[input]));
}
});
});