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/F7CodeExecutorGeneralConcatenationTest.java
-rw-r--r--
1932
 1package io.protobase.f7.spreadsheet;
 2
 3import io.protobase.f7.errors.DivException;
 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.verifyNoMoreInteractions;
11import static org.mockito.Mockito.when;
12
13public class F7CodeExecutorGeneralConcatenationTest extends TestF7CodeExecutor {
14  @Test
15  public void test_String() {
16    assertThat(run("= \"Hello\" & \"There\"")).isEqualTo("HelloThere");
17    assertThat(run("= \"\" & \"\"")).isEqualTo("");
18    assertThat(run("= \"   \" & \"    \"")).isEqualTo("       ");
19  }
20
21  @Test
22  public void test_Number() {
23    assertThat(run("= 0 & 1")).isEqualTo("01");
24    assertThat(run("= 0 & 0")).isEqualTo("00");
25    assertThat(run("= 131238 & 99281")).isEqualTo("13123899281");
26    assertThat(run("= 13.1238 & 99281")).isEqualTo("13.123899281");
27    assertThat(run("= 0.001 & 1.0")).isEqualTo("0.0011");
28  }
29
30  @Test
31  public void test_Boolean() {
32    assertThat(run("= TRUE & TRUE")).isEqualTo("TRUETRUE");
33    assertThat(run("= TRUE & FALSE")).isEqualTo("TRUEFALSE");
34    assertThat(run("= FALSE & FALSE")).isEqualTo("FALSEFALSE");
35  }
36
37  @Test
38  public void test_Error() {
39    assertThat(run("= 1 & #DIV/0!")).isEqualTo(new DivException());
40  }
41
42  @Test
43  public void test_ArrayLiteral() {
44    assertThat(run("= {1} & {2}")).isEqualTo("12");
45    assertThat(run("= {1, 2, 3} & {4, 5, 6}")).isEqualTo("14");
46    assertThat(run("= {1, #NUM!} & {4, #REF!}")).isEqualTo("14");
47  }
48
49  @Test
50  public void test_Blank() {
51    when(collateralLookup.apply(A1, M44_RANGE)).thenReturn(null);
52    assertThat(runWithLookup("= M44 & M44")).isEqualTo("");
53    verify(collateralLookup, VerificationModeFactory.times(2)).apply(A1, M44_RANGE);
54    verifyNoMoreInteractions(lookup);
55  }
56}