def test_same_surface_requirement(self):
     X11 = self.X11
     X2 = self.X2
     P = X11.base_place
     C = (2*X11.genus()-2)*X2.base_place # satisfies degree requirement
     with self.assertRaises(ValueError):
         RiemannConstantVector(P,C=C)
    def test_theta_X11(self):
        P0 = self.X11.base_place
        W0 = RiemannConstantVector(P0)
        self.is_theta_zero(self.X11, W0)

        P_oo = self.X11('oo')[0]
        W_oo = RiemannConstantVector(P_oo)
        self.is_theta_zero(self.X11, W_oo)

        D = sum(self.X11(2))
        W_D = AbelMap(D) + RiemannConstantVector(P0)
        self.is_theta_zero(self.X11, W_D)

        # until AbelMap(P_oo,D) is implemented properly
        W_D_oo = AbelMap(P0,D) - D.degree*AbelMap(P_oo) + \
                 RiemannConstantVector(P_oo)
        self.is_theta_zero(self.X11, W_D_oo)
 def test_canonical_X11_0(self):
     X = self.X11
     J = Jacobian(X)
     g = X.genus()
     P0 = X.base_place
     oneforms = X.holomorphic_oneforms()
     C = oneforms[0].valuation_divisor()
     W = 2 * RiemannConstantVector(P0) + AbelMap(C)
     self.assertLess(norm(J(W)), 1e-7)
 def test_degree_requirement(self):
     X = self.X11
     P = X.base_place
     C = ZeroDivisor(X)
     with self.assertRaises(ValueError):
         RiemannConstantVector(P, C=C)