code: def test_frozen_attributes():
      # gh-14827 reported that all frozen distributions had both pmf and pdf
      # attributes; continuous should have pdf and discrete should have pmf.
      message = "'rv_continuous_frozen' object has no attribute"
      with pytest.raises(AttributeError, match=message):
          stats.norm().pmf
      with pytest.raises(AttributeError, match=message):
          stats.norm().logpmf
      stats.norm.pmf = "herring"
      frozen_norm = stats.norm()
      assert isinstance(frozen_norm, rv_continuous_frozen)
      delattr(stats.norm, "pmf")
  
imports: import sys
  import numpy
  import numpy.testing
  import pytest
  from pytest import raises
  from scipy.integrate import IntegrationWarning
  import itertools
  from scipy import stats
  from .common_tests import check_normalization, check_moment, check_mean_expect, check_var_expect, check_skew_expect, check_kurt_expect, check_entropy, check_private_entropy, check_entropy_vect_scale, check_edge_support, check_named_args, check_random_state_property, check_meth_dtype, check_ppf_dtype, check_cmplx_deriv, check_pickling, check_rvs_broadcast, check_freezing, check_munp_expect
  from scipy.stats._distr_params import distcont
  from scipy.stats._distn_infrastructure import rv_continuous_frozen
label_desc: Use image node_id 42 for calling a global function with example usage: test_frozen_attributes() without return types