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