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/formulas/logic/ORTest.java
-rw-r--r--
3536
  1package io.protobase.f7.formulas.logic;
  2
  3import io.protobase.f7.errors.DivException;
  4import io.protobase.f7.errors.NAException;
  5import io.protobase.f7.errors.NullException;
  6import io.protobase.f7.errors.ValueException;
  7import io.protobase.f7.models.Grid;
  8import io.protobase.f7.testutils.TestFormula;
  9import org.junit.Test;
 10
 11import static com.google.common.truth.Truth.assertThat;
 12import static org.mockito.Mockito.verify;
 13import static org.mockito.Mockito.verifyNoMoreInteractions;
 14import static org.mockito.Mockito.when;
 15
 16public class ORTest extends TestFormula {
 17  @Test
 18  public void test_boolean() {
 19    assertThat(OR.SELF.apply(null, true)).isEqualTo(true);
 20    assertThat(OR.SELF.apply(null, true, true)).isEqualTo(true);
 21    assertThat(OR.SELF.apply(null, true, true, true)).isEqualTo(true);
 22    assertThat(OR.SELF.apply(null, true, true, false)).isEqualTo(true);
 23    assertThat(OR.SELF.apply(null, false)).isEqualTo(false);
 24    assertThat(OR.SELF.apply(null, false, false)).isEqualTo(false);
 25    assertThat(OR.SELF.apply(null, false, false, true)).isEqualTo(true);
 26  }
 27
 28  @Test
 29  public void test_string() {
 30    assertThat(OR.SELF.apply(null, "TRUE")).isEqualTo(true);
 31    assertThat(OR.SELF.apply(null, "true")).isEqualTo(true);
 32    assertThat(OR.SELF.apply(null, "true", "false")).isEqualTo(true);
 33    assertThat(OR.SELF.apply(null, "true", "nope no sir this is not a boolean")).isEqualTo(new ValueException());
 34  }
 35
 36  @Test
 37  public void test_number() {
 38    assertThat(OR.SELF.apply(null, 1.0)).isEqualTo(true);
 39    assertThat(OR.SELF.apply(null, 1.0, 2.2)).isEqualTo(true);
 40    assertThat(OR.SELF.apply(null, 1.0, 2.2, 11.11)).isEqualTo(true);
 41    assertThat(OR.SELF.apply(null, 1.0, 2.2, 11.11, 0.0)).isEqualTo(true);
 42    assertThat(OR.SELF.apply(null, 0.0, 0.0, 0.0)).isEqualTo(false);
 43    assertThat(OR.SELF.apply(null, 0.0, 0.0, 0.0, 0.0, 0.0, 99.99)).isEqualTo(true);
 44  }
 45
 46  @Test
 47  public void test_error() {
 48    assertThat(OR.SELF.apply(null, 0.0, 0.0, new DivException())).isEqualTo(new DivException());
 49    assertThat(OR.SELF.apply(null, 0.0, 0.0, new NullException())).isEqualTo(new NullException());
 50  }
 51
 52  @Test
 53  public void test_lookup() {
 54    OR F = new OR(lookup, collateralLookup);
 55    Grid D1_D3_grid = Grid.builder()
 56        .add(0, 0, true)
 57        .add(0, 1, true)
 58        .add(0, 2, false)
 59        .build();
 60    when(lookup.apply(D1_TO_D3_RANGE)).thenReturn(D1_D3_grid);
 61    assertThat(F.apply(A1, D1_TO_D3_RANGE)).isEqualTo(true);
 62    verify(lookup).apply(D1_TO_D3_RANGE);
 63    verifyNoMoreInteractions(lookup);
 64  }
 65
 66  @Test
 67  public void test_grid() {
 68    assertThat(OR.SELF.apply(null, Grid.builder().add(0, 0, true).build())).isEqualTo(true);
 69    assertThat(OR.SELF.apply(null, Grid.builder()
 70        .add(0, 0, true)
 71        .add(0, 1, true)
 72        .add(0, 2, true)
 73        .build())
 74    ).isEqualTo(true);
 75    assertThat(OR.SELF.apply(null, Grid.builder()
 76        .add(0, 0, true)
 77        .add(0, 1, true)
 78        .add(0, 2, false)
 79        .build())
 80    ).isEqualTo(true);
 81    assertThat(OR.SELF.apply(null, Grid.builder()
 82        .add(0, 0, true)
 83        .add(0, 1, true)
 84        .add(0, 2, null)
 85        .add(0, 3, false)
 86        .build())
 87    ).isEqualTo(true);
 88    assertThat(OR.SELF.apply(null, Grid.builder()
 89        .add(0, 0, false)
 90        .add(0, 1, false)
 91        .add(0, 2, null)
 92        .add(0, 3, false)
 93        .build())
 94    ).isEqualTo(false);
 95  }
 96
 97  @Test
 98  public void test_errorFromArgumentsMismatch() {
 99    assertThat(OR.SELF.apply(null)).isEqualTo(new NAException());
100  }
101}