def test_minimal_stratum_components(): for g in range(2, 6): A = AbelianStratum(2 * g - 2) assert sum( C.masur_veech_volume(rational=True) for C in A.components()) == A.masur_veech_volume(rational=True) assert sum( C.masur_veech_volume(rational=False) for C in A.components()) == A.masur_veech_volume(rational=False)
def test_H4odd_cylinder_diagram_contributions(): A = AbelianStratum(4).odd_component() c1 = sum(c.volume_contribution() for c in A.cylinder_diagrams(1)).integral_sum_as_mzv() c2 = sum(c.volume_contribution() for c in A.cylinder_diagrams(2)).integral_sum_as_mzv() c3 = sum(c.volume_contribution() for c in A.cylinder_diagrams(3)).integral_sum_as_mzv() vol = c1 + c2 + c3 assert vol == A.masur_veech_volume(rational=True) * M( 2 * A.stratum().genus())
def test_H2_cylinder_diagram_contributions(): A = AbelianStratum(2).unique_component() c1 = sum(c.volume_contribution() for c in A.cylinder_diagrams(1)).integral_sum_as_mzv() c2 = sum(c.volume_contribution() for c in A.cylinder_diagrams(2)).integral_sum_as_mzv() assert c1 == M(4) / 3 assert c2 == (2 * M(1, 3) + M(2, 2)) / 3 vol = c1 + c2 assert vol == A.masur_veech_volume(rational=True) * M( 2 * A.stratum().genus())
def test_H11_cylinder_diagram_contributions(): A = AbelianStratum(1, 1).hyperelliptic_component() c1 = sum(c.volume_contribution() for c in A.cylinder_diagrams(1)).integral_sum_as_mzv() c2 = sum(c.volume_contribution() for c in A.cylinder_diagrams(2)).integral_sum_as_mzv() c3 = sum(c.volume_contribution() for c in A.cylinder_diagrams(3)).integral_sum_as_mzv() assert c1 == M(5) / 6 assert c2 == M(2) * M(3) / 3 - M(5) / 6 assert c3 == (2 * M(4) - M(2) * M(3)) / 3 vol = c1 + c2 + c3 assert vol == A.masur_veech_volume(rational=True) * M( 2 * A.stratum().genus())