name:
src/test/java/io/protobase/f7/formulas/math/ATANHTest.java
-rw-r--r--
2188
1package io.protobase.f7.formulas.math;
2
3import io.protobase.f7.errors.NAException;
4import io.protobase.f7.errors.NumException;
5import io.protobase.f7.errors.ValueException;
6import io.protobase.f7.models.Grid;
7import io.protobase.f7.testutils.TestFormula;
8import org.junit.Test;
9
10import static com.google.common.truth.Truth.assertThat;
11import static org.mockito.Mockito.verify;
12import static org.mockito.Mockito.verifyNoMoreInteractions;
13import static org.mockito.Mockito.when;
14
15public class ATANHTest extends TestFormula {
16 @Test
17 public void testApply() {
18 assertThat(ATANH.SELF.apply(null, 0.99)).isEqualTo(2.646652412362246);
19 assertThat(ATANH.SELF.apply(null, 0.489733)).isEqualTo(0.5357090350574656);
20 assertThat(ATANH.SELF.apply(null, 0.0)).isEqualTo(0.0);
21 assertThat(ATANH.SELF.apply(null, -0.66152156111)).isEqualTo(-0.7955143351612654);
22 assertThat(ATANH.SELF.apply(null, -0.88)).isEqualTo(-1.3757676565209744);
23 }
24
25 @Test
26 public void testApply_numException() {
27 assertThat(ATANH.SELF.apply(null, 1.0)).isEqualTo(new NumException());
28 assertThat(ATANH.SELF.apply(null, 44.4)).isEqualTo(new NumException());
29 assertThat(ATANH.SELF.apply(null, -1.0)).isEqualTo(new NumException());
30 }
31
32 @Test
33 public void testApply_stringConversion() {
34 assertThat(ATANH.SELF.apply(null, "0.99")).isEqualTo(2.646652412362246);
35 }
36
37 @Test
38 public void testApply_grid() {
39 assertThat(ATANH.SELF.apply(null,
40 Grid.builder().add(0, 0, 0.489733).add(0, 1, "Don't mind me.").build()
41 )).isEqualTo(0.5357090350574656);
42 }
43
44 @Test
45 public void test_lookup() {
46 ATANH F = new ATANH(lookup, collateralLookup);
47 when(collateralLookup.apply(A1, M22_RANGE)).thenReturn(0.99);
48 assertThat(F.apply(A1, M22_RANGE)).isEqualTo(2.646652412362246);
49 verify(collateralLookup).apply(A1, M22_RANGE);
50 verifyNoMoreInteractions(collateralLookup);
51 }
52
53 @Test
54 public void testApply_errorsPassThrough() {
55 assertThat(ATANH.SELF.apply(null, new ValueException())).isEqualTo(new ValueException());
56 }
57
58 @Test
59 public void testApply_argumentsMismatch() {
60 assertThat(ATANH.SELF.apply(null, "A", "Too many")).isEqualTo(new NAException());
61 }
62}