<testsuites name='UITests.xctest' tests='177' failures='0'>
  <testsuite name='CoreTests.GeoJSONGeometryCLLocationTests' tests='7' failures='0'>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_CheckValues' time='0.008'/>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_Latitude_InRange' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_Latitude_OutOfRange_Above' time='0.004'/>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_Latitude_OutOfRange_Below' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCLLocationTests' name='testGeoJsonGeometryFromLocation_Longitude_InRange' time='0.001'/>
    <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.005'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidCoordinatesCount_EmptyArray' time='0.005'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidCoordinatesCount_ToLittle' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidCoordinatesCount_TooMuch' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidLatitude_AboveRange' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidLatitude_BelowRange' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidLongitude_AboveRange' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_InvalidLongitude_BelowRange' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONGeometryCodableTests' name='testGeoJsonGeometryFromJson_ValidCoordinatesCount' time='0.002'/>
    <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.004'/>
    <testcase classname='CoreTests.GeoJSONMessageCodableTests' name='testGeoJsonMessageFromJson_InvalidJson' time='0.002'/>
    <testcase classname='CoreTests.GeoJSONMessageCodableTests' name='testGeoJsonMessageFromJson_Type' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONMessageCodableTests' name='testGeoJsonMessageFromJson_ValidJson' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONMessageCodableTests' name='testGeoJsonMessageFromJson_ValidJson_CheckValues' time='0.001'/>
  </testsuite>
  <testsuite name='CoreTests.GeoJSONPropertiesCLLocationTests' tests='15' failures='0'>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_InvalidBearingAccuracy' time='0.003'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_InvalidBearing' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_InvalidHorizontalAccuracy_LessThanZero' time='0.001'/>
    <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.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_Timestamp' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_ValidBearingAccuracy' time='0.002'/>
    <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.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCLLocationTests' name='testGeoJsonPropertiesFromCLLocation_ValidVerticalAccuracy' time='0.003'/>
  </testsuite>
  <testsuite name='CoreTests.GeoJSONPropertiesCodableTests' tests='15' failures='0'>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_InvalidBearing_LessThanZero' time='0.002'/>
    <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.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_InvalidVerticalAccuracy_LessThanZero' time='0.003'/>
    <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.001'/>
    <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.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_ValidSpeed' time='0.001'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJson_ValidVerticalAccuracy' time='0.003'/>
    <testcase classname='CoreTests.GeoJSONPropertiesCodableTests' name='testGeoJsonPropertiesFromJsonCoding' time='0.001'/>
  </testsuite>
  <testsuite name='CoreTests.GeoJsonMessageCLLocationTests' tests='3' failures='0'>
    <testcase classname='CoreTests.GeoJsonMessageCLLocationTests' name='testGeoJsonMessageFromCLLocation_CheckValues' time='0.001'/>
    <testcase classname='CoreTests.GeoJsonMessageCLLocationTests' name='testGeoJsonMessageFromCLLocation_InvalidLocation' time='0.002'/>
    <testcase classname='CoreTests.GeoJsonMessageCLLocationTests' name='testGeoJsonMessageFromCLLocation_ValidLocation' time='0.002'/>
  </testsuite>
  <testsuite name='CoreTests.TrackableTests' tests='3' failures='0'>
    <testcase classname='CoreTests.TrackableTests' name='test_TrackableComparision_ShouldBeEqual' time='0.003'/>
    <testcase classname='CoreTests.TrackableTests' name='test_TrackablesContainsTrackable_ShouldContain' time='0.001'/>
    <testcase classname='CoreTests.TrackableTests' name='test_TrackablesContainsTrackable_ShouldNotContain' time='0.001'/>
  </testsuite>
  <testsuite name='CoreTests.VersionTest' tests='1' failures='0'>
    <testcase classname='CoreTests.VersionTest' name='testCurrentVersionIsSetAndSemantic' time='0.001'/>
  </testsuite>
  <testsuite name='InternalTests.ConnectionConfigurationTests' tests='4' failures='0'>
    <testcase classname='InternalTests.ConnectionConfigurationTests' name='testBasicAuthenticationConstructor' time='0.060'/>
    <testcase classname='InternalTests.ConnectionConfigurationTests' name='testTokenAuthenticationPassesTokenStringToAblySdk' time='0.032'/>
    <testcase classname='InternalTests.ConnectionConfigurationTests' name='testTokenAuthenticationReturningTokenDetailsPassesItToAblySDK' time='0.002'/>
    <testcase classname='InternalTests.ConnectionConfigurationTests' name='testTokenAuthenticationReturningTokenRequestPassedItToAblySDK' time='0.002'/>
  </testsuite>
  <testsuite name='InternalTests.DefaultAblyTests' tests='9' failures='0'>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenConfiguredToUseToken_whenPresenceEnterFails_withAnErrorRelatedToCapabilities_itCallsAuthorize_andWhenAuthorizeFails_itFails' time='0.017'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenConfiguredToUseToken_whenPresenceEnterFails_withAnErrorRelatedToCapabilities_itCallsAuthorize_andWhenAuthorizeSucceeds_itAttachesToTheChannel_andWhenAttachFails_itFails' time='0.003'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenConfiguredToUseToken_whenPresenceEnterFails_withAnErrorRelatedToCapabilities_itCallsAuthorize_andWhenAuthorizeSucceeds_itAttachesToTheChannel_andWhenAttachSucceeds_itRetriesPresenceEnter_andWhenTheSecondCallToPresenceEnterFails_itFails' time='0.003'/>
    <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.002'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenConfiguredToUseToken_whenPresenceEnterSucceeds_itSucceeds' time='0.002'/>
    <testcase classname='InternalTests.DefaultAblyTests' name='test_connect_whenNotConfiguredToUseToken_whenPresenceEnterFails_withAnErrorRelatedToCapabilities_itFails' time='0.002'/>
    <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.008'/>
  </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.012'/>
    <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.003'/>
  </testsuite>
  <testsuite name='InternalTests.UtilsTests' tests='1' failures='0'>
    <testcase classname='InternalTests.UtilsTests' name='testARTErrorInfoHrefIsMappedProperlyToErrorInformationHref' time='0.004'/>
  </testsuite>
  <testsuite name='PublisherTests.DefaultPublisherTests' tests='30' failures='0'>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='test_closeConnection_failure' time='0.024'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='test_closeConnection_success' time='0.006'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='test_trackCalledMultipleTimes_shouldPass' time='0.033'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testAdd_error_thread' time='0.006'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testAdd_success' time='0.018'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testAdd_success_thread' time='0.013'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testAdd_track_error' time='0.005'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testAdd_track_success' time='0.007'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testChangeRoutingProfile_called' time='0.004'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testChangeRoutingProfile_shouldCallGetRouteForDestination' time='0.003'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultSkippedLocationsStateAddAndRemove' time='0.003'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultSkippedLocationsStateCapacityOverflow' time='0.003'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultSkippedLocationsStateClearAll' time='0.003'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultTrackableStatePending' time='0.011'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultTrackableStateRemove' time='0.006'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultTrackableStateRetry' time='0.003'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testDefaultTrackableStateWaiting' time='0.003'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_activeTrackable' time='0.008'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_error' time='0.006'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_error_thread' time='0.007'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_nonActiveTrackable' time='0.011'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_success' time='0.012'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testRemove_success_thread' time='0.005'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testStopEventCauseImpossibilityOfEnqueueOtherEvents' time='0.008'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_destination' time='0.005'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_error_ably_service_error' time='0.005'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_failureMainThread' time='0.006'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_success' time='0.007'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_successMainThread' time='0.008'/>
    <testcase classname='PublisherTests.DefaultPublisherTests' name='testTrack_trackableAddedEarlier' time='0.007'/>
  </testsuite>
  <testsuite name='PublisherTests.DefaultPublisher_LocationServiceTests' tests='8' failures='0'>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testLocationService_didFailWithError' time='0.005'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testLocationService_didUpdateEnhancedLocation' time='0.006'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testLocationService_didUpdateEnhancedLocation_resolution' time='2.012'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testPublisherSendEnhancedLocationWillAddToWaitingQueuePendingMessage' time='0.010'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testPublisherWillAttachSkippedLocationsToNextRequest' time='0.009'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testPublisherWillRetryOnFailureOnSendEnhancedLocationUpdate' time='0.006'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testShouldNotSendRawMessageIfTheyAreDisabled' time='5.012'/>
    <testcase classname='PublisherTests.DefaultPublisher_LocationServiceTests' name='testShouldSendRawMessageIfTheyAreEnabled' time='0.006'/>
  </testsuite>
  <testsuite name='PublisherTests.DefaultResolutionPolicyTests' tests='11' failures='0'>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveRequest_batteryMultiplier' time='0.008'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveRequest_constrained_multipleRemoteResolutions' time='0.008'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveRequest_constrained_multipleRemoteResolutions_battery' time='0.002'/>
    <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.001'/>
    <testcase classname='PublisherTests.DefaultResolutionPolicyTests' name='testResolutionPolicy_resolveResolutions_nearWithSubscriber' time='0.002'/>
  </testsuite>
  <testsuite name='SubscriberTests.DefaultSubscriberTests' tests='18' failures='0'>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberResolutionPreference_failure' time='0.010'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberResolutionPreference_paramsCheck_resolutionIsNil' time='0.002'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberResolutionPreference_paramsCheck_resolutionIsNotNil' time='0.002'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberResolutionPreference_success' time='0.002'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberReturnsError_afterStopped' time='0.003'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStart_called' time='0.002'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStart_failure' time='0.002'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStart_success' time='0.007'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStop_afterStopped' time='0.016'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStop_called' time='0.002'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStop_failure' time='0.002'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_subscriberStop_success' time='0.002'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenItHasAlreadyEmittedAFailedConnectionStatus_andItThenReceivesAConnectionStatusThatWouldMakeItOnline_itDoesNotEmitAnyMoreConnectionStatus' time='0.526'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenItReceivesAPublisherAbsentPresenceAction_itCallsDidUpdatePublisherPresenceOnDelegate_withIsPresentFalse' time='0.004'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenItReceivesAPublisherEnterPresenceAction_itCallsDidUpdatePublisherPresenceOnDelegate_withIsPresentTrue' time='0.003'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenItReceivesAPublisherLeavePresenceAction_itCallsDidUpdatePublisherPresenceOnDelegate_withIsPresentFalse' time='0.003'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenItReceivesAPublisherPresentPresenceAction_itCallsDidUpdatePublisherPresenceOnDelegate_withIsPresentTrue' time='0.003'/>
    <testcase classname='SubscriberTests.DefaultSubscriberTests' name='test_whenSubscriberReceivesInvalidMessageErrorFromAblySubscriber_itEmitsAFailedConnectionStatus_andCallsDisconnectOnAblySubscriber' time='1.010'/>
  </testsuite>
  <testsuite name='SystemTests.ChannelModesTests' tests='1' failures='0'>
    <testcase classname='SystemTests.ChannelModesTests' name='testShouldCreateOnlyOnePublisherAndOneSubscriberConnection' time='9.008'/>
  </testsuite>
  <testsuite name='SystemTests.PublisherAndSubscriberSystemTests' tests='5' failures='0'>
    <testcase classname='SystemTests.PublisherAndSubscriberSystemTests' name='testSubscriberNotReceivesAssetConnectionStatus' time='5.015'/>
    <testcase classname='SystemTests.PublisherAndSubscriberSystemTests' name='testSubscriberReceivesAssetConnectionStatusWithBicycleProfile' time='1.649'/>
    <testcase classname='SystemTests.PublisherAndSubscriberSystemTests' name='testSubscriberReceivesAssetConnectionStatusWithCarProfile' time='1.093'/>
    <testcase classname='SystemTests.PublisherAndSubscriberSystemTests' name='testSubscriberReceivesPublisherMessageWithBicycleProfile' time='17.110'/>
    <testcase classname='SystemTests.PublisherAndSubscriberSystemTests' name='testSubscriberReceivesPublisherMessageWithCarProfile' time='16.987'/>
  </testsuite>
  <testsuite name='SystemTests.PublisherAuthenticationSystemTests' tests='6' failures='0'>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisher_usingTokenAuth_addTrackable_whenEnterPresenceGivesCapabilityError_reauthorizesAblyAndEntersPresenceWithNewToken' time='1.144'/>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisherConnectsWithApiKey' time='1.012'/>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisherConnectsWithJWT' time='1.069'/>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisherConnectsWithTokenDetails' time='1.035'/>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisherConnectsWithTokenRequest' time='0.938'/>
    <testcase classname='SystemTests.PublisherAuthenticationSystemTests' name='testPublisherConnectsWithTokenString' time='1.039'/>
  </testsuite>
  <testsuite name='SystemTests.SubscriberAuthenticationSystemTests' tests='6' failures='0'>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriber_usingTokenAuth_start_whenEnterPresenceGivesCapabilityError_reauthorizesAblyAndEntersPresenceWithNewToken' time='2.320'/>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriberConnectsWithApiKey' time='0.861'/>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriberConnectsWithJWT' time='1.354'/>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriberConnectsWithTokenDetails' time='1.084'/>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriberConnectsWithTokenRequest' time='0.779'/>
    <testcase classname='SystemTests.SubscriberAuthenticationSystemTests' name='testSubscriberConnectsWithTokenString' time='0.988'/>
  </testsuite>
  <testsuite name='SystemTests.SubscriberSystemTests' tests='1' failures='0'>
    <testcase classname='SystemTests.SubscriberSystemTests' name='test_whenSubscriberReceivesMalformedMessageDataFromAbly_itEmitsAFailedConnectionStatus' time='1.150'/>
  </testsuite>
  <testsuite name='UITests.DefaultLocationAnimatorCalculatorTests' tests='12' failures='0'>
    <testcase classname='UITests.DefaultLocationAnimatorCalculatorTests' name='test_calculate_whenDisplayLinkHasFiredBefore_andThereAreLocationsAwaitingAnimation_andSomeOfTheDistanceBetweenTheFirstTwoLocationsHasAlreadyBeenAnimated_andTheNextLocationToEmitLiesBetweenTheFirstTwoLocations_itInterpolatesTheRemainderOfTheDistanceBetweenTheFirstTwoLocations_andDoesNotPopAnyLocations' time='0.008'/>
    <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.002'/>
    <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.002'/>
    <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.003'/>
    <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>