//-------------------------------------------------------------------------
        public virtual void test_requirementsAndCurrency()
        {
            FxSingleTradeCalculationFunction function = new FxSingleTradeCalculationFunction();
            ISet <Measure>       measures             = function.supportedMeasures();
            FunctionRequirements reqs = function.requirements(TRADE, measures, PARAMS, REF_DATA);

            assertThat(reqs.OutputCurrencies).containsExactly(GBP, USD);
            assertThat(reqs.ValueRequirements).isEqualTo(ImmutableSet.of(DISCOUNT_CURVE_GBP_ID, DISCOUNT_CURVE_USD_ID));
            assertThat(reqs.TimeSeriesRequirements).Empty;
            assertThat(function.naturalCurrency(TRADE, REF_DATA)).isEqualTo(GBP);
        }