code: def test_inheritance(self):
      class Parent(DataSetFamily):
          extra_dims = [
              ("dim_0", {"a", "b", "c"}),
              ("dim_1", {"d", "e", "f"}),
          ]
  
          column_0 = Column("f8")
          column_1 = Column("?")
  
      class Child(Parent):
          column_2 = Column("O")
          column_3 = Column("i8", -1)
  
      assert_is_subclass(Child, Parent)
      assert_equal(Child.extra_dims, Parent.extra_dims)
  
      ChildSlice = Child.slice(dim_0="a", dim_1="d")
  
      expected_child_slice_columns = frozenset(
          {
              ChildSlice.column_0,
              ChildSlice.column_1,
              ChildSlice.column_2,
              ChildSlice.column_3,
          }
      )
      assert_equal(ChildSlice.columns, expected_child_slice_columns)
  
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 8 for calling the TestDataSetFamily obj's underlying member method code with example usage: obj.test_inheritance() without return types