code: def test_rank_does_not_mutate(self):
      # GH#18521
      # Check rank does not mutate DataFrame
      df = DataFrame(
          np.random.default_rng(2).standard_normal((10, 3)),
          dtype="float64",
      )
      expected = df.copy()
      df.rank()
      result = df
      tm.assert_frame_equal(result, expected)
  
imports: from datetime import datetime, timedelta
  import numpy
  import pytest
  from pandas._libs.algos import Infinity, NegInfinity
  from pandas import DataFrame, Index, Series
  import pandas._testing
label_desc: Use image node_id 3 for calling the TestRank obj's underlying member method code with example usage: obj.test_rank_does_not_mutate() without return types