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