code: def test_invalid_parameters(self):
      with pytest.raises(ValueError):
          RepeatPart(crossfade_duration=-0.0001)
      with pytest.raises(ValueError):
          RepeatPart(crossfade_duration=0.0001)
      with pytest.raises(ValueError):
          RepeatPart(min_part_duration=0.0001)
      with pytest.raises(ValueError):
          RepeatPart(min_repeats=0, max_repeats=1)
      with pytest.raises(ValueError):
          RepeatPart(min_repeats=2, max_repeats=1)
      with pytest.raises(ValueError):
          RepeatPart(min_part_duration=0.5, max_part_duration=0.2)
      with pytest.raises(ValueError):
          RepeatPart(min_part_duration=0.01, crossfade_duration=0.1)
      with pytest.raises(ValueError):
          RepeatPart(mode="append")
  
imports: from copy import deepcopy
  import numpy
  import pytest
  from numpy.testing import assert_array_almost_equal, assert_array_equal
  from audiomentations import Gain, AdjustDuration, RepeatPart, Shift
  from audiomentations.core.utils import get_crossfade_mask_pair
  from tests.test_filter_transforms import get_chirp_test
label_desc: Use image node_id 16 for calling the TestRepeatPart obj's underlying member method code with example usage: obj.test_invalid_parameters() without return types