code: def testInvalidParam(self):
      self.assertConfigureFails(
          PitchSalienceFunction(), {"binResolution": -1}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"binResolution": 0}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"binResolution": 101}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"harmonicWeight": -1}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"harmonicWeight": 2}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"magnitudeCompression": 0}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"magnitudeCompression": -1}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"magnitudeCompression": 2}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"magnitudeThreshold": -1}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"numberHarmonics": 0}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"numberHarmonics": -1}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"referenceFrequency": -1}
      )
      self.assertConfigureFails(
          PitchSalienceFunction(), {"referenceFrequency": 0}
      )
  
imports: from essentia_test import *
  from numpy import *
label_desc: Use image node_id 1 for calling the TestPitchSalienceFunction obj's underlying member method code with example usage: obj.testInvalidParam() without return types