67 def test_3div_poly(a1, a3):
68 j = EllipticCurve(Fq, [a1, 0, a3, 0, 0]).j_invariant()
69 F_ = EllipticCurve(Fq, [a1, 0, a3, -5 * a1 * a3, -a1**3 * a3 - 7 * a3**2])
70 j_ = F_.j_invariant()
72
73 alpha = setup['curt'](-a3)
74 assert alpha**3 == -a3
75 a1_, a3_ = isogeny3(alpha, a1, a3)
76 j0 = EllipticCurve(Fq, [a1_, 0, a3_, -5 * a1_ * a3_, -a1_**3 * a3_ - 7 * a3_**2]).j_invariant()
77
78 alpha *= setup['ζ₃']
79 assert alpha**3 == -a3
80 a1_, a3_ = isogeny3(alpha, a1, a3)
81 j1 = EllipticCurve(Fq, [a1_, 0, a3_, -5 * a1_ * a3_, -a1_**3 * a3_ - 7 * a3_**2]).j_invariant()
82
83 alpha *= setup['ζ₃']
84 assert alpha**3 == -a3
85 a1_, a3_ = isogeny3(alpha, a1, a3)
86 j2 = EllipticCurve(Fq, [a1_, 0, a3_, -5 * a1_ * a3_, -a1_**3 * a3_ - 7 * a3_**2]).j_invariant()
87
88
92
96
100