Class |
Line # |
Actions |
|||
---|---|---|---|---|---|
SparseDoubleArrayTest | 27 | 23 | 4 |
1 | /* | |
2 | * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) | |
3 | * Copyright (C) $$Year-Rel$$ The Jalview Authors | |
4 | * | |
5 | * This file is part of Jalview. | |
6 | * | |
7 | * Jalview is free software: you can redistribute it and/or | |
8 | * modify it under the terms of the GNU General Public License | |
9 | * as published by the Free Software Foundation, either version 3 | |
10 | * of the License, or (at your option) any later version. | |
11 | * | |
12 | * Jalview is distributed in the hope that it will be useful, but | |
13 | * WITHOUT ANY WARRANTY; without even the implied warranty | |
14 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR | |
15 | * PURPOSE. See the GNU General Public License for more details. | |
16 | * | |
17 | * You should have received a copy of the GNU General Public License | |
18 | * along with Jalview. If not, see <http://www.gnu.org/licenses/>. | |
19 | * The Jalview Authors are detailed in the 'AUTHORS' file. | |
20 | */ | |
21 | package jalview.ext.android; | |
22 | ||
23 | import static org.testng.Assert.assertEquals; | |
24 | ||
25 | import org.testng.annotations.Test; | |
26 | ||
27 | public class SparseDoubleArrayTest | |
28 | { | |
29 | ||
30 | 0 | @Test |
31 | public void testConstructor() | |
32 | { | |
33 | 0 | double[] d = new double[] { 0d, 0d, 1.2d, 0d, 0d, 3.4d }; |
34 | 0 | SparseDoubleArray s = new SparseDoubleArray(d); |
35 | 0 | for (int i = 0; i < d.length; i++) |
36 | { | |
37 | 0 | assertEquals(s.get(i), d[i], "At [" + i + "]"); |
38 | } | |
39 | } | |
40 | ||
41 | 0 | @Test |
42 | public void testAdd() | |
43 | { | |
44 | 0 | double[] d = new double[] { 0d, 0d, 1.2d, 0d, 0d, 3.4d }; |
45 | 0 | SparseDoubleArray s = new SparseDoubleArray(d); |
46 | // add to zero (absent) | |
47 | 0 | s.add(0, 3.2d); |
48 | 0 | assertEquals(s.get(0), 3.2d); |
49 | // add to non-zero | |
50 | 0 | s.add(0, 2.5d); |
51 | 0 | assertEquals(s.get(0), 5.7d); |
52 | // add negative value | |
53 | 0 | s.add(2, -5.3d); |
54 | 0 | assertEquals(s.get(2), -4.1d); |
55 | // add to unset value | |
56 | 0 | s.add(12, 9.8d); |
57 | 0 | assertEquals(s.get(12), 9.8d); |
58 | } | |
59 | ||
60 | 0 | @Test |
61 | public void testDivide() | |
62 | { | |
63 | 0 | double delta = 1.0e-10; |
64 | 0 | double[] d = new double[] { 0d, 2.4d, 1.2d, 0d, -4.8d, -3.6d }; |
65 | 0 | SparseDoubleArray s = new SparseDoubleArray(d); |
66 | 0 | assertEquals(s.divide(0, 1d), 0d); // no such entry |
67 | 0 | assertEquals(s.divide(2, 0d), 0d); // zero divisor |
68 | 0 | assertEquals(s.divide(1, 2d), 1.2d, delta); // + / + |
69 | 0 | assertEquals(s.divide(2, -2d), -0.6d, delta); // + / - |
70 | 0 | assertEquals(s.divide(4, 3d), -1.6d, delta); // - / + |
71 | 0 | assertEquals(s.divide(5, -3d), 1.2d, delta); // - / - |
72 | } | |
73 | } |