code: def test_cache(self):
      class MD1(DataSetFamily):
          extra_dims = [("dim_0", ["a", "b", "c"])]
  
      class MD2(DataSetFamily):
          extra_dims = [("dim_0", ["a", "b", "c"])]
  
      MD1Slice = MD1.slice(dim_0="a")
      MD2Slice = MD2.slice(dim_0="a")
  
      assert_equal(MD1Slice.extra_coords, MD2Slice.extra_coords)
      assert_is_not(MD1Slice, MD2Slice)
  
file_path: zipline/tests/pipeline/test_multidimensional_dataset.py
imports: from collections import OrderedDict
  import itertools
  from textwrap import dedent
  from nose_parameterized import parameterized
  import numpy
  from zipline.pipeline.data import Column, DataSetFamily, DataSetFamilySlice
  from zipline.testing import ZiplineTestCase
  from zipline.testing.predicates import assert_equal, assert_is, assert_is_not, assert_is_subclass, assert_raises_str
label_desc: Use image node_id 2 for calling the TestDataSetFamily obj's underlying member method code with example usage: obj.test_cache() without return types