1 | var Calc = require("../ker/com/x-layout/x-layout.com").Calc;
|
2 |
|
3 | describe("<x-layout>", function() {
|
4 | describe("Calc", function() {
|
5 | it("should deal with simple numbers.", function() {
|
6 | function str(number, unit) {
|
7 | var c = new Calc(number, unit);
|
8 | return c.toString();
|
9 | }
|
10 | expect(str(3.14)).toBe('3.14');
|
11 | expect(str(-8, 'px')).toBe('-8px');
|
12 | });
|
13 | it("should deal with simple additions.", function() {
|
14 | function checkAdd(n1, u1, n2, u2, expected) {
|
15 | var c = new Calc(n1, u1);
|
16 | c.add(n2, u2);
|
17 | expect(c.toString()).toBe(expected);
|
18 | }
|
19 | checkAdd(50, '', 30, '', '80');
|
20 | checkAdd(50, '%', 30, '%', '80%');
|
21 | checkAdd(50, 'px', 30, '%', '50px + 30%');
|
22 | });
|
23 | it("should deal with successive additions.", function() {
|
24 | function checkAdd3(n1, u1, n2, u2, n3, u3, expected) {
|
25 | var c = new Calc(n1, u1);
|
26 | c.add(n2, u2).add(n3, u3);
|
27 | expect(c.toString()).toBe(expected);
|
28 | }
|
29 | checkAdd3(50, '', 30, '', 20, '', '100');
|
30 | checkAdd3(50, '%', 30, '%', 10, 'vh', '80% + 10vh');
|
31 | checkAdd3(50, 'px', 30, '%', 10, 'px', '60px + 30%');
|
32 | checkAdd3(50, 'px', 30, '%', 10, '%', '50px + 40%');
|
33 | checkAdd3(50, 'px', 30, '%', 10, 'mm', '50px + 30% + 10mm');
|
34 | });
|
35 | });
|
36 | });
|