1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.rng.sampling.shape;
18
19 import org.junit.jupiter.api.Assertions;
20 import org.junit.jupiter.api.Test;
21
22
23
24
25 class CoordinatesTest {
26
27
28
29 @Test
30 void testRequireFiniteWithMessageThrows() {
31 final double[] c = {0, 1, 2};
32 final String message = "This should be prepended";
33 Assertions.assertSame(c, Coordinates.requireFinite(c, message));
34 final double[] bad = {Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.NaN};
35 for (int i = 0; i < c.length; i++) {
36 final int ii = i;
37 for (final double d : bad) {
38 final double value = c[i];
39 c[i] = d;
40 final IllegalArgumentException ex = Assertions.assertThrows(IllegalArgumentException.class,
41 () -> Coordinates.requireFinite(c, message),
42 () -> String.format("Did not detect non-finite coordinate: %d = %s", ii, d));
43 Assertions.assertTrue(ex.getMessage().startsWith(message), "Missing message prefix");
44 c[i] = value;
45 }
46 }
47 }
48
49
50
51
52 @Test
53 void testRequireLengthWithMessageThrows() {
54 final String message = "This should be prepended";
55 for (final double[] c : new double[][] {{0, 1}, {0, 1, 2}}) {
56 final int length = c.length;
57 Assertions.assertSame(c, Coordinates.requireLength(c, length, message));
58 IllegalArgumentException ex = Assertions.assertThrows(IllegalArgumentException.class,
59 () -> Coordinates.requireLength(c, length - 1, message),
60 () -> "Did not detect length was too long: " + (length - 1));
61 Assertions.assertTrue(ex.getMessage().startsWith(message), "Missing message prefix");
62 ex = Assertions.assertThrows(IllegalArgumentException.class,
63 () -> Coordinates.requireLength(c, length + 1, message),
64 () -> "Did not detect length was too short: " + (length + 1));
65 Assertions.assertTrue(ex.getMessage().startsWith(message), "Missing message prefix");
66 }
67 }
68 }