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}