summaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/search/grouping/request/MathFunctionsTestCase.java
blob: 522e72d31b9472def3b8b5229de7177529cc610b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.search.grouping.request;

import org.junit.Test;

import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.sameInstance;
import static org.junit.Assert.assertThat;

/**
 * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
 * @since 5.1.9
 */
public class MathFunctionsTestCase {
    @Test
    public void testMathFunctions() {
        //if this fails, update the count AND add a test in each of the two blocks below
        assertThat(MathFunctions.Function.values().length, is(21));


        assertThat(MathFunctions.Function.create(0), sameInstance(MathFunctions.Function.EXP));
        assertThat(MathFunctions.Function.create(1), sameInstance(MathFunctions.Function.POW));
        assertThat(MathFunctions.Function.create(2), sameInstance(MathFunctions.Function.LOG));
        assertThat(MathFunctions.Function.create(3), sameInstance(MathFunctions.Function.LOG1P));
        assertThat(MathFunctions.Function.create(4), sameInstance(MathFunctions.Function.LOG10));
        assertThat(MathFunctions.Function.create(5), sameInstance(MathFunctions.Function.SIN));
        assertThat(MathFunctions.Function.create(6), sameInstance(MathFunctions.Function.ASIN));
        assertThat(MathFunctions.Function.create(7), sameInstance(MathFunctions.Function.COS));
        assertThat(MathFunctions.Function.create(8), sameInstance(MathFunctions.Function.ACOS));
        assertThat(MathFunctions.Function.create(9), sameInstance(MathFunctions.Function.TAN));
        assertThat(MathFunctions.Function.create(10), sameInstance(MathFunctions.Function.ATAN));
        assertThat(MathFunctions.Function.create(11), sameInstance(MathFunctions.Function.SQRT));
        assertThat(MathFunctions.Function.create(12), sameInstance(MathFunctions.Function.SINH));
        assertThat(MathFunctions.Function.create(13), sameInstance(MathFunctions.Function.ASINH));
        assertThat(MathFunctions.Function.create(14), sameInstance(MathFunctions.Function.COSH));
        assertThat(MathFunctions.Function.create(15), sameInstance(MathFunctions.Function.ACOSH));
        assertThat(MathFunctions.Function.create(16), sameInstance(MathFunctions.Function.TANH));
        assertThat(MathFunctions.Function.create(17), sameInstance(MathFunctions.Function.ATANH));
        assertThat(MathFunctions.Function.create(18), sameInstance(MathFunctions.Function.CBRT));
        assertThat(MathFunctions.Function.create(19), sameInstance(MathFunctions.Function.HYPOT));
        assertThat(MathFunctions.Function.create(20), sameInstance(MathFunctions.Function.FLOOR));


        assertThat(MathFunctions.newInstance(MathFunctions.Function.EXP, null, null), instanceOf(MathExpFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.POW, null, null), instanceOf(MathPowFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.LOG, null, null), instanceOf(MathLogFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.LOG1P, null, null), instanceOf(MathLog1pFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.LOG10, null, null), instanceOf(MathLog10Function.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.SIN, null, null), instanceOf(MathSinFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.ASIN, null, null), instanceOf(MathASinFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.COS, null, null), instanceOf(MathCosFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.ACOS, null, null), instanceOf(MathACosFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.TAN, null, null), instanceOf(MathTanFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.ATAN, null, null), instanceOf(MathATanFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.SQRT, null, null), instanceOf(MathSqrtFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.SINH, null, null), instanceOf(MathSinHFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.ASINH, null, null), instanceOf(MathASinHFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.COSH, null, null), instanceOf(MathCosHFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.ACOSH, null, null), instanceOf(MathACosHFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.TANH, null, null), instanceOf(MathTanHFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.ATANH, null, null), instanceOf(MathATanHFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.CBRT, null, null), instanceOf(MathCbrtFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.HYPOT, null, null), instanceOf(MathHypotFunction.class));
        assertThat(MathFunctions.newInstance(MathFunctions.Function.FLOOR, null, null), instanceOf(MathFloorFunction.class));
    }
}