UNPKG

1.5 kBJavaScriptView Raw
1var Calc = require("../ker/com/x-layout/x-layout.com").Calc;
2
3describe("<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});