Commit 2327f4ca authored by junweifu's avatar junweifu Committed by Commit Bot

Add services unittests for landmarks points on Mac

The landmarks is one point with the implementation of Core Image Framework,
but an array of points along landmarks are more accurate with Vision Framework.

Bug=835078

Cq-Include-Trybots: luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win10_chromium_x64_rel_ng
Change-Id: I8b09068bc95309fc66d3a8bd6726ac951815eb4f
Reviewed-on: https://chromium-review.googlesource.com/1070766Reviewed-by: default avatarMiguel Casas <mcasas@chromium.org>
Commit-Queue: Junwei Fu <junwei.fu@intel.com>
Cr-Commit-Position: refs/heads/master@{#561719}
parent 503fae89
...@@ -63,19 +63,20 @@ struct TestParams { ...@@ -63,19 +63,20 @@ struct TestParams {
const char* image_path; const char* image_path;
size_t num_faces; size_t num_faces;
size_t num_landmarks; size_t num_landmarks;
size_t num_mouth_points;
FaceDetectorFactory factory; FaceDetectorFactory factory;
} kTestParams[] = { } kTestParams[] = {
{false, 120, 120, "services/test/data/mona_lisa.jpg", 1, 3, {false, 120, 120, "services/test/data/mona_lisa.jpg", 1, 3, 1,
base::Bind(&CreateFaceDetectorImplMac)}, base::Bind(&CreateFaceDetectorImplMac)},
{true, 120, 120, "services/test/data/mona_lisa.jpg", 1, 3, {true, 120, 120, "services/test/data/mona_lisa.jpg", 1, 3, 1,
base::Bind(&CreateFaceDetectorImplMac)}, base::Bind(&CreateFaceDetectorImplMac)},
{false, 120, 120, "services/test/data/mona_lisa.jpg", 1, 4, {false, 120, 120, "services/test/data/mona_lisa.jpg", 1, 4, 10,
base::Bind(&CreateFaceDetectorImplMacVision)}, base::Bind(&CreateFaceDetectorImplMacVision)},
{false, 240, 240, "services/test/data/the_beatles.jpg", 3, 3, {false, 240, 240, "services/test/data/the_beatles.jpg", 3, 3, 1,
base::Bind(&CreateFaceDetectorImplMac)}, base::Bind(&CreateFaceDetectorImplMac)},
{true, 240, 240, "services/test/data/the_beatles.jpg", 3, 3, {true, 240, 240, "services/test/data/the_beatles.jpg", 3, 3, 1,
base::Bind(&CreateFaceDetectorImplMac)}, base::Bind(&CreateFaceDetectorImplMac)},
{false, 240, 240, "services/test/data/the_beatles.jpg", 4, 4, {false, 240, 240, "services/test/data/the_beatles.jpg", 4, 4, 10,
base::Bind(&CreateFaceDetectorImplMacVision)}, base::Bind(&CreateFaceDetectorImplMacVision)},
}; };
...@@ -85,15 +86,15 @@ class FaceDetectionImplMacTest : public TestWithParam<struct TestParams> { ...@@ -85,15 +86,15 @@ class FaceDetectionImplMacTest : public TestWithParam<struct TestParams> {
void DetectCallback(size_t num_faces, void DetectCallback(size_t num_faces,
size_t num_landmarks, size_t num_landmarks,
size_t num_mouth_points,
std::vector<mojom::FaceDetectionResultPtr> results) { std::vector<mojom::FaceDetectionResultPtr> results) {
EXPECT_EQ(num_faces, results.size()); EXPECT_EQ(num_faces, results.size());
for (const auto& face : results) { for (const auto& face : results) {
EXPECT_EQ(num_landmarks, face->landmarks.size()); EXPECT_EQ(num_landmarks, face->landmarks.size());
if (face->landmarks.size() == 3u) { EXPECT_EQ(mojom::LandmarkType::EYE, face->landmarks[0]->type);
EXPECT_EQ(mojom::LandmarkType::EYE, face->landmarks[0]->type); EXPECT_EQ(mojom::LandmarkType::EYE, face->landmarks[1]->type);
EXPECT_EQ(mojom::LandmarkType::EYE, face->landmarks[1]->type); EXPECT_EQ(mojom::LandmarkType::MOUTH, face->landmarks[2]->type);
EXPECT_EQ(mojom::LandmarkType::MOUTH, face->landmarks[2]->type); EXPECT_EQ(num_mouth_points, face->landmarks[2]->locations.size());
}
} }
Detection(); Detection();
} }
...@@ -151,10 +152,11 @@ TEST_P(FaceDetectionImplMacTest, ScanOneFace) { ...@@ -151,10 +152,11 @@ TEST_P(FaceDetectionImplMacTest, ScanOneFace) {
base::Closure quit_closure = run_loop.QuitClosure(); base::Closure quit_closure = run_loop.QuitClosure();
// Send the image to Detect() and expect the response in callback. // Send the image to Detect() and expect the response in callback.
EXPECT_CALL(*this, Detection()).WillOnce(RunClosure(quit_closure)); EXPECT_CALL(*this, Detection()).WillOnce(RunClosure(quit_closure));
impl_->Detect(*image, impl_->Detect(
base::BindOnce(&FaceDetectionImplMacTest::DetectCallback, *image,
base::Unretained(this), GetParam().num_faces, base::BindOnce(&FaceDetectionImplMacTest::DetectCallback,
GetParam().num_landmarks)); base::Unretained(this), GetParam().num_faces,
GetParam().num_landmarks, GetParam().num_mouth_points));
run_loop.Run(); run_loop.Run();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment