diff --git a/mediapipe/tasks/ios/test/vision/image_segmenter/utils/BUILD b/mediapipe/tasks/ios/test/vision/image_segmenter/utils/BUILD deleted file mode 100644 index 74f2bd11a..000000000 --- a/mediapipe/tasks/ios/test/vision/image_segmenter/utils/BUILD +++ /dev/null @@ -1,55 +0,0 @@ -load("@build_bazel_rules_apple//apple:ios.bzl", "ios_unit_test") -load( - "//mediapipe/framework/tool:ios.bzl", - "MPP_TASK_MINIMUM_OS_VERSION", -) -load( - "@org_tensorflow//tensorflow/lite:special_rules.bzl", - "tflite_ios_lab_runner", -) - -package(default_visibility = ["//mediapipe/tasks:internal"]) - -licenses(["notice"]) - -# Default tags for filtering iOS targets. Targets are restricted to Apple platforms. -TFL_DEFAULT_TAGS = [ - "apple", -] - -# Following sanitizer tests are not supported by iOS test targets. -TFL_DISABLED_SANITIZER_TAGS = [ - "noasan", - "nomsan", - "notsan", -] - -objc_library( - name = "MPPFaceLandmarkeResultHelpersTestLibary", - testonly = 1, - srcs = ["sources/MPPFaceLandmarkerResult+HelpersTests.mm"], - copts = [ - "-ObjC++", - "-std=c++17", - "-x objective-c++", - ], - deps = [ - "//mediapipe/framework:packet", - "//mediapipe/framework/formats:classification_cc_proto", - "//mediapipe/framework/formats:landmark_cc_proto", - "//mediapipe/framework/formats:matrix_data_cc_proto", - "//mediapipe/tasks/cc/vision/face_geometry/proto:face_geometry_cc_proto", - "//mediapipe/tasks/ios/vision/face_landmarker:MPPFaceLandmarkerResult", - "//mediapipe/tasks/ios/vision/face_landmarker/utils:MPPFaceLandmarkerResultHelpers", - ], -) - -ios_unit_test( - name = "MPPFaceLandmarkeResultHelpersTest", - minimum_os_version = MPP_TASK_MINIMUM_OS_VERSION, - runner = tflite_ios_lab_runner("IOS_LATEST"), - tags = TFL_DEFAULT_TAGS + TFL_DISABLED_SANITIZER_TAGS, - deps = [ - ":MPPFaceLandmarkeResultHelpersTestLibary", - ], -) diff --git a/mediapipe/tasks/ios/test/vision/image_segmenter/utils/sources/MPPFaceLandmarkerResult+HelpersTests.mm b/mediapipe/tasks/ios/test/vision/image_segmenter/utils/sources/MPPFaceLandmarkerResult+HelpersTests.mm deleted file mode 100644 index 3572aa47e..000000000 --- a/mediapipe/tasks/ios/test/vision/image_segmenter/utils/sources/MPPFaceLandmarkerResult+HelpersTests.mm +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2023 The MediaPipe Authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#import - -#include "mediapipe/framework/formats/classification.pb.h" -#include "mediapipe/framework/formats/landmark.pb.h" -#include "mediapipe/framework/formats/matrix_data.pb.h" -#include "mediapipe/framework/packet.h" -#include "mediapipe/tasks/cc/vision/face_geometry/proto/face_geometry.pb.h" -#import "mediapipe/tasks/ios/vision/face_landmarker/sources/MPPFaceLandmarkerResult.h" -#import "mediapipe/tasks/ios/vision/face_landmarker/utils/sources/MPPFaceLandmarkerResult+Helpers.h" - -using ::mediapipe::MakePacket; -using ::mediapipe::Packet; -using ::mediapipe::Timestamp; -using NormalizedLandmarkListProto = ::mediapipe::NormalizedLandmarkList; -using ClassificationListProto = ::mediapipe::ClassificationList; -using FaceGeometryProto = ::mediapipe::tasks::vision::face_geometry::proto::FaceGeometry; - -static constexpr int kMicrosecondsPerMillisecond = 1000; - -@interface MPPLandmarkerResultHelpersTests : XCTestCase { -} -@end - -@implementation MPPLandmarkerResultHelpersTests - -- (void)testCreatesResultFromLandmarkerPackets { - const std::vector normalizedLandmarkProtos({{}}); - const std::vector classificationProtos({{}}); - const std::vector faceGeometryProto({{}}); - - const auto landmarksPacket = - MakePacket>(normalizedLandmarkProtos) - .At(Timestamp(42 * kMicrosecondsPerMillisecond)); - const auto classificationsPacket = - MakePacket>(classificationProtos) - .At(Timestamp(42 * kMicrosecondsPerMillisecond)); - const auto faceGeometryPacket = MakePacket>(faceGeometryProto) - .At(Timestamp(42 * kMicrosecondsPerMillisecond)); - - MPPFaceLandmarkerResult *results = - [MPPFaceLandmarkerResult faceLandmarkerResultWithLandmarksPacket:landmarksPacket - blendshapesPacket:classificationsPacket - transformationMatrixesPacket:faceGeometryPacket]; - - XCTAssertEqual(results.faceLandmarks.count, 1); - XCTAssertEqual(results.faceBlendshapes.count, 1); - XCTAssertEqual(results.facialTransformationMatrixes.count, 1); - XCTAssertEqual(results.timestampInMilliseconds, 42); -} - -- (void)testCreatesCreatesCopyOfFacialTransformationMatrix { - MPPFaceLandmarkerResult *results; - - { - // Create scope so that FaceGeometryProto gets deallocated before we access the - // MPPFaceLandmarkerResult. - FaceGeometryProto faceGeometryProto{}; - auto *matrixData = faceGeometryProto.mutable_pose_transform_matrix(); - matrixData->set_cols(4); - matrixData->set_rows(4); - for (size_t i = 0; i < 4 * 4; ++i) { - matrixData->add_packed_data(0.1f * i); - } - - const std::vector faceGeometryProtos({faceGeometryProto}); - const auto faceGeometryPacket = MakePacket>(faceGeometryProtos); - results = [MPPFaceLandmarkerResult faceLandmarkerResultWithLandmarksPacket:{} - blendshapesPacket:{} - transformationMatrixesPacket:faceGeometryPacket]; - } - - XCTAssertEqual(results.facialTransformationMatrixes.count, 1); - XCTAssertEqual(results.facialTransformationMatrixes[0].rows, 4); - XCTAssertEqual(results.facialTransformationMatrixes[0].columns, 4); - for (size_t column = 0; column < 4; ++column) { - for (size_t row = 0; row < 4; ++row) { - XCTAssertEqualWithAccuracy( - [results.facialTransformationMatrixes[0] valueAtRow:row column:column], - 0.4f * row + 0.1f * column, /* accuracy= */ 0.0001f, @"at [%zu,%zu]", column, row); - } - } -} - -- (void)testCreatesResultFromEmptyPackets { - const Packet emptyPacket = Packet{}.At(Timestamp(0)); - MPPFaceLandmarkerResult *results = - [MPPFaceLandmarkerResult faceLandmarkerResultWithLandmarksPacket:emptyPacket - blendshapesPacket:emptyPacket - transformationMatrixesPacket:emptyPacket]; - - NSArray *emptyArray = [NSArray array]; - XCTAssertEqualObjects(results.faceLandmarks, emptyArray); - XCTAssertEqualObjects(results.faceBlendshapes, emptyArray); - XCTAssertEqualObjects(results.facialTransformationMatrixes, emptyArray); - XCTAssertEqual(results.timestampInMilliseconds, 0); -} - -@end