code: def test_rank_descending(self, rank_method, dtype):
      if "i" in dtype:
          df = self.df.dropna().astype(dtype)
      else:
          df = self.df.astype(dtype)
  
      res = df.rank(ascending=False)
      expected = (df.max() - df).rank()
      tm.assert_frame_equal(res, expected)
  
      expected = (df.max() - df).rank(method=rank_method)
  
      if dtype != "O":
          res2 = df.rank(
              method=rank_method, ascending=False, numeric_only=True
          )
          tm.assert_frame_equal(res2, expected)
  
      res3 = df.rank(
          method=rank_method, ascending=False, numeric_only=False
      )
      tm.assert_frame_equal(res3, 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 8 for calling the TestRank obj's underlying member method code with example usage: obj.test_rank_descending(rank_method, dtype) without return types