### Question:
CurrencyParameterSensitivitiesTokenEvaluator extends TokenEvaluator<CurrencyParameterSensitivities> { @Override public Set<String> tokens(CurrencyParameterSensitivities sensitivities) { return sensitivities.getSensitivities().stream() .flatMap(this::tokensForSensitivity) .collect(toImmutableSet()); }  @Override Class<?> getTargetType(); @Override Set<String> tokens(CurrencyParameterSensitivities sensitivities); @Override EvaluationResult evaluate(
      CurrencyParameterSensitivities sensitivities,
      CalculationFunctions functions,
      String firstToken,
      List<String> remainingTokens);  }### Answer:
@Test public void tokens() { CurrencyParameterSensitivity sensitivity1 = CurrencyParameterSensitivity.of(CurveName.of("curve1"), Currency.AUD, DoubleArray.EMPTY); CurrencyParameterSensitivity sensitivity2 = CurrencyParameterSensitivity.of(CurveName.of("curve2"), Currency.CHF, DoubleArray.EMPTY); CurrencyParameterSensitivities sensitivities = CurrencyParameterSensitivities.of(sensitivity1, sensitivity2); Set<String> expected = ImmutableSet.of("curve1", "curve2", "aud", "chf"); CurrencyParameterSensitivitiesTokenEvaluator evaluator = new CurrencyParameterSensitivitiesTokenEvaluator(); assertThat(evaluator.tokens(sensitivities)).isEqualTo(expected); }