private static ArrayList<TestingParameters> variateExperimentalSettings(TestingParameters param)
	{
		ArrayList<TestingParameters> list = new ArrayList<>();
		int c = 0;
		// Experimental variation parameters
		int[] list_numInitCells = {20};//{ 10, 20 };
		int[] list_numClones = {10};//{ 5, 10, 15 };
		int[] list_maxIter = { 500, 1000 };
		double[] list_suppThres = { 0.1, 0.2, 0.3 };
		double[] list_errorThres = { 0.0005, 0.001, 0.0015 };
		double[] list_divRatio = { 0.3, 0.4, 0.5 };
		double[] list_mutnParam = {100};//{ 50, 100, 150 };

		for (int i_numInitCells = 0; i_numInitCells < list_numInitCells.length; i_numInitCells++)
		{
			for (int i_numClones = 0; i_numClones < list_numClones.length; i_numClones++)
			{
				for (int i_maxIter = 0; i_maxIter < list_maxIter.length; i_maxIter++)
				{
					for (int i_suppThres = 0; i_suppThres < list_suppThres.length; i_suppThres++)
					{
						for (int i_errorThres = 0; i_errorThres < list_errorThres.length; i_errorThres++)
						{
							for (int i_divRatio = 0; i_divRatio < list_divRatio.length; i_divRatio++)
							{
								for (int i_mutnclone = 0; i_mutnclone < list_mutnParam.length; i_mutnclone++)
								{
									c++;
									TestingParameters clone = new TestingParameters();
									clone.maxNrRuns = param.maxNrRuns;
									clone.affinityMeasure = param.affinityMeasure;
									clone.generatorType = param.generatorType;
									clone.cellGenerator = param.cellGenerator;
									clone.optimisationFunction = param.optimisationFunction;
									clone.numDims = param.numDims;
									clone.lowerBounds = param.lowerBounds;
									clone.upperBounds = param.upperBounds;
									clone.numInitCells = list_numInitCells[i_numInitCells];
									clone.numClones = list_numClones[i_numClones];
									clone.maxIter = list_maxIter[i_maxIter];
									clone.suppThres = list_suppThres[i_suppThres];
									clone.errorThres = list_errorThres[i_errorThres];
									clone.divRatio = list_divRatio[i_divRatio];
									clone.mutnParam = list_mutnParam[i_mutnclone];
									clone.name = createName(clone);
									list.add(clone);
								}
							}
						}
					}
				}
			}
		}
		return list;
	}