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/java/io/protobase/f7/spreadsheet/GeneralFormulaTest.java
-rw-r--r--
3212
 1package io.protobase.f7.spreadsheet;
 2
 3import io.protobase.f7.errors.NameException;
 4import io.protobase.f7.testutils.TestExecution;
 5import org.junit.Test;
 6
 7public class GeneralFormulaTest extends TestExecution {
 8  @Test
 9  public void test_WithoutArguments() {
10    runner().addCell("Alpha", "A1", "= TRUE()").addExpectedValue("Alpha", "A1", true).run();
11    runner().addCell("Alpha", "A1", "= FALSE()").addExpectedValue("Alpha", "A1", false).run();
12    runner().addCell("Alpha", "A1", "= PI()").addExpectedValue("Alpha", "A1", Math.PI).run();
13  }
14
15  @Test
16  public void test_NumberArguments() {
17    runner().addCell("Alpha", "A1", "= ABS(-1)").addExpectedValue("Alpha", "A1", 1.0).run();
18    runner().addCell("Alpha", "A1", "= ADD(3, 4)").addExpectedValue("Alpha", "A1", 7.0).run();
19    runner().addCell("Alpha", "A1", "= SUM(3, 4, 5, 6, -1)").addExpectedValue("Alpha", "A1", 17.0).run();
20  }
21
22  @Test
23  public void test_StringArguments() {
24    runner().addCell("Alpha", "A1", "= ABS(\"-1\")").addExpectedValue("Alpha", "A1", 1.0).run();
25    runner().addCell("Alpha", "A1", "= CONCAT(\"3\", \"4\")").addExpectedValue("Alpha", "A1", "34").run();
26    runner().addCell("Alpha", "A1", "= SUM(\"3\", \"4\", \"5\", \"6\")").addExpectedValue("Alpha", "A1", 18.0).run();
27  }
28
29  @Test
30  public void test_BooleanArguments() {
31    runner().addCell("Alpha", "A1", "= ABS(TRUE)").addExpectedValue("Alpha", "A1", 1.0).run();
32    runner().addCell("Alpha", "A1", "= CONCAT(TRUE, FALSE)").addExpectedValue("Alpha", "A1", "TRUEFALSE").run();
33    runner().addCell("Alpha", "A1", "= SUM(TRUE, TRUE, TRUE)").addExpectedValue("Alpha", "A1", 3.0).run();
34  }
35
36  @Test
37  public void test_ArrayLiteralArguments() {
38    runner().addCell("Alpha", "A1", "= ABS({-1, 2, 3})").addExpectedValue("Alpha", "A1", 1.0).run();
39    runner().addCell("Alpha", "A1", "= CONCAT({TRUE}, {22.1, 22})").addExpectedValue("Alpha", "A1", "TRUE22.1").run();
40    runner().addCell("Alpha", "A1", "= SUM({TRUE, {TRUE, {TRUE}}})").addExpectedValue("Alpha", "A1", 3.0).run();
41  }
42
43  @Test
44  public void test_RangeArguments() {
45    runner()
46        .addCell("Alpha", "A1", "= SUM(B1:B4)")
47        .addExpectedValue("Alpha", "A1", 0.0).run();
48    runner()
49        .addCell("Alpha", "A1", "= SUM(B1:B4)")
50        .addCell("Alpha", "B1", "= 3")
51        .addCell("Alpha", "B2", "= 4")
52        .addCell("Alpha", "B3", "= 5")
53        .addCell("Alpha", "B4", "= 6")
54        .addExpectedValue("Alpha", "A1", 18.0).run();
55  }
56
57  @Test
58  public void test_NamedRangeArguments() {
59    runner()
60        .addNamedRange("Values", "Alpha!B1:B4")
61        .addCell("Alpha", "A1", "= SUM(Values)")
62        .addCell("Alpha", "B1", "= 3")
63        .addCell("Alpha", "B2", "= 4")
64        .addCell("Alpha", "B3", "= 5")
65        .addCell("Alpha", "B4", "= 6")
66        .addExpectedValue("Alpha", "A1", 18.0).run();
67  }
68
69  @Test
70  public void test_NestedFormulas() {
71    runner()
72        .addCell("Alpha", "A1", "= SUM(3, 4, 5, CONCAT(10, 10))")
73        .addExpectedValue("Alpha", "A1", 1022.0).run();
74  }
75
76  @Test
77  public void test_FormulaNotFound() {
78    runner()
79        .addCell("Alpha", "A1", "= NOTFOUND(10, 20)")
80        .addExpectedValue("Alpha", "A1", new NameException()).run();
81  }
82}