code: def test_slice_unknown_dim_label(self):
      class MD(DataSetFamily):
          extra_dims = [
              ("dim_0", {"a", "b", "c"}),
              ("dim_1", {"c", "d", "e"}),
          ]
  
      def expect_slice_fails(*args, **kwargs):
          expected_msg = kwargs.pop("expected_msg")
  
          with assert_raises_str(ValueError, expected_msg):
              MD.slice(*args, **kwargs)
  
      expect_slice_fails(
          "not-in-0",
          "c",
          expected_msg=(
              "'not-in-0' is not a value along the dim_0 dimension of MD"
          ),
      )
      expect_slice_fails(
          dim_0="not-in-0",
          dim_1="c",
          expected_msg=(
              "'not-in-0' is not a value along the dim_0 dimension of MD"
          ),
      )
  
      expect_slice_fails(
          "a",
          "not-in-1",
          expected_msg=(
              "'not-in-1' is not a value along the dim_1 dimension of MD"
          ),
      )
      expect_slice_fails(
          dim_0="a",
          dim_1="not-in-1",
          expected_msg=(
              "'not-in-1' is not a value along the dim_1 dimension of MD"
          ),
      )
  
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 7 for calling the TestDataSetFamily obj's underlying member method code with example usage: obj.test_slice_unknown_dim_label() without return types