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