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