missing if/else for return_matrix
guarantee zeros in tests