X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fext%2Fandroid%2FSparseDoubleArrayTest.java;fp=test%2Fjalview%2Fext%2Fandroid%2FSparseDoubleArrayTest.java;h=7d64a280e5958ec8db24070875df2ec8ea4f4cbf;hb=d5bcc3830eab04e6db816e1c2ad8fce1dc189612;hp=0000000000000000000000000000000000000000;hpb=3ebdd4e28382e38a181aae1eed71549f603f9025;p=jalview.git diff --git a/test/jalview/ext/android/SparseDoubleArrayTest.java b/test/jalview/ext/android/SparseDoubleArrayTest.java new file mode 100644 index 0000000..7d64a28 --- /dev/null +++ b/test/jalview/ext/android/SparseDoubleArrayTest.java @@ -0,0 +1,53 @@ +package jalview.ext.android; + +import static org.testng.Assert.assertEquals; + +import org.testng.annotations.Test; + +public class SparseDoubleArrayTest +{ + + @Test + public void testConstructor() + { + double[] d = new double[] { 0d, 0d, 1.2d, 0d, 0d, 3.4d }; + SparseDoubleArray s = new SparseDoubleArray(d); + for (int i = 0; i < d.length; i++) + { + assertEquals(s.get(i), d[i], "At [" + i + "]"); + } + } + + @Test + public void testAdd() + { + double[] d = new double[] { 0d, 0d, 1.2d, 0d, 0d, 3.4d }; + SparseDoubleArray s = new SparseDoubleArray(d); + // add to zero (absent) + s.add(0, 3.2d); + assertEquals(s.get(0), 3.2d); + // add to non-zero + s.add(0, 2.5d); + assertEquals(s.get(0), 5.7d); + // add negative value + s.add(2, -5.3d); + assertEquals(s.get(2), -4.1d); + // add to unset value + s.add(12, 9.8d); + assertEquals(s.get(12), 9.8d); + } + + @Test + public void testDivide() + { + double delta = 1.0e-10; + double[] d = new double[] { 0d, 2.4d, 1.2d, 0d, -4.8d, -3.6d }; + SparseDoubleArray s = new SparseDoubleArray(d); + assertEquals(s.divide(0, 1d), 0d); // no such entry + assertEquals(s.divide(2, 0d), 0d); // zero divisor + assertEquals(s.divide(1, 2d), 1.2d, delta); // + / + + assertEquals(s.divide(2, -2d), -0.6d, delta); // + / - + assertEquals(s.divide(4, 3d), -1.6d, delta); // - / + + assertEquals(s.divide(5, -3d), 1.2d, delta); // - / - + } +}