/// <summary>
        /// Tests the full set of results against a golden copy.
        /// </summary>
        public virtual void testResults()
        {
            IList <Trade> trades = ImmutableList.of(createTrade1());

            IList <Column> columns = ImmutableList.of(Column.of(Measures.LEG_INITIAL_NOTIONAL), Column.of(Measures.PRESENT_VALUE), Column.of(Measures.LEG_PRESENT_VALUE), Column.of(Measures.PV01_CALIBRATED_SUM), Column.of(Measures.ACCRUED_INTEREST));

            ExampleMarketDataBuilder marketDataBuilder = ExampleMarketData.builder();

            LocalDate        valuationDate = LocalDate.of(2009, 7, 31);
            CalculationRules rules         = CalculationRules.of(StandardComponents.calculationFunctions(), Currency.USD, marketDataBuilder.ratesLookup(valuationDate));

            MarketData marketData = marketDataBuilder.buildSnapshot(valuationDate);

            // using the direct executor means there is no need to close/shutdown the runner
            CalculationTasks       tasks = CalculationTasks.of(rules, trades, columns, REF_DATA);
            MarketDataRequirements reqs  = tasks.requirements(REF_DATA);
            MarketData             calibratedMarketData = marketDataFactory().create(reqs, MarketDataConfig.empty(), marketData, REF_DATA);
            CalculationTaskRunner  runner = CalculationTaskRunner.of(MoreExecutors.newDirectExecutorService());
            Results results = runner.calculate(tasks, calibratedMarketData, REF_DATA);

            ReportCalculationResults calculationResults = ReportCalculationResults.of(valuationDate, trades, columns, results);

            TradeReportTemplate reportTemplate = ExampleData.loadTradeReportTemplate("swap-report-regression-test-template");
            TradeReport         tradeReport    = TradeReport.of(calculationResults, reportTemplate);

            string expectedResults = ExampleData.loadExpectedResults("swap-report");

            TradeReportRegressionTestUtils.assertAsciiTableEquals(tradeReport.toAsciiTableString(), expectedResults);
        }