diff --git a/mediapipe/tasks/ios/test/text/text_classifier/MPPTextClassifierTests.m b/mediapipe/tasks/ios/test/text/text_classifier/MPPTextClassifierTests.m index a80fb8824..be449ccb9 100644 --- a/mediapipe/tasks/ios/test/text/text_classifier/MPPTextClassifierTests.m +++ b/mediapipe/tasks/ios/test/text/text_classifier/MPPTextClassifierTests.m @@ -28,9 +28,7 @@ static NSString *const kExpectedErrorDomain = @"com.google.mediapipe.tasks"; XCTAssertNotNil(error); \ XCTAssertEqualObjects(error.domain, expectedError.domain); \ XCTAssertEqual(error.code, expectedError.code); \ - XCTAssertNotEqual( \ - [error.localizedDescription rangeOfString:expectedError.localizedDescription].location, \ - NSNotFound) + XCTAssertEqualObjects(error.localizedDescription, expectedError.localizedDescription) #define AssertEqualCategoryArrays(categories, expectedCategories) \ XCTAssertEqual(categories.count, expectedCategories.count); \ diff --git a/mediapipe/tasks/ios/test/text/text_embedder/MPPTextEmbedderTests.m b/mediapipe/tasks/ios/test/text/text_embedder/MPPTextEmbedderTests.m index b32bb076c..aee2d9e2d 100644 --- a/mediapipe/tasks/ios/test/text/text_embedder/MPPTextEmbedderTests.m +++ b/mediapipe/tasks/ios/test/text/text_embedder/MPPTextEmbedderTests.m @@ -29,9 +29,7 @@ static const float kSimilarityDiffTolerance = 1e-4; XCTAssertNotNil(error); \ XCTAssertEqualObjects(error.domain, expectedError.domain); \ XCTAssertEqual(error.code, expectedError.code); \ - XCTAssertNotEqual( \ - [error.localizedDescription rangeOfString:expectedError.localizedDescription].location, \ - NSNotFound) + XCTAssertEqualObjects(error.localizedDescription, expectedError.localizedDescription) #define AssertTextEmbedderResultHasOneEmbedding(textEmbedderResult) \ XCTAssertNotNil(textEmbedderResult); \ diff --git a/mediapipe/tasks/ios/test/vision/image_classifier/MPPImageClassifierTests.m b/mediapipe/tasks/ios/test/vision/image_classifier/MPPImageClassifierTests.m index 8db71a11b..332a217ca 100644 --- a/mediapipe/tasks/ios/test/vision/image_classifier/MPPImageClassifierTests.m +++ b/mediapipe/tasks/ios/test/vision/image_classifier/MPPImageClassifierTests.m @@ -34,9 +34,7 @@ static NSString *const kLiveStreamTestsDictExpectationKey = @"expectation"; XCTAssertNotNil(error); \ XCTAssertEqualObjects(error.domain, expectedError.domain); \ XCTAssertEqual(error.code, expectedError.code); \ - XCTAssertNotEqual( \ - [error.localizedDescription rangeOfString:expectedError.localizedDescription].location, \ - NSNotFound) + XCTAssertEqualObjects(error.localizedDescription, expectedError.localizedDescription) #define AssertEqualCategoryArrays(categories, expectedCategories) \ XCTAssertEqual(categories.count, expectedCategories.count); \ diff --git a/mediapipe/tasks/ios/test/vision/object_detector/MPPObjectDetectorTests.m b/mediapipe/tasks/ios/test/vision/object_detector/MPPObjectDetectorTests.m index 164159ed6..1b717ba48 100644 --- a/mediapipe/tasks/ios/test/vision/object_detector/MPPObjectDetectorTests.m +++ b/mediapipe/tasks/ios/test/vision/object_detector/MPPObjectDetectorTests.m @@ -32,9 +32,7 @@ static NSString *const kLiveStreamTestsDictExpectationKey = @"expectation"; XCTAssertNotNil(error); \ XCTAssertEqualObjects(error.domain, expectedError.domain); \ XCTAssertEqual(error.code, expectedError.code); \ - XCTAssertNotEqual( \ - [error.localizedDescription rangeOfString:expectedError.localizedDescription].location, \ - NSNotFound) + XCTAssertEqualObjects(error.localizedDescription, expectedError.localizedDescription) #define AssertEqualCategories(category, expectedCategory, detectionIndex, categoryIndex) \ XCTAssertEqual(category.index, expectedCategory.index, \ diff --git a/mediapipe/tasks/ios/vision/image_classifier/utils/sources/MPPImageClassifierResult+Helpers.mm b/mediapipe/tasks/ios/vision/image_classifier/utils/sources/MPPImageClassifierResult+Helpers.mm index 61ae785d1..7874b29c9 100644 --- a/mediapipe/tasks/ios/vision/image_classifier/utils/sources/MPPImageClassifierResult+Helpers.mm +++ b/mediapipe/tasks/ios/vision/image_classifier/utils/sources/MPPImageClassifierResult+Helpers.mm @@ -17,7 +17,7 @@ #include "mediapipe/tasks/cc/components/containers/proto/classifications.pb.h" -static const int kMicroSecondsPerMilliSecond = 1000; +static const int kMicrosecondsPerMillisecond = 1000; namespace { using ClassificationResultProto = @@ -29,19 +29,26 @@ using ::mediapipe::Packet; + (nullable MPPImageClassifierResult *)imageClassifierResultWithClassificationsPacket: (const Packet &)packet { - MPPClassificationResult *classificationResult; + // Even if packet does not validate as the expected type, you can safely access the timestamp. + NSInteger timestampInMilliSeconds = + (NSInteger)(packet.Timestamp().Value() / kMicrosecondsPerMillisecond); if (!packet.ValidateAsType().ok()) { - return nil; + // MPPClassificationResult's timestamp is populated from timestamp `ClassificationResultProto`'s + // timestamp_ms(). It is 0 since the packet can't be validated as a `ClassificationResultProto`. + return [[MPPImageClassifierResult alloc] + initWithClassificationResult:[[MPPClassificationResult alloc] initWithClassifications:@[] + timestampInMilliseconds:0] + timestampInMilliseconds:timestampInMilliSeconds]; } - classificationResult = [MPPClassificationResult + MPPClassificationResult *classificationResult = [MPPClassificationResult classificationResultWithProto:packet.Get()]; return [[MPPImageClassifierResult alloc] initWithClassificationResult:classificationResult timestampInMilliseconds:(NSInteger)(packet.Timestamp().Value() / - kMicroSecondsPerMilliSecond)]; + kMicrosecondsPerMillisecond)]; } @end