Add test for Bessel functions.

Change-Id: Ief5881e8027643d7ef627e60a88fdbad17f3d884
diff --git a/internal/ceres/jet_test.cc b/internal/ceres/jet_test.cc
index ec43ef9..636018a 100644
--- a/internal/ceres/jet_test.cc
+++ b/internal/ceres/jet_test.cc
@@ -441,6 +441,34 @@
     ExpectJetsClose(sin(asin(b)), b);
     ExpectJetsClose(asin(sin(b)), b);
   }
+
+  {
+    J zero = J(0.0);
+
+    // Check that J0(0) == 1.
+    ExpectJetsClose(BesselJ0(zero), J(1.0));
+
+    // Check that J1(0) == 0.
+    ExpectJetsClose(BesselJ1(zero), zero);
+
+    // Check that J2(0) == 0.
+    ExpectJetsClose(BesselJn(2, zero), zero);
+
+    // Check that J3(0) == 0.
+    ExpectJetsClose(BesselJn(3, zero), zero);
+
+    J z = MakeJet(0.1, -2.7, 1e-3);
+
+    // Check that J0(z) == Jn(0,z).
+    ExpectJetsClose(BesselJ0(z), BesselJn(0, z));
+
+    // Check that J1(z) == Jn(1,z).
+    ExpectJetsClose(BesselJ1(z), BesselJn(1, z));
+
+    // Check that J0(z)+J2(z) == (2/z)*J1(z).
+    // See formula http://dlmf.nist.gov/10.6.E1
+    ExpectJetsClose(BesselJ0(z) + BesselJn(2, z), (2.0 / z) * BesselJ1(z));
+  }
 }
 
 TEST(Jet, JetsInEigenMatrices) {