code: def test_shape_palettes():
      N = 10  # distinct shapes
      s = scale_shape_discrete()
      items = s.palette(N)
      assert len(items) == N
      assert all(isinstance(x, str) for x in items)
  
      with pytest.warns(UserWarning):
          # More values than palette has
          items = s.palette(N + 5)
          assert all(isinstance(x, str) for x in items[:N])
  
      with pytest.raises(PlotnineError):
          scale_shape_continuous()
  
      # Unfilled
      N = 14
      values = list(range(14))
      s = scale_shape_discrete(unfilled=True)
      items = s.map(values, limits=values)
      assert len(items) == N
      assert not all(isinstance(x, str) for x in items)
  
imports: import warnings
  from datetime import datetime
  import numpy
  import numpy.testing
  import pandas
  import pytest
  import plotnine
  from plotnine import aes, annotate, element_text, expand_limits, facet_wrap, geom_bar, geom_col, geom_point, ggplot, lims, theme
  from plotnine.exceptions import PlotnineError, PlotnineWarning
  from plotnine.scales import scale_color, scale_color_manual, scale_identity, scale_manual, scale_xy
  from plotnine.scales.scale_alpha import scale_alpha_continuous, scale_alpha_discrete
  from plotnine.scales.scale_linetype import scale_linetype_continuous, scale_linetype_discrete
  from plotnine.scales.scale_manual import _scale_manual
  from plotnine.scales.scale_shape import scale_shape_continuous, scale_shape_discrete
  from plotnine.scales.scale_size import scale_size_area, scale_size_continuous, scale_size_discrete, scale_size_radius
  from plotnine.scales.scale_xy import scale_x_continuous, scale_x_discrete, scale_x_log10, scale_y_continuous
  from plotnine.scales.scales import make_scale
label_desc: Use image node_id 6 for calling a global function with example usage: test_shape_palettes() without return types