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/F7CodeExecutorGeneralFormulaTest.java
-rw-r--r--
2358
 1package io.protobase.f7.spreadsheet;
 2
 3import io.protobase.f7.models.Grid;
 4import io.protobase.f7.testutils.TestF7CodeExecutor;
 5import org.junit.Test;
 6import org.mockito.internal.verification.VerificationModeFactory;
 7
 8import static com.google.common.truth.Truth.assertThat;
 9import static org.mockito.Mockito.verify;
10import static org.mockito.Mockito.when;
11
12public class F7CodeExecutorGeneralFormulaTest extends TestF7CodeExecutor {
13  @Test
14  public void test_WithoutArguments() {
15    assertThat(run("= TRUE()")).isEqualTo(true);
16    assertThat(run("= FALSE()")).isEqualTo(false);
17    assertThat(run("= PI()")).isEqualTo(Math.PI);
18  }
19
20  @Test
21  public void test_NumberArguments() {
22    assertThat(run("= ABS(-1)")).isEqualTo(1.0);
23    assertThat(run("= ADD(3, 4)")).isEqualTo(7.0);
24    assertThat(run("= SUM(3, 4, 5, 6, -1)")).isEqualTo(17.0);
25  }
26
27  @Test
28  public void test_StringArguments() {
29    assertThat(run("= ABS(\"-1\")")).isEqualTo(1.0);
30    assertThat(run("= CONCAT(\"3\", \"4\")")).isEqualTo("34");
31    assertThat(run("= SUM(\"3\", \"4\", \"5\", \"6\")")).isEqualTo(18.0);
32  }
33
34  @Test
35  public void test_BooleanArguments() {
36    assertThat(run("= ABS(TRUE)")).isEqualTo(1.0);
37    assertThat(run("= CONCAT(TRUE, FALSE)")).isEqualTo("TRUEFALSE");
38    assertThat(run("= SUM(TRUE, TRUE, TRUE)")).isEqualTo(3.0);
39  }
40
41  @Test
42  public void test_ArrayLiteralArguments() {
43    assertThat(run("= ABS({-1, 2, 3})")).isEqualTo(1.0);
44    assertThat(run("= CONCAT({TRUE}, {22.1, 22})")).isEqualTo("TRUE22.1");
45    assertThat(run("= SUM({TRUE, {TRUE, {TRUE}}})")).isEqualTo(3.0);
46  }
47
48  @Test
49  public void test_RangeArguments_ReturnsBlankValues() {
50    when(lookup.apply(B1_B4_RANGE)).thenReturn(Grid.builder()
51        .add(0, 0, null)
52        .add(0, 1, null)
53        .add(0, 2, null)
54        .add(0, 3, null)
55        .build());
56    assertThat(runWithLookup("= SUM(B1:B4)")).isEqualTo(0.0);
57    verify(lookup, VerificationModeFactory.times(1)).apply(B1_B4_RANGE);
58  }
59
60  @Test
61  public void test_RangeArguments_ReturnsNonBlankValues() {
62    when(lookup.apply(B1_B4_RANGE)).thenReturn(Grid.builder()
63        .add(0, 0, 3.0)
64        .add(0, 1, 4.0)
65        .add(0, 2, 5.0)
66        .add(0, 3, 6.0)
67        .build());
68    assertThat(runWithLookup("= SUM(B1:B4)")).isEqualTo(18.0);
69    verify(lookup, VerificationModeFactory.times(1)).apply(B1_B4_RANGE);
70  }
71}