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}