f7
f7 is a spreadsheet formula execution library
git clone https://git.vogt.world/f7.git
Log | Files | README.md | LICENSE.md
← All files
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});