Revert of Thorough tests for saturatedAdd and mulDiv255Round. (patchset #1 id:1 of https://codereview.chromium.org/1184113003/)
Reason for revert: https://code.google.com/p/skia/issues/detail?id=3951 Original issue's description: > Thorough tests for saturatedAdd and mulDiv255Round. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/ce9d11189a5924b47c3629063b72bae9d466c2c7 TBR=fmalita@chromium.org,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1177123004
This commit is contained in:
parent
da5469d7bc
commit
b1bbca8049
@ -5,7 +5,6 @@
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include "Sk4px.h"
|
||||
#include "SkNx.h"
|
||||
#include "SkRandom.h"
|
||||
#include "Test.h"
|
||||
@ -155,38 +154,3 @@ DEF_TEST(SkNi_min, r) {
|
||||
}}
|
||||
#endif
|
||||
}
|
||||
|
||||
DEF_TEST(SkNi_saturatedAdd, r) {
|
||||
for (int a = 0; a < (1<<8); a++) {
|
||||
for (int b = 0; b < (1<<8); b++) {
|
||||
int exact = a+b;
|
||||
if (exact > 255) { exact = 255; }
|
||||
if (exact < 0) { exact = 0; }
|
||||
|
||||
REPORTER_ASSERT(r, Sk16b(a).saturatedAdd(Sk16b(b)).kth<0>() == exact);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DEF_TEST(Sk4px_muldiv255round, r) {
|
||||
for (int a = 0; a < (1<<8); a++) {
|
||||
for (int b = 0; b < (1<<8); b++) {
|
||||
int exact = (a*b+127)/255;
|
||||
|
||||
// Duplicate a and b 16x each.
|
||||
Sk4px av((SkAlpha)a),
|
||||
bv((SkAlpha)b);
|
||||
|
||||
// This way should always be exactly correct.
|
||||
int correct = av.mulWiden(bv).div255RoundNarrow().kth<0>();
|
||||
REPORTER_ASSERT(r, correct == exact);
|
||||
|
||||
// We're a bit more flexible on this method: correct for 0 or 255, otherwise off by <=1.
|
||||
int fast = av.fastMulDiv255Round(bv).kth<0>();
|
||||
REPORTER_ASSERT(r, fast-exact >= -1 && fast-exact <= 1);
|
||||
if (a == 0 || a == 255 || b == 0 || b == 255) {
|
||||
REPORTER_ASSERT(r, fast == exact);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user