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