def METHOD_NAME(default_attributes, backend_class):
    """
    Test that conservation of momentum holds when many super-droplets coalesce
    """
    builder = Builder(
        n_sd=len(default_attributes["multiplicity"]), backend=backend_class()
    )
    builder.set_environment(Box(dt=1, dv=1))
    # add and remove relaxed velocity to prevent warning
    builder.add_dynamic(RelaxedVelocity(tau=1))
    builder.request_attribute("relative fall momentum")
    builder.particulator.dynamics.pop("RelaxedVelocity")
    builder.add_dynamic(Coalescence(collision_kernel=ConstantK(a=1), adaptive=False))
    particulator = builder.build(attributes=default_attributes, products=())
    particulator.run(2)
    total_initial_momentum = (
        default_attributes["relative fall momentum"]
        * default_attributes["multiplicity"]
    ).sum()
    total_final_momentum = (
        particulator.attributes["relative fall momentum"].to_ndarray()
        * particulator.attributes["multiplicity"].to_ndarray()
    ).sum()
    # assert that the total number of droplets changed
    assert np.sum(particulator.attributes["multiplicity"].to_ndarray()) != np.sum(
        default_attributes["multiplicity"]
    )
    # assert that the total momentum is conserved
    assert np.isclose(total_final_momentum, total_initial_momentum)