code: def _provider_state_fixtures_with_params(
          provider_state_fixture_by_descriptor: Dict[str, ProviderStateFixture],
          provider_states: Tuple[ProviderState, ...]
  ) -> List[Tuple[ProviderStateFixture, Dict]]:
      
      provider_state_fixtures_with_params: List[Tuple[ProviderStateFixture, Dict]] = []
      for provider_state in provider_states:
          provider_state_fixture = provider_state_fixture_by_descriptor.get(provider_state.descriptor)
          if not provider_state_fixture:
              raise UnsupportedProviderStateError(
                  f'Missing expected provider state: {provider_state}'
              )
          if provider_state.params:
              fixture_params = _pluck_parameter_names(provider_state_fixture)
              if not frozenset(provider_state.params.keys()) == fixture_params:
                  raise UnsupportedProviderStateError(
                      'Expected provider state params dont match those of '
                      + f'provider. Expected: {provider_state}. Actual: {fixture_params}.'
                  )
          provider_state_fixtures_with_params.append(
              (provider_state_fixture, provider_state.params or {})
          )
  
      return provider_state_fixtures_with_params
docs: Get a list of provider states fixtures for an interaction with their parameters.
      Raises an UnsupportedProviderStateError on the first provider state in an interaction
      that isn't supported by the provider.