name:
src/test/js/execution/ExecutorLessThanOrEqualToComparisonTest.ts
-rw-r--r--
8676
1import { RefException } from "../../../main/js/errors/RefException";
2import { runner, it, describe } from "../testutils/TestUtils";
3
4describe("Executor.execute - Less Than Or Equal To Comparision", function () {
5 it("should work with numbers", function () {
6 runner().addCell("Alpha", "A1", "= 1 <= 1").addExpectedValue("Alpha", "A1", true).run();
7 runner().addCell("Alpha", "A1", "= 1 <= 2").addExpectedValue("Alpha", "A1", true).run();
8 runner().addCell("Alpha", "A1", "= -10 <= 0").addExpectedValue("Alpha", "A1", true).run();
9 runner().addCell("Alpha", "A1", "= 2 <= 1").addExpectedValue("Alpha", "A1", false).run();
10 runner().addCell("Alpha", "A1", "= 0 <= -10").addExpectedValue("Alpha", "A1", false).run();
11 runner()
12 .addCell("Alpha", "A1", "= 1.1928731 <= 1.1928731")
13 .addExpectedValue("Alpha", "A1", true)
14 .run();
15 });
16
17 it("should work with strings", function () {
18 runner().addCell("Alpha", "A1", '= "Yes" <= "Yes"').addExpectedValue("Alpha", "A1", true).run();
19 runner().addCell("Alpha", "A1", '= "Yes" <= "No"').addExpectedValue("Alpha", "A1", false).run();
20 runner().addCell("Alpha", "A1", '= "No"<= "Yes"').addExpectedValue("Alpha", "A1", true).run();
21 runner().addCell("Alpha", "A1", '= "" <= ""').addExpectedValue("Alpha", "A1", true).run();
22 runner().addCell("Alpha", "A1", '= " " <= ""').addExpectedValue("Alpha", "A1", false).run();
23 runner().addCell("Alpha", "A1", '= "" <= " "').addExpectedValue("Alpha", "A1", true).run();
24 });
25
26 it("should work with booleans", function () {
27 runner().addCell("Alpha", "A1", "= TRUE <= TRUE").addExpectedValue("Alpha", "A1", true).run();
28 runner().addCell("Alpha", "A1", "= FALSE <= FALSE").addExpectedValue("Alpha", "A1", true).run();
29 runner().addCell("Alpha", "A1", "= TRUE <= FALSE").addExpectedValue("Alpha", "A1", false).run();
30 runner().addCell("Alpha", "A1", "= FALSE <= TRUE").addExpectedValue("Alpha", "A1", true).run();
31 });
32
33 it("should work with array literals", function () {
34 runner()
35 .addCell("Alpha", "A1", "= {1, 2, 3} <= {1, 2, 3}")
36 .addExpectedValue("Alpha", "A1", true)
37 .run();
38 runner()
39 .addCell("Alpha", "A1", "= {1, 2, 3} <= {44}")
40 .addExpectedValue("Alpha", "A1", true)
41 .run();
42 runner()
43 .addCell("Alpha", "A1", "= {44, 2, 3} <= {1}")
44 .addExpectedValue("Alpha", "A1", false)
45 .run();
46 runner()
47 .addCell("Alpha", "A1", "= {44, #REF!} <= {44, #REF!}")
48 .addExpectedValue("Alpha", "A1", true)
49 .run();
50 });
51
52 it("should work with number to boolean comparison", function () {
53 runner().addCell("Alpha", "A1", "= 0 <= TRUE").addExpectedValue("Alpha", "A1", true).run();
54 runner().addCell("Alpha", "A1", "= 1 <= TRUE").addExpectedValue("Alpha", "A1", true).run(); // Important.
55 runner().addCell("Alpha", "A1", "= 1 <= FALSE").addExpectedValue("Alpha", "A1", true).run();
56 runner().addCell("Alpha", "A1", "= 0 <= FALSE").addExpectedValue("Alpha", "A1", true).run();
57 runner().addCell("Alpha", "A1", "= -1 <= TRUE").addExpectedValue("Alpha", "A1", true).run();
58 runner().addCell("Alpha", "A1", "= -1 <= FALSE").addExpectedValue("Alpha", "A1", true).run();
59 });
60
61 it("should work with number to string comparison", function () {
62 runner().addCell("Alpha", "A1", '= 0 <= ""').addExpectedValue("Alpha", "A1", true).run();
63 runner().addCell("Alpha", "A1", '= 0 <= "0"').addExpectedValue("Alpha", "A1", true).run();
64 runner().addCell("Alpha", "A1", '= 1 <= "0"').addExpectedValue("Alpha", "A1", true).run();
65 runner().addCell("Alpha", "A1", '= 1 <= "1"').addExpectedValue("Alpha", "A1", true).run();
66 runner().addCell("Alpha", "A1", '= -1 <= "1"').addExpectedValue("Alpha", "A1", true).run();
67 runner().addCell("Alpha", "A1", '= 1000 <= "-100"').addExpectedValue("Alpha", "A1", true).run();
68 runner()
69 .addCell("Alpha", "A1", '= 1000 <= "Anything in the world."')
70 .addExpectedValue("Alpha", "A1", true)
71 .run();
72 });
73
74 it("should with number to array literal comparison", function () {
75 runner()
76 .addCell("Alpha", "A1", "= -1 <= {0, 1, 2}")
77 .addExpectedValue("Alpha", "A1", true)
78 .run();
79 runner().addCell("Alpha", "A1", "= 0 <= {0, 1, 2}").addExpectedValue("Alpha", "A1", true).run();
80 runner()
81 .addCell("Alpha", "A1", "= 1 <= {0, 1, 2}")
82 .addExpectedValue("Alpha", "A1", false)
83 .run();
84 runner().addCell("Alpha", "A1", "= 0 <= {1, 1, 2}").addExpectedValue("Alpha", "A1", true).run();
85 runner()
86 .addCell("Alpha", "A1", '= 0 <= {1, "Ignore me."}')
87 .addExpectedValue("Alpha", "A1", true)
88 .run();
89 });
90
91 it("should work with number to blank comparison", function () {
92 runner().addCell("Alpha", "A1", "= 0 <= M9").addExpectedValue("Alpha", "A1", true).run();
93 runner().addCell("Alpha", "A1", "= 1 <= M9").addExpectedValue("Alpha", "A1", false).run();
94 runner().addCell("Alpha", "A1", "= M9 <= 0").addExpectedValue("Alpha", "A1", true).run();
95 runner().addCell("Alpha", "A1", "= M9 <= 1").addExpectedValue("Alpha", "A1", true).run();
96 runner().addCell("Alpha", "A1", "= -1 <= M9").addExpectedValue("Alpha", "A1", true).run();
97 runner().addCell("Alpha", "A1", "= M9 <= -1").addExpectedValue("Alpha", "A1", false).run();
98 });
99
100 it("should work with string to boolean comparision", function () {
101 runner().addCell("Alpha", "A1", '= "TRUE" <= TRUE').addExpectedValue("Alpha", "A1", true).run();
102 runner()
103 .addCell("Alpha", "A1", '= "FALSE" <= FALSE')
104 .addExpectedValue("Alpha", "A1", true)
105 .run();
106 runner().addCell("Alpha", "A1", '= "TRUE" <= TRUE').addExpectedValue("Alpha", "A1", true).run();
107 runner().addCell("Alpha", "A1", '= "" <= TRUE').addExpectedValue("Alpha", "A1", true).run();
108 runner().addCell("Alpha", "A1", '= "" <= FALSE').addExpectedValue("Alpha", "A1", true).run();
109 runner()
110 .addCell("Alpha", "A1", '= "Anything" <= FALSE')
111 .addExpectedValue("Alpha", "A1", true)
112 .run();
113 });
114
115 it("should work with string to blank comparison", function () {
116 runner().addCell("Alpha", "A1", '= "" <= M10').addExpectedValue("Alpha", "A1", true).run();
117 runner().addCell("Alpha", "A1", '= M10 <= ""').addExpectedValue("Alpha", "A1", true).run();
118 runner().addCell("Alpha", "A1", '= " " <= M10').addExpectedValue("Alpha", "A1", false).run();
119 runner().addCell("Alpha", "A1", '= M10 <= " "').addExpectedValue("Alpha", "A1", true).run();
120 runner().addCell("Alpha", "A1", '= "One" <= M10').addExpectedValue("Alpha", "A1", false).run();
121 runner().addCell("Alpha", "A1", '= M10 <= "One"').addExpectedValue("Alpha", "A1", true).run();
122 });
123
124 it("should work with boolean to blank comparison", function () {
125 runner().addCell("Alpha", "A1", "= TRUE <= M10").addExpectedValue("Alpha", "A1", false).run();
126 runner().addCell("Alpha", "A1", "= FALSE <= M10").addExpectedValue("Alpha", "A1", true).run();
127 runner().addCell("Alpha", "A1", "= M10 <= TRUE").addExpectedValue("Alpha", "A1", true).run();
128 runner().addCell("Alpha", "A1", "= M10 <= FALSE").addExpectedValue("Alpha", "A1", true).run();
129 });
130
131 it("should work with array literal to string comparison", function () {
132 runner()
133 .addCell("Alpha", "A1", '= {"A", "B"} <= "A"')
134 .addExpectedValue("Alpha", "A1", true)
135 .run();
136 runner()
137 .addCell("Alpha", "A1", '= {"A", "B"} <= "B"')
138 .addExpectedValue("Alpha", "A1", true)
139 .run();
140 runner()
141 .addCell("Alpha", "A1", '= "A" <= {"A", "B"}')
142 .addExpectedValue("Alpha", "A1", true)
143 .run();
144 runner()
145 .addCell("Alpha", "A1", '= "B" <= {"A", "B"}')
146 .addExpectedValue("Alpha", "A1", false)
147 .run();
148 });
149
150 it("should work with array literal to boolean comparison", function () {
151 runner()
152 .addCell("Alpha", "A1", "= {TRUE, FALSE} <= TRUE")
153 .addExpectedValue("Alpha", "A1", true)
154 .run();
155 runner()
156 .addCell("Alpha", "A1", "= TRUE <= {TRUE, FALSE}")
157 .addExpectedValue("Alpha", "A1", true)
158 .run();
159 runner()
160 .addCell("Alpha", "A1", "= {FALSE, FALSE} <= TRUE")
161 .addExpectedValue("Alpha", "A1", true)
162 .run();
163 runner()
164 .addCell("Alpha", "A1", "= TRUE <= {FALSE, FALSE}")
165 .addExpectedValue("Alpha", "A1", false)
166 .run();
167 });
168
169 it("should return errors when encountering them", function () {
170 runner()
171 .addCell("Alpha", "A1", "= 10 <= #REF!")
172 .addExpectedValue("Alpha", "A1", new RefException())
173 .run();
174 runner()
175 .addCell("Alpha", "A1", "= #REF! <= TRUE")
176 .addExpectedValue("Alpha", "A1", new RefException())
177 .run();
178 });
179});