code: def test_equals_different_blocks(self, using_infer_string):
      # GH#9330
      df0 = DataFrame({"A": ["x", "y"], "B": [1, 2], "C": ["w", "z"]})
      df1 = df0.reset_index()[["A", "B", "C"]]
      if not using_infer_string:
          # this assert verifies that the above operations have
          # induced a block rearrangement
          assert df0._mgr.blocks[0].dtype != df1._mgr.blocks[0].dtype
  
      # do the real tests
      tm.assert_frame_equal(df0, df1)
      assert df0.equals(df1)
      assert df1.equals(df0)
  
imports: import numpy
  from pandas import DataFrame, date_range
  import pandas._testing
label_desc: Use image node_id 2 for calling the TestEquals obj's underlying member method code with example usage: obj.test_equals_different_blocks(using_infer_string) without return types