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 QuasiSigmoidDecayFunctionTest {
29
30 @Test
31 public void testPrecondition1() {
32 assertThrows(IllegalArgumentException.class, () ->
33 new QuasiSigmoidDecayFunction(0d, -1d, 2));
34 }
35
36 @Test
37 public void testPrecondition3() {
38 assertThrows(IllegalArgumentException.class, () ->
39 new QuasiSigmoidDecayFunction(1d, 0d, 100));
40 }
41
42 @Test
43 public void testPrecondition4() {
44 assertThrows(IllegalArgumentException.class, () ->
45 new QuasiSigmoidDecayFunction(1d, -1d, 0));
46 }
47
48 @Test
49 public void testTrivial() {
50 final int n = 65;
51 final double init = 4;
52 final double slope = -1e-1;
53 final QuasiSigmoidDecayFunction f = new QuasiSigmoidDecayFunction(init, slope, n);
54
55 Assert.assertEquals(init, f.applyAsDouble(0), 0d);
56
57 Assert.assertEquals(slope, f.applyAsDouble(n + 1) - f.applyAsDouble(n), 1e-4);
58 Assert.assertEquals(0, f.applyAsDouble(Long.MAX_VALUE), 0d);
59 }
60
61 }