1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.math4.neuralnet.sofm.util;
19
20 import org.junit.Test;
21 import org.junit.Assert;
22
23 import static org.junit.jupiter.api.Assertions.assertThrows;
24
25
26
27
28 public class ExponentialDecayFunctionTest {
29
30 @Test
31 public void testPrecondition1() {
32 assertThrows(IllegalArgumentException.class, () ->
33 new ExponentialDecayFunction(0d, 0d, 2));
34 }
35
36 @Test
37 public void testPrecondition2() {
38 assertThrows(IllegalArgumentException.class, () ->
39 new ExponentialDecayFunction(1d, 0d, 2));
40 }
41
42 @Test
43 public void testPrecondition3() {
44 assertThrows(IllegalArgumentException.class, () ->
45 new ExponentialDecayFunction(1d, 1d, 100));
46 }
47
48 @Test
49 public void testPrecondition4() {
50 assertThrows(IllegalArgumentException.class, () ->
51 new ExponentialDecayFunction(1d, 0.2, 0));
52 }
53
54 @Test
55 public void testTrivial() {
56 final int n = 65;
57 final double init = 4;
58 final double valueAtN = 3;
59 final ExponentialDecayFunction f = new ExponentialDecayFunction(init, valueAtN, n);
60
61 Assert.assertEquals(init, f.applyAsDouble(0), 0d);
62 Assert.assertEquals(valueAtN, f.applyAsDouble(n), 0d);
63 Assert.assertEquals(0, f.applyAsDouble(Long.MAX_VALUE), 0d);
64 }
65
66 }