Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: skia/ext/image_operations_unittest.cc

Issue 761903003: Update from https://crrev.com/306655 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « skia/ext/image_operations_bench.cc ('k') | skia/ext/pixel_ref_utils_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <algorithm> 5 #include <algorithm>
6 #include <cmath> 6 #include <cmath>
7 #include <iomanip> 7 #include <iomanip>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 const int src_w = 640, src_h = 480, checker_rect_w = 4, checker_rect_h = 8; 488 const int src_w = 640, src_h = 480, checker_rect_w = 4, checker_rect_h = 8;
489 const SkColor checker_color1 = SK_ColorRED, checker_color2 = SK_ColorBLUE; 489 const SkColor checker_color1 = SK_ColorRED, checker_color2 = SK_ColorBLUE;
490 490
491 const int dest_w = src_w / (4 * checker_rect_w); 491 const int dest_w = src_w / (4 * checker_rect_w);
492 const int dest_h = src_h / (2 * checker_rect_h); 492 const int dest_h = src_h / (2 * checker_rect_h);
493 493
494 // Compute the expected (average) color 494 // Compute the expected (average) color
495 const SkColor colors[] = { checker_color1, checker_color2 }; 495 const SkColor colors[] = { checker_color1, checker_color2 };
496 const SkColor average_color = AveragePixel(colors, arraysize(colors)); 496 const SkColor average_color = AveragePixel(colors, arraysize(colors));
497 497
498 // RESIZE_SUBPIXEL is only supported on Linux/non-GTV platforms.
499 static const TestedResizeMethod tested_methods[] = { 498 static const TestedResizeMethod tested_methods[] = {
500 { skia::ImageOperations::RESIZE_GOOD, "GOOD", 0.0f }, 499 { skia::ImageOperations::RESIZE_GOOD, "GOOD", 0.0f },
501 { skia::ImageOperations::RESIZE_BETTER, "BETTER", 0.0f }, 500 { skia::ImageOperations::RESIZE_BETTER, "BETTER", 0.0f },
502 { skia::ImageOperations::RESIZE_BEST, "BEST", 0.0f }, 501 { skia::ImageOperations::RESIZE_BEST, "BEST", 0.0f },
503 { skia::ImageOperations::RESIZE_BOX, "BOX", 0.0f }, 502 { skia::ImageOperations::RESIZE_BOX, "BOX", 0.0f },
504 { skia::ImageOperations::RESIZE_HAMMING1, "HAMMING1", 0.0f }, 503 { skia::ImageOperations::RESIZE_HAMMING1, "HAMMING1", 0.0f },
505 { skia::ImageOperations::RESIZE_LANCZOS2, "LANCZOS2", 0.0f }, 504 { skia::ImageOperations::RESIZE_LANCZOS2, "LANCZOS2", 0.0f },
506 { skia::ImageOperations::RESIZE_LANCZOS3, "LANCZOS3", 0.0f }, 505 { skia::ImageOperations::RESIZE_LANCZOS3, "LANCZOS3", 0.0f },
507 #if defined(OS_LINUX) && !defined(GTV)
508 // SUBPIXEL has slightly worse performance than the other filters:
509 // 6.324 Bottom left/right corners
510 // 5.099 Top left/right corners
511 // 2.828 Bottom middle
512 // 1.414 Top/Left/Right middle, center
513 //
514 // This is expected since, in order to judge RESIZE_SUBPIXEL accurately,
515 // we'd need to compute distances for each sub-pixel, and potentially
516 // tweak the test parameters so that expectations were realistic when
517 // looking at sub-pixels in isolation.
518 //
519 // Rather than going to these lengths, we added the "max_distance_override"
520 // field in TestedResizeMethod, intended for RESIZE_SUBPIXEL. It allows
521 // us to to enable its testing without having to lower the success criteria
522 // for the other methods. This procedure is distateful but defining
523 // a distance limit for each tested pixel for each method was judged to add
524 // unneeded complexity.
525 { skia::ImageOperations::RESIZE_SUBPIXEL, "SUBPIXEL", 6.4f },
526 #endif
527 }; 506 };
528 507
529 // Create our source bitmap. 508 // Create our source bitmap.
530 SkBitmap src; 509 SkBitmap src;
531 DrawCheckerToBitmap(src_w, src_h, 510 DrawCheckerToBitmap(src_w, src_h,
532 checker_color1, checker_color2, 511 checker_color1, checker_color2,
533 checker_rect_w, checker_rect_h, 512 checker_rect_w, checker_rect_h,
534 &src); 513 &src);
535 514
536 // For each method, downscale by 16 in each dimension, 515 // For each method, downscale by 16 in each dimension,
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 EXPECT_LE(fabs(SkColorGetA(dst_color) - a), 1.5f); 696 EXPECT_LE(fabs(SkColorGetA(dst_color) - a), 1.5f);
718 EXPECT_LE(fabs(SkColorGetR(dst_color) - r), 1.5f); 697 EXPECT_LE(fabs(SkColorGetR(dst_color) - r), 1.5f);
719 EXPECT_LE(fabs(SkColorGetG(dst_color) - g), 1.5f); 698 EXPECT_LE(fabs(SkColorGetG(dst_color) - g), 1.5f);
720 EXPECT_LE(fabs(SkColorGetB(dst_color) - b), 1.5f); 699 EXPECT_LE(fabs(SkColorGetB(dst_color) - b), 1.5f);
721 if (HasFailure()) { 700 if (HasFailure()) {
722 return; 701 return;
723 } 702 }
724 } 703 }
725 } 704 }
726 } 705 }
OLDNEW
« no previous file with comments | « skia/ext/image_operations_bench.cc ('k') | skia/ext/pixel_ref_utils_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698