<testsuites name='UITests.xctest' tests='197' failures='0'>
  <testsuite name='CoreTests.GeoJSONGeometryCLLocationTests' tests='7' failures='0'>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_CheckValues' time='0.007'/>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_Latitude_InRange' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_Latitude_OutOfRange_Above' time='0.005'/>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_Latitude_OutOfRange_Below' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_Longitude_InRange' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_Longitude_OutOfRange_Above' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_Longitude_OutOfRange_Below' time='0.002'/>
  </testsuite>
  <testsuite name='CoreTests.GeoJSONGeometryCodableTests' tests='11' failures='0'>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryCoding' time='0.036'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidCoordinatesCount_EmptyArray' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidCoordinatesCount_ToLittle' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidCoordinatesCount_TooMuch' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidLatitude_AboveRange' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidLatitude_BelowRange' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidLongitude_AboveRange' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidLongitude_BelowRange' time='0.003'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_ValidCoordinatesCount' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_ValidLatitude' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_ValidLongitude' time='0.001'/>
  </testsuite>
  <testsuite name='CoreTests.GeoJSONMessageCodableTests' tests='5' failures='0'>
    <testcase classname='CoreTests.GeoJSONMessageCodableTests' name='testEncodedJSON' time='0.003'/>
    <testcase classname='CoreTests.GeoJSONMessageCodableTests' name='testGeoJsonMessageFromJson_InvalidJson' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONMessageCodableTests' name='testGeoJsonMessageFromJson_Type' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONMessageCodableTests' name='testGeoJsonMessageFromJson_ValidJson' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONMessageCodableTests' name='testGeoJsonMessageFromJson_ValidJson_CheckValues' time='0.002'/>
  </testsuite>
  <testsuite name='CoreTests.GeoJSONPropertiesCLLocationTests' tests='15' failures='0'>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_InvalidBearingAccuracy' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_InvalidBearing' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_InvalidHorizontalAccuracy_LessThanZero' time='0.003'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_InvalidSpeedAccuracy' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_InvalidSpeed' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_InvalidVerticalAccuracy' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_Timestamp' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_ValidBearingAccuracy' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_ValidBearing' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_ValidHorizontalAccuracy_CheckValue' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_ValidHorizontalAccuracy_EqualZero' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_ValidHorizontalAccuracy' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_ValidSpeedAccuracy' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_ValidSpeed' time='0.003'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_ValidVerticalAccuracy' time='0.001'/>
  </testsuite>
  <testsuite name='CoreTests.GeoJSONPropertiesCodableTests' tests='15' failures='0'>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_InvalidBearing_LessThanZero' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_InvalidBearingAccuracy_LessThanZero' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_InvalidHorizontalAccuracy_LessThanZero' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_InvalidSpeed_LessThanZero' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_InvalidSpeedAccuracy_LessThanZero' time='0.003'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_InvalidVerticalAccuracy_LessThanZero' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_Timestamp' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_ValidBearingAccuracy' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_ValidBearing' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_ValidHorizontalAccuracy_EqualZero' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_ValidHorizontalAccuracy_MoreThanZero' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_ValidSpeedAccuracy' time='0.013'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_ValidSpeed' time='0.004'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_ValidVerticalAccuracy' time='0.010'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJsonCoding' time='0.005'/>
  </testsuite>
  <testsuite name='CoreTests.GeoJsonMessageCLLocationTests' tests='3' failures='0'>
    <testcase classname='CoreTests.GeoJsonMessageCLLocationTests' name='testGeoJsonMessageFromCLLocation_CheckValues' time='0.003'/>
    <testcase classname='CoreTests.GeoJsonMessageCLLocationTests' name='testGeoJsonMessageFromCLLocation_InvalidLocation' time='0.006'/>
    <testcase classname='CoreTests.GeoJsonMessageCLLocationTests' name='testGeoJsonMessageFromCLLocation_ValidLocation' time='0.003'/>
  </testsuite>
  <testsuite name='CoreTests.TrackableTests' tests='3' failures='0'>
    <testcase classname='CoreTests.TrackableTests' name='test_TrackableComparision_ShouldBeEqual' time='0.004'/>
    <testcase classname='CoreTests.TrackableTests' name='test_TrackablesContainsTrackable_ShouldContain' time='0.002'/>
    <testcase classname='CoreTests.TrackableTests' name='test_TrackablesContainsTrackable_ShouldNotContain' time='0.002'/>
  </testsuite>
  <testsuite name='CoreTests.VersionTest' tests='1' failures='0'>
    <testcase classname='CoreTests.VersionTest' name='testCurrentVersionIsSetAndSemantic' time='0.004'/>
  </testsuite>
  <testsuite name='InternalTests.ConnectionConfigurationTests' tests='6' failures='0'>
    <testcase classname='InternalTests.ConnectionConfigurationTests' name='test_getClientOptions_populatesClientId' time='0.008'/>
    <testcase classname='InternalTests.ConnectionConfigurationTests' name='testBasicAuthenticationConstructor' time='0.005'/>
    <testcase classname='InternalTests.ConnectionConfigurationTests' name='testRemainPresentForMillisecondsPassesToAblySDK' time='0.005'/>
    <testcase classname='InternalTests.ConnectionConfigurationTests' name='testTokenAuthenticationPassesTokenStringToAblySdk' time='0.005'/>
    <testcase classname='InternalTests.ConnectionConfigurationTests' name='testTokenAuthenticationReturningTokenDetailsPassesItToAblySDK' time='0.004'/>
    <testcase classname='InternalTests.ConnectionConfigurationTests' name='testTokenAuthenticationReturningTokenRequestPassedItToAblySDK' time='0.003'/>
  </testsuite>
  <testsuite name='InternalTests.DefaultAblyTests' tests='11' failures='0'>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenChannelIsInDetachedState_itAttachesToTheChannelBeforeCallingPresenceEnter' time='0.006'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenChannelIsInFailedState_itAttachesToTheChannelBeforeCallingPresenceEnter' time='0.004'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenConfiguredToUseToken_whenPresenceEnterFails_withAnErrorRelatedToCapabilities_itCallsAuthorize_andWhenAuthorizeFails_itFails' time='0.006'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenConfiguredToUseToken_whenPresenceEnterFails_withAnErrorRelatedToCapabilities_itCallsAuthorize_andWhenAuthorizeSucceeds_itAttachesToTheChannel_andWhenAttachFails_itFails' time='0.006'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenConfiguredToUseToken_whenPresenceEnterFails_withAnErrorRelatedToCapabilities_itCallsAuthorize_andWhenAuthorizeSucceeds_itAttachesToTheChannel_andWhenAttachSucceeds_itRetriesPresenceEnter_andWhenTheSecondCallToPresenceEnterFails_itFails' time='0.005'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenConfiguredToUseToken_whenPresenceEnterFails_withAnErrorRelatedToCapabilities_itCallsAuthorize_andWhenAuthorizeSucceeds_itAttachesToTheChannel_andWhenAttachSucceeds_itRetriesPresenceEnter_andWhenTheSecondCallToPresenceEnterSucceeds_itSucceeds' time='0.005'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenConfiguredToUseToken_whenPresenceEnterFails_withAnErrorUnrelatedToCapabilities_itFails' time='0.005'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenConfiguredToUseToken_whenPresenceEnterSucceeds_itSucceeds' time='0.005'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenNotConfiguredToUseToken_whenPresenceEnterFails_withAnErrorRelatedToCapabilities_itFails' time='0.005'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_subscribeForRawEvents_whenItReceivesMalformedLocationMessageData_itCallsDidFailOnSubscriberDelegate_withInvalidMessageError' time='0.006'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_subscribeForRawEvents_whenItReceivesNonStringLocationMessageData_itCallsDidFailOnSubscriberDelegate_withInvalidMessageError' time='0.004'/>
  </testsuite>
  <testsuite name='InternalTests.PresenceDataTests' tests='5' failures='0'>
    <testcase classname='InternalTests.PresenceDataTests' name='testDeserializationFailure' time='0.003'/>
    <testcase classname='InternalTests.PresenceDataTests' name='testDeserializationPublisher' time='0.003'/>
    <testcase classname='InternalTests.PresenceDataTests' name='testDeserializationSubscriber' time='0.002'/>
    <testcase classname='InternalTests.PresenceDataTests' name='testSerializationPublisher' time='0.003'/>
    <testcase classname='InternalTests.PresenceDataTests' name='testSerializationSubscriber' time='0.002'/>
  </testsuite>
  <testsuite name='InternalTests.UtilsTests' tests='1' failures='0'>
    <testcase classname='InternalTests.UtilsTests' name='testARTErrorInfoHrefIsMappedProperlyToErrorInformationHref' time='0.003'/>
  </testsuite>
  <testsuite name='PublisherTests.DefaultPublisherTests' tests='31' failures='0'>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='test_closeConnection_failure' time='0.010'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='test_closeConnection_success' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='test_trackCalledMultipleTimes_shouldPass' time='0.010'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testAdd_error_thread' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testAdd_success' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testAdd_success_thread' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testAdd_track_error' time='0.003'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testAdd_track_success' time='0.009'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testChangeRoutingProfile_withActiveTrackableWithDestination_callsGetRouteOnRouteProvider_andWhenThatSucceeds_itUpdatesRoutingProfile_andCallsCallbackWithSuccess' time='0.005'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testChangeRoutingProfile_withActiveTrackableWithoutDestination_updatesRoutingProfile_andCallsCallbackWithSuccess' time='0.003'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testChangeRoutingProfile_withNoActiveTrackable_updatesRoutingProfile_andCallsCallbackWithSuccess' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultSkippedLocationsStateAddAndRemove' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultSkippedLocationsStateCapacityOverflow' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultSkippedLocationsStateClearAll' time='0.003'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultTrackableStatePending' time='0.001'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultTrackableStateRemove' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultTrackableStateRetry' time='0.001'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultTrackableStateWaiting' time='0.004'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_activeTrackable' time='0.004'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_error' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_error_thread' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_nonActiveTrackable' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_success' time='0.031'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_success_thread' time='0.005'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testStopEventCauseImpossibilityOfEnqueueOtherEvents' time='0.007'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_destination' time='0.005'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_error_ably_service_error' time='0.004'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_failureMainThread' time='0.005'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_success' time='0.006'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_successMainThread' time='0.006'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_trackableAddedEarlier' time='0.009'/>
  </testsuite>
  <testsuite name='PublisherTests.DefaultPublisher_LocationServiceTests' tests='13' failures='0'>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='test_addFirstTrackable_callsStartRecordingLocationOnLocationService' time='0.021'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='test_addSecondTrackable_doesNotCallStartRecordingLocationOnLocationService' time='0.005'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='test_stop_callsStopRecordingLocationOnLocationService_andWhenThatDoesNotReturnALocationRecordingResult_itDoesNotCallDidFinishRecordingLocationHistoryDataOnDelegate_andDoesNotCallDidFinishRecordingRawMapboxDataOnDelegate_butStillSuccessfullyStops' time='0.004'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='test_stop_callsStopRecordingLocationOnLocationService_andWhenThatFails_itDoesNotCallDidFinishRecordingLocationHistoryDataOnDelegate_andDoesNotCallDidFinishRecordingRawMapboxDataOnDelegate_butStillSuccessfullyStops' time='0.004'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='test_stop_callsStopRecordingLocationOnLocationService_andWhenThatReturnsALocationRecordingResult_itCallsDidFinishRecordingLocationHistoryDataOnDelegate_andCallsDidFinishRecordingRawMapboxDataOnDelegate_andSuccessfullyStops' time='0.005'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testLocationService_didFailWithError' time='0.004'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testLocationService_didUpdateEnhancedLocation' time='0.004'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testLocationService_didUpdateEnhancedLocation_resolution' time='2.029'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testPublisherSendEnhancedLocationWillAddToWaitingQueuePendingMessage' time='0.003'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testPublisherWillAttachSkippedLocationsToNextRequest' time='0.004'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testPublisherWillRetryOnFailureOnSendEnhancedLocationUpdate' time='0.002'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testShouldNotSendRawMessageIfTheyAreDisabled' time='5.008'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testShouldSendRawMessageIfTheyAreEnabled' time='0.003'/>
  </testsuite>
  <testsuite name='PublisherTests.DefaultResolutionPolicyTests' tests='11' failures='0'>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveRequest_batteryMultiplier' time='0.003'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveRequest_constrained_multipleRemoteResolutions' time='0.006'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveRequest_constrained_multipleRemoteResolutions_battery' time='0.001'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveRequest_multipleRemoteResolutions' time='0.001'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveRequest_noRemoteRequests' time='0.001'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveRequest_oneRemoteResolution' time='0.001'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveRequest_withConstraints_noRemoteRequests' time='0.001'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveResolutions_farWithoutSubscriber' time='0.001'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveResolutions_farWithSubscriber' time='0.002'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveResolutions_nearWithoutSubscriber' time='0.002'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveResolutions_nearWithSubscriber' time='0.001'/>
  </testsuite>
  <testsuite name='PublisherTests.LocationHistoryDataTests' tests='7' failures='0'>
    <testcase classname='PublisherTests.LocationHistoryDataTests' name='testAgents' time='0.007'/>
    <testcase classname='PublisherTests.LocationHistoryDataTests' name='testDecodable_decodesTestResource_version1_validAndroid' time='0.011'/>
    <testcase classname='PublisherTests.LocationHistoryDataTests' name='testDecodable_decodesTestResource_version2_valid2_0_0' time='0.005'/>
    <testcase classname='PublisherTests.LocationHistoryDataTests' name='testDecodable_withMajorVersionGreaterThan2_throwsUnsupportedVersionError' time='0.063'/>
    <testcase classname='PublisherTests.LocationHistoryDataTests' name='testEncodable_encodesAgents' time='0.002'/>
    <testcase classname='PublisherTests.LocationHistoryDataTests' name='testEncodable_encodesVersionAsSemanticVersionString' time='0.002'/>
    <testcase classname='PublisherTests.LocationHistoryDataTests' name='testVersionAlwaysReturns1' time='0.001'/>
  </testsuite>
  <testsuite name='PublisherTests.TemporaryFileTests' tests='2' failures='0'>
    <testcase classname='PublisherTests.TemporaryFileTests' name='testDeinit_removesFile' time='3.181'/>
    <testcase classname='PublisherTests.TemporaryFileTests' name='testStayAlive_doesntRemoveFileWhilstExecutingAction' time='0.002'/>
  </testsuite>
  <testsuite name='SubscriberTests.DefaultSubscriberTests' tests='18' failures='0'>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberResolutionPreference_failure' time='0.021'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberResolutionPreference_paramsCheck_resolutionIsNil' time='0.006'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberResolutionPreference_paramsCheck_resolutionIsNotNil' time='0.006'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberResolutionPreference_success' time='0.005'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberReturnsError_afterStopped' time='0.008'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStart_called' time='0.005'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStart_failure' time='0.008'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStart_success' time='0.010'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStop_afterStopped' time='0.012'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStop_called' time='0.019'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStop_failure' time='0.013'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStop_success' time='0.004'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenItHasAlreadyEmittedAFailedConnectionStatus_andItThenReceivesAConnectionStatusThatWouldMakeItOnline_itDoesNotEmitAnyMoreConnectionStatus' time='0.511'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenItReceivesAPublisherAbsentPresenceAction_itCallsDidUpdatePublisherPresenceOnDelegate_withIsPresentFalse' time='0.003'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenItReceivesAPublisherEnterPresenceAction_itCallsDidUpdatePublisherPresenceOnDelegate_withIsPresentTrue' time='0.002'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenItReceivesAPublisherLeavePresenceAction_itCallsDidUpdatePublisherPresenceOnDelegate_withIsPresentFalse' time='0.002'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenItReceivesAPublisherPresentPresenceAction_itCallsDidUpdatePublisherPresenceOnDelegate_withIsPresentTrue' time='0.003'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenSubscriberReceivesInvalidMessageErrorFromAblySubscriber_itEmitsAFailedConnectionStatus_andCallsDisconnectOnAblySubscriber' time='1.037'/>
  </testsuite>
  <testsuite name='SystemTests.ChannelModesTests' tests='1' failures='0'>
    <testcase classname='SystemTests.ChannelModesTests' name='testShouldCreateOnlyOnePublisherAndOneSubscriberConnection' time='7.947'/>
  </testsuite>
  <testsuite name='SystemTests.PublisherAndSubscriberSystemTests' tests='5' failures='0'>
    <testcase classname='SystemTests.PublisherAndSubscriberSystemTests' name='testSubscriberNotReceivesAssetConnectionStatus' time='5.009'/>
    <testcase classname='SystemTests.PublisherAndSubscriberSystemTests' name='testSubscriberReceivesAssetConnectionStatusWithBicycleProfile' time='0.638'/>
    <testcase classname='SystemTests.PublisherAndSubscriberSystemTests' name='testSubscriberReceivesAssetConnectionStatusWithCarProfile' time='0.697'/>
    <testcase classname='SystemTests.PublisherAndSubscriberSystemTests' name='testSubscriberReceivesPublisherMessageWithBicycleProfile' time='16.789'/>
    <testcase classname='SystemTests.PublisherAndSubscriberSystemTests' name='testSubscriberReceivesPublisherMessageWithCarProfile' time='16.631'/>
  </testsuite>
  <testsuite name='SystemTests.PublisherAuthenticationSystemTests' tests='6' failures='0'>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisher_usingTokenAuth_addTrackable_whenEnterPresenceGivesCapabilityError_reauthorizesAblyAndEntersPresenceWithNewToken' time='0.458'/>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisherConnectsWithApiKey' time='0.684'/>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisherConnectsWithJWT' time='1.070'/>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisherConnectsWithTokenDetails' time='0.735'/>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisherConnectsWithTokenRequest' time='0.672'/>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisherConnectsWithTokenString' time='0.721'/>
  </testsuite>
  <testsuite name='SystemTests.PublisherSystemTests' tests='1' failures='0'>
    <testcase classname='SystemTests.PublisherSystemTests' name='test_addTrackable_thenRemoveIt_thenAddAnotherTrackableWithSameId' time='0.671'/>
  </testsuite>
  <testsuite name='SystemTests.SubscriberAuthenticationSystemTests' tests='6' failures='0'>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriber_usingTokenAuth_start_whenEnterPresenceGivesCapabilityError_reauthorizesAblyAndEntersPresenceWithNewToken' time='1.272'/>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriberConnectsWithApiKey' time='0.577'/>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriberConnectsWithJWT' time='0.888'/>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriberConnectsWithTokenDetails' time='0.686'/>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriberConnectsWithTokenRequest' time='0.659'/>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriberConnectsWithTokenString' time='0.723'/>
  </testsuite>
  <testsuite name='SystemTests.SubscriberSystemTests' tests='1' failures='0'>
    <testcase classname='SystemTests.SubscriberSystemTests' name='test_whenSubscriberReceivesMalformedMessageDataFromAbly_itEmitsAFailedConnectionStatus' time='0.795'/>
  </testsuite>
  <testsuite name='UITests.DefaultLocationAnimatorCalculatorTests' tests='12' failures='0'>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenDisplayLinkHasFiredBefore_andThereAreLocationsAwaitingAnimation_andSomeOfTheDistanceBetweenTheFirstTwoLocationsHasAlreadyBeenAnimated_andTheNextLocationToEmitLiesBetweenTheFirstTwoLocations_itInterpolatesTheRemainderOfTheDistanceBetweenTheFirstTwoLocations_andDoesNotPopAnyLocations' time='0.010'/>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenDisplayLinkHasFiredBefore_andThereAreLocationsAwaitingAnimation_andSomeOfTheDistanceBetweenTheFirstTwoLocationsHasAlreadyBeenAnimated_andTheNextLocationToEmitLiesBetweenTheSecondAndThirdLocations_itInterpolatesBetweenTheSecondAndThirdLocations_andPopsTheFirstLocation' time='0.002'/>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenDisplayLinkHasFiredBefore_andThereAreLocationsAwaitingAnimation_andTheNextLocationToEmitLiesBetweenTheFirstTwoLocations_itInterpolatesBetweenTheFirstTwoLocations_andDoesNotPopAnyLocations' time='0.003'/>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenDisplayLinkHasFiredBefore_andThereAreLocationsAwaitingAnimation_andTheNextLocationToEmitLiesBetweenTheSecondAndThirdLocations_itInterpolatesBetweenTheSecondAndThirdLocations_andPopsTheFirstLocation' time='0.001'/>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenDisplayLinkHasFiredBefore_andThereIsOneLocationAwaitingAnimation_itEmitsThatLocation' time='0.002'/>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenDisplayLinkHasNotFiredBefore_andThereAreLocationsAwaitingAnimation_itEmitsTheFirstLocationAwaitingAnimation' time='0.001'/>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenDisplayLinkHasNotFiredBefore_andThereAreNoLocationsAwaitingAnimation_itReturnsANoOp' time='0.001'/>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenNextLocationUpdatePredictionIsNil_itReturnsANoOp' time='0.001'/>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenNumberOfLocationsPoppedSinceLastCameraUpdateIsNil_andThereIsAPositionToEmit_itEmitsACameraPositionUpdate' time='0.001'/>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenNumberOfLocationsPoppedSinceLastCameraUpdateIsOneLessThanAnimationStepsBetweenCameraUpdates_andThereIsALocationToPop_itEmitsACameraPositionUpdate' time='0.002'/>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenTheCurrentTimeExceedsTheExpectedNextLocationUpdateByMoreThanIntentionalAnimationDelay_itEmitsTheLastLocationAwaitingAnimation' time='0.001'/>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenThePredictedTimeToNextLocationUpdateHasPassed_itJustUsesTheIntentionalAnimationDelay' time='0.002'/>
  </testsuite>
</testsuites>