protected void updateStatistics(StatisticsSet intervalStatistics, StatisticsSet accumulatedStatistics) {
		Map<String, Object> result = newHashMap();
		result.put("testTime", getCurrentRunningTime() / 1000);
		List<Map<String, Object>> cumulativeStatistics = new ArrayList<>();
		List<Map<String, Object>> lastSampleStatistics = new ArrayList<>();
		for (Test test : accumulatedStatisticMapPerTest.keySet()) {
			Map<String, Object> accumulatedStatisticMap = newHashMap();
			Map<String, Object> intervalStatisticsMap = newHashMap();
			StatisticsSet accumulatedSet = this.accumulatedStatisticMapPerTest.get(test);
			StatisticsSet intervalSet = this.intervalStatisticMapPerTest.get(test);

			accumulatedStatisticMap.put("testNumber", test.getNumber());
			accumulatedStatisticMap.put("testDescription", test.getDescription());
			intervalStatisticsMap.put("testNumber", test.getNumber());
			intervalStatisticsMap.put("testDescription", test.getDescription());
			// When only 1 test is running, it's better to use the parametrized
			// snapshot.
			for (Entry<String, StatisticExpression> each : getExpressionEntrySet()) {
				if (isInterestingStatistics(each.getKey())) {
					accumulatedStatisticMap.put(each.getKey(),
							getRealDoubleValue(each.getValue().getDoubleValue(accumulatedSet)));
					intervalStatisticsMap.put(each.getKey(),
							getRealDoubleValue(each.getValue().getDoubleValue(intervalSet)));
				}
			}
			cumulativeStatistics.add(accumulatedStatisticMap);
			lastSampleStatistics.add(intervalStatisticsMap);
		}

		Map<String, Object> totalStatistics = newHashMap();

		for (Entry<String, StatisticExpression> each : getExpressionEntrySet()) {
			if (isInterestingStatistics(each.getKey())) {
				totalStatistics.put(each.getKey(),
						getRealDoubleValue(each.getValue().getDoubleValue(accumulatedStatistics)));
			}
		}

		result.put("totalStatistics", totalStatistics);
		result.put("cumulativeStatistics", cumulativeStatistics);
		result.put("lastSampleStatistics", lastSampleStatistics);
		result.put("tpsChartData", getTpsValues());
		result.put("peakTpsForGraph", this.peakTpsForGraph);
		synchronized (this) {
			result.put(GrinderConstants.P_PROCESS, this.runningProcess);
			result.put(GrinderConstants.P_THREAD, this.runningThread);
			result.put("success", !isAllTestFinished());
		}
		// Finally overwrite.. current one.
		this.statisticData = result;
	}
Build up statistics for current sampling.

@param accumulatedStatistics intervalStatistics
@param intervalStatistics    accumulatedStatistics
ngrinder-core/src/main/java/net/grinder/SingleConsole.java