/**
	 * Verifies the correctness of the wurfl devices
	 *
	 * @param array $devicesMap
	 */
	public static function verify(array $devicesMap) {
				
		$devicesMapByUserAgent = array ();
		$hierarchyVerifiedDeviceIds = array ();
		
		// Verifiy the existance of the Generic Device
		self::verifyGenericDeviceExistance ( $devicesMap );
		
		$genericDevice = $devicesMap [WURFL_Constants::GENERIC];
		
		foreach ($devicesMap as $deviceId => $device) {		
			if(!WURFL_WURFLUtils::isGeneric($deviceId)) {						
				self::verifyUserAgentUniqueness ( $devicesMapByUserAgent, $device->userAgent );
				$devicesMapByUserAgent [$device->userAgent] = $device;
				
				//self::verifyHierarchy($devicesMap, $hierarchyVerifiedDeviceIds, $device);
				//$hierarchyVerifiedDeviceIds[] = $device->id;
				

				self::verifyGroups ( $genericDevice, $device );
				
				self::verifyCapabilities ( $genericDevice, $device );
			
			}
		
		}
	
	}