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/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});