name:
src/test/js/execution/ExecutorGreaterThanComparisonTest.ts
-rw-r--r--
8379
1import { RefException } from "../../../main/js/errors/RefException";
2import { runner, it, describe } from "../testutils/TestUtils";
3
4describe("Executor.execute - Greater Than Comparision", function () {
5 it("should work with numbers", function () {
6 runner().addCell("Alpha", "A1", "= 1 > 1").addExpectedValue("Alpha", "A1", false).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", false)
14 .run();
15 });
16
17 it("should work with strings", function () {
18 runner().addCell("Alpha", "A1", '= "Yes" > "Yes"').addExpectedValue("Alpha", "A1", false).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", false).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", false).run();
27 runner().addCell("Alpha", "A1", "= FALSE > FALSE").addExpectedValue("Alpha", "A1", false).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", false)
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", false)
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().addCell("Alpha", "A1", '= 1000 > "-100"').addExpectedValue("Alpha", "A1", false).run();
67 runner()
68 .addCell("Alpha", "A1", '= 1000 > "Anything in the world."')
69 .addExpectedValue("Alpha", "A1", false)
70 .run();
71 });
72
73 it("should with number to array literal comparison", function () {
74 runner()
75 .addCell("Alpha", "A1", "= -1 > {0, 1, 2}")
76 .addExpectedValue("Alpha", "A1", false)
77 .run();
78 runner().addCell("Alpha", "A1", "= 0 > {0, 1, 2}").addExpectedValue("Alpha", "A1", false).run();
79 runner().addCell("Alpha", "A1", "= 1 > {0, 1, 2}").addExpectedValue("Alpha", "A1", true).run();
80 runner().addCell("Alpha", "A1", "= 0 > {1, 1, 2}").addExpectedValue("Alpha", "A1", false).run();
81 runner()
82 .addCell("Alpha", "A1", '= 0 > {1, "Ignore me."}')
83 .addExpectedValue("Alpha", "A1", false)
84 .run();
85 });
86
87 it("should work with number to blank comparison", function () {
88 runner().addCell("Alpha", "A1", "= 0 > M9").addExpectedValue("Alpha", "A1", false).run();
89 runner().addCell("Alpha", "A1", "= 1 > M9").addExpectedValue("Alpha", "A1", true).run();
90 runner().addCell("Alpha", "A1", "= M9 > 0").addExpectedValue("Alpha", "A1", false).run();
91 runner().addCell("Alpha", "A1", "= M9 > 1").addExpectedValue("Alpha", "A1", false).run();
92 runner().addCell("Alpha", "A1", "= -1 > M9").addExpectedValue("Alpha", "A1", false).run();
93 runner().addCell("Alpha", "A1", "= M9 > -1").addExpectedValue("Alpha", "A1", true).run();
94 });
95
96 it("should work with string to boolean comparision", function () {
97 runner().addCell("Alpha", "A1", '= "TRUE" > TRUE').addExpectedValue("Alpha", "A1", false).run();
98 runner()
99 .addCell("Alpha", "A1", '= "FALSE" > FALSE')
100 .addExpectedValue("Alpha", "A1", false)
101 .run();
102 runner().addCell("Alpha", "A1", '= "TRUE" > TRUE').addExpectedValue("Alpha", "A1", false).run();
103 runner().addCell("Alpha", "A1", '= "" > TRUE').addExpectedValue("Alpha", "A1", false).run();
104 runner().addCell("Alpha", "A1", '= "" > FALSE').addExpectedValue("Alpha", "A1", false).run();
105 });
106
107 it("should work with string to blank comparison", function () {
108 runner().addCell("Alpha", "A1", '= "" > M10').addExpectedValue("Alpha", "A1", false).run();
109 runner().addCell("Alpha", "A1", '= M10 > ""').addExpectedValue("Alpha", "A1", false).run();
110 runner().addCell("Alpha", "A1", '= " " > M10').addExpectedValue("Alpha", "A1", true).run();
111 runner().addCell("Alpha", "A1", '= M10 > " "').addExpectedValue("Alpha", "A1", false).run();
112 runner().addCell("Alpha", "A1", '= "One" > M10').addExpectedValue("Alpha", "A1", true).run();
113 runner().addCell("Alpha", "A1", '= M10 > "One"').addExpectedValue("Alpha", "A1", false).run();
114 });
115
116 it("should work with boolean to blank comparison", function () {
117 runner().addCell("Alpha", "A1", "= TRUE > M10").addExpectedValue("Alpha", "A1", true).run();
118 runner().addCell("Alpha", "A1", "= FALSE > M10").addExpectedValue("Alpha", "A1", false).run();
119 runner().addCell("Alpha", "A1", "= M10 > TRUE").addExpectedValue("Alpha", "A1", false).run();
120 runner().addCell("Alpha", "A1", "= M10 > FALSE").addExpectedValue("Alpha", "A1", false).run();
121 });
122
123 it("should work with array literal to string comparison", function () {
124 runner()
125 .addCell("Alpha", "A1", '= {"A", "B"} > "A"')
126 .addExpectedValue("Alpha", "A1", false)
127 .run();
128 runner()
129 .addCell("Alpha", "A1", '= {"A", "B"} > "B"')
130 .addExpectedValue("Alpha", "A1", false)
131 .run();
132 runner()
133 .addCell("Alpha", "A1", '= "A" > {"A", "B"}')
134 .addExpectedValue("Alpha", "A1", false)
135 .run();
136 runner()
137 .addCell("Alpha", "A1", '= "B" > {"A", "B"}')
138 .addExpectedValue("Alpha", "A1", true)
139 .run();
140 });
141
142 it("should work with array literal to boolean comparison", function () {
143 runner()
144 .addCell("Alpha", "A1", "= {TRUE, FALSE} > TRUE")
145 .addExpectedValue("Alpha", "A1", false)
146 .run();
147 runner()
148 .addCell("Alpha", "A1", "= TRUE > {TRUE, FALSE}")
149 .addExpectedValue("Alpha", "A1", false)
150 .run();
151 runner()
152 .addCell("Alpha", "A1", "= {FALSE, FALSE} > TRUE")
153 .addExpectedValue("Alpha", "A1", false)
154 .run();
155 runner()
156 .addCell("Alpha", "A1", "= TRUE > {FALSE, FALSE}")
157 .addExpectedValue("Alpha", "A1", true)
158 .run();
159 });
160
161 it("should return errors when encountering them", function () {
162 runner()
163 .addCell("Alpha", "A1", "= 10 > #REF!")
164 .addExpectedValue("Alpha", "A1", new RefException())
165 .run();
166 runner()
167 .addCell("Alpha", "A1", "= #REF! > TRUE")
168 .addExpectedValue("Alpha", "A1", new RefException())
169 .run();
170 });
171});