You seem to be ignoring `copy` in the sparse case. Make sure it is tested.