def test_cm_type_2(f, extra_isogenies, potenial_isogenies):
    K = NumberField(f, "a")

    superset, _ = get_isogeny_primes(K, **TEST_SETTINGS)
    assert set(EC_Q_ISOGENY_PRIMES).difference(superset) == set()
    # for p in extra_isogenies:
    #     assert satisfies_condition_CC(K, p), "Not of type 2"
    pnip = sorted(superset.difference(set(EC_Q_ISOGENY_PRIMES)))
    print("f = {}  disc = {} pnip = {}".format(f, K.discriminant(), pnip))
    assert (extra_isogenies.difference(superset) == set()
            ), "Known CM isogenies are filtered out!"
    upperbound = potenial_isogenies.union(EC_Q_ISOGENY_PRIMES).union(
        extra_isogenies)
    upperbound = upperbound.union(bad_cubic_formal_immersion_primes)
    unlisted_potential_isogenies = superset.difference(upperbound)
    assert len(unlisted_potential_isogenies) <= 2, "We got worse at filtering"
    if unlisted_potential_isogenies:
        assert max(
            unlisted_potential_isogenies) <= 109, "We got worse at filtering"