public static void testOrchestrator(int maxIterations) {
		
		int climateControlErrorCounter = 0;
		int climateControlEventCounter = 0;
		
		int dailyWakeupErrorCounter = 0;
		int dailyWakeupEventCounter = 0;
		
		int luminanceManagementErrorCounter = 0;
		int luminanceManagementEventCounter = 0;
		
		for (int i=0; i<maxIterations; i++) {
		
			// INITIAL EVENT SCHEDULING
			
			Error res = Error.NO_EVENT;
			TimerEvent a = new TimerEvent(WakeReason.DAILY_WAKEUP);

			timers.add(a);
						
			Orchestrator_part2.setArtificialClimateControlPortType(acc);
			Orchestrator_part2.setNaturalClimateSystemPortType(nc);
			Orchestrator_part2.setPathsPortType(p);
			Orchestrator_part2.setRoomUsageDatabasePortType(rud);
			Orchestrator_part2.setLuminanceManagementPortType(lm);
			
			do {
				
				if(!timers.isEmpty()) {
					
					WakeReason w = timers.element().reason;
					
					// Counter on event
					
					switch(w) {
					case DAILY_WAKEUP:
						dailyWakeupEventCounter++;
						break;
					case CLIMATE_WAKEUP:
						climateControlEventCounter++;
						break;
					case LUMINANCE_WAKEUP:
						luminanceManagementEventCounter++;
						break;
					}
				}
				
				res = Orchestrator_part2.wakeUp(timers);
				
				// Counter on error
				
				switch (res) {
				case DAILY_WAKEUP_ERROR:
					dailyWakeupErrorCounter++;
					break;
				case CLIMATE_WAKEUP_ERROR:
					climateControlErrorCounter++;
					break;
				case LUMINANCE_WAKEUP_ERROR:
					luminanceManagementErrorCounter++;
					break;
				}
			}
			
			while (res != Error.NO_EVENT);
			
		}
		
		// Print statistics
		System.out.println("(3) Integration Test - Orchestrator - Report");
		System.out.println("Tested functions");
		printStatistics(Error.DAILY_WAKEUP_ERROR,dailyWakeupErrorCounter,dailyWakeupEventCounter);
		printStatistics(Error.CLIMATE_WAKEUP_ERROR,climateControlErrorCounter,climateControlEventCounter);
		printStatistics(Error.LUMINANCE_WAKEUP_ERROR,luminanceManagementErrorCounter,luminanceManagementEventCounter);
	}