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: unit_test/compare_test.cc

Issue 1361813002: replace random with fastrand (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: remove win32 version of random Created 5 years, 3 months 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 | « unit_test/color_test.cc ('k') | unit_test/convert_test.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 /* 1 /*
2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2011 The LibYuv Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 27 matching lines...) Expand all
38 align_buffer_64(src_b, kMaxTest); 38 align_buffer_64(src_b, kMaxTest);
39 39
40 const char* fox = "The quick brown fox jumps over the lazy dog" 40 const char* fox = "The quick brown fox jumps over the lazy dog"
41 " and feels as if he were in the seventh heaven of typography" 41 " and feels as if he were in the seventh heaven of typography"
42 " together with Hermann Zapf"; 42 " together with Hermann Zapf";
43 uint32 foxhash = HashDjb2(reinterpret_cast<const uint8*>(fox), 131, 5381); 43 uint32 foxhash = HashDjb2(reinterpret_cast<const uint8*>(fox), 131, 5381);
44 const uint32 kExpectedFoxHash = 2611006483u; 44 const uint32 kExpectedFoxHash = 2611006483u;
45 EXPECT_EQ(kExpectedFoxHash, foxhash); 45 EXPECT_EQ(kExpectedFoxHash, foxhash);
46 46
47 for (int i = 0; i < kMaxTest; ++i) { 47 for (int i = 0; i < kMaxTest; ++i) {
48 src_a[i] = (random() & 0xff); 48 src_a[i] = (fastrand() & 0xff);
49 src_b[i] = (random() & 0xff); 49 src_b[i] = (fastrand() & 0xff);
50 } 50 }
51 // Compare different buffers. Expect hash is different. 51 // Compare different buffers. Expect hash is different.
52 uint32 h1 = HashDjb2(src_a, kMaxTest, 5381); 52 uint32 h1 = HashDjb2(src_a, kMaxTest, 5381);
53 uint32 h2 = HashDjb2(src_b, kMaxTest, 5381); 53 uint32 h2 = HashDjb2(src_b, kMaxTest, 5381);
54 EXPECT_NE(h1, h2); 54 EXPECT_NE(h1, h2);
55 55
56 // Make last half same. Expect hash is different. 56 // Make last half same. Expect hash is different.
57 memcpy(src_a + kMaxTest / 2, src_b + kMaxTest / 2, kMaxTest / 2); 57 memcpy(src_a + kMaxTest / 2, src_b + kMaxTest / 2, kMaxTest / 2);
58 h1 = HashDjb2(src_a, kMaxTest, 5381); 58 h1 = HashDjb2(src_a, kMaxTest, 5381);
59 h2 = HashDjb2(src_b, kMaxTest, 5381); 59 h2 = HashDjb2(src_b, kMaxTest, 5381);
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 err = ComputeSumSquareError(src_a, src_b, kMaxWidth); 249 err = ComputeSumSquareError(src_a, src_b, kMaxWidth);
250 250
251 EXPECT_EQ(err, kMaxWidth); 251 EXPECT_EQ(err, kMaxWidth);
252 252
253 memset(src_a, 190, kMaxWidth); 253 memset(src_a, 190, kMaxWidth);
254 memset(src_b, 193, kMaxWidth); 254 memset(src_b, 193, kMaxWidth);
255 err = ComputeSumSquareError(src_a, src_b, kMaxWidth); 255 err = ComputeSumSquareError(src_a, src_b, kMaxWidth);
256 256
257 EXPECT_EQ(kMaxWidth * 3 * 3, err); 257 EXPECT_EQ(kMaxWidth * 3 * 3, err);
258 258
259 srandom(time(NULL));
260
261 for (int i = 0; i < kMaxWidth; ++i) { 259 for (int i = 0; i < kMaxWidth; ++i) {
262 src_a[i] = (random() & 0xff); 260 src_a[i] = (fastrand() & 0xff);
263 src_b[i] = (random() & 0xff); 261 src_b[i] = (fastrand() & 0xff);
264 } 262 }
265 263
266 MaskCpuFlags(disable_cpu_flags_); 264 MaskCpuFlags(disable_cpu_flags_);
267 uint64 c_err = ComputeSumSquareError(src_a, src_b, kMaxWidth); 265 uint64 c_err = ComputeSumSquareError(src_a, src_b, kMaxWidth);
268 266
269 MaskCpuFlags(-1); 267 MaskCpuFlags(-1);
270 uint64 opt_err = ComputeSumSquareError(src_a, src_b, kMaxWidth); 268 uint64 opt_err = ComputeSumSquareError(src_a, src_b, kMaxWidth);
271 269
272 EXPECT_EQ(c_err, opt_err); 270 EXPECT_EQ(c_err, opt_err);
273 271
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 364
367 err = CalcFramePsnr(src_a + kSrcStride * b + b, kSrcStride, 365 err = CalcFramePsnr(src_a + kSrcStride * b + b, kSrcStride,
368 src_b + kSrcStride * b + b, kSrcStride, 366 src_b + kSrcStride * b + b, kSrcStride,
369 kSrcWidth, kSrcHeight); 367 kSrcWidth, kSrcHeight);
370 368
371 EXPECT_GT(err, 2.0); 369 EXPECT_GT(err, 2.0);
372 if (kSrcWidth * kSrcHeight >= 256) { 370 if (kSrcWidth * kSrcHeight >= 256) {
373 EXPECT_LT(err, 6.0); 371 EXPECT_LT(err, 6.0);
374 } 372 }
375 373
376 srandom(time(NULL));
377
378 memset(src_a, 0, kSrcPlaneSize); 374 memset(src_a, 0, kSrcPlaneSize);
379 memset(src_b, 0, kSrcPlaneSize); 375 memset(src_b, 0, kSrcPlaneSize);
380 376
381 for (int i = b; i < (kSrcHeight + b); ++i) { 377 for (int i = b; i < (kSrcHeight + b); ++i) {
382 for (int j = b; j < (kSrcWidth + b); ++j) { 378 for (int j = b; j < (kSrcWidth + b); ++j) {
383 src_a[(i * kSrcStride) + j] = (random() & 0xff); 379 src_a[(i * kSrcStride) + j] = (fastrand() & 0xff);
384 src_b[(i * kSrcStride) + j] = (random() & 0xff); 380 src_b[(i * kSrcStride) + j] = (fastrand() & 0xff);
385 } 381 }
386 } 382 }
387 383
388 MaskCpuFlags(disable_cpu_flags_); 384 MaskCpuFlags(disable_cpu_flags_);
389 double c_err, opt_err; 385 double c_err, opt_err;
390 386
391 c_err = CalcFramePsnr(src_a + kSrcStride * b + b, kSrcStride, 387 c_err = CalcFramePsnr(src_a + kSrcStride * b + b, kSrcStride,
392 src_b + kSrcStride * b + b, kSrcStride, 388 src_b + kSrcStride * b + b, kSrcStride,
393 kSrcWidth, kSrcHeight); 389 kSrcWidth, kSrcHeight);
394 390
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 476
481 err = CalcFrameSsim(src_a + kSrcStride * b + b, kSrcStride, 477 err = CalcFrameSsim(src_a + kSrcStride * b + b, kSrcStride,
482 src_b + kSrcStride * b + b, kSrcStride, 478 src_b + kSrcStride * b + b, kSrcStride,
483 kSrcWidth, kSrcHeight); 479 kSrcWidth, kSrcHeight);
484 480
485 if (kSrcWidth > 8 && kSrcHeight > 8) { 481 if (kSrcWidth > 8 && kSrcHeight > 8) {
486 EXPECT_GT(err, 0.0); 482 EXPECT_GT(err, 0.0);
487 EXPECT_LT(err, 0.01); 483 EXPECT_LT(err, 0.01);
488 } 484 }
489 485
490 srandom(time(NULL));
491 for (int i = b; i < (kSrcHeight + b); ++i) { 486 for (int i = b; i < (kSrcHeight + b); ++i) {
492 for (int j = b; j < (kSrcWidth + b); ++j) { 487 for (int j = b; j < (kSrcWidth + b); ++j) {
493 src_a[(i * kSrcStride) + j] = (random() & 0xff); 488 src_a[(i * kSrcStride) + j] = (fastrand() & 0xff);
494 src_b[(i * kSrcStride) + j] = (random() & 0xff); 489 src_b[(i * kSrcStride) + j] = (fastrand() & 0xff);
495 } 490 }
496 } 491 }
497 492
498 MaskCpuFlags(disable_cpu_flags_); 493 MaskCpuFlags(disable_cpu_flags_);
499 double c_err, opt_err; 494 double c_err, opt_err;
500 495
501 c_err = CalcFrameSsim(src_a + kSrcStride * b + b, kSrcStride, 496 c_err = CalcFrameSsim(src_a + kSrcStride * b + b, kSrcStride,
502 src_b + kSrcStride * b + b, kSrcStride, 497 src_b + kSrcStride * b + b, kSrcStride,
503 kSrcWidth, kSrcHeight); 498 kSrcWidth, kSrcHeight);
504 499
505 MaskCpuFlags(-1); 500 MaskCpuFlags(-1);
506 501
507 opt_err = CalcFrameSsim(src_a + kSrcStride * b + b, kSrcStride, 502 opt_err = CalcFrameSsim(src_a + kSrcStride * b + b, kSrcStride,
508 src_b + kSrcStride * b + b, kSrcStride, 503 src_b + kSrcStride * b + b, kSrcStride,
509 kSrcWidth, kSrcHeight); 504 kSrcWidth, kSrcHeight);
510 505
511 if (kSrcWidth > 8 && kSrcHeight > 8) { 506 if (kSrcWidth > 8 && kSrcHeight > 8) {
512 EXPECT_EQ(opt_err, c_err); 507 EXPECT_EQ(opt_err, c_err);
513 } 508 }
514 509
515 free_aligned_buffer_64(src_a); 510 free_aligned_buffer_64(src_a);
516 free_aligned_buffer_64(src_b); 511 free_aligned_buffer_64(src_b);
517 } 512 }
518 513
519 } // namespace libyuv 514 } // namespace libyuv
OLDNEW
« no previous file with comments | « unit_test/color_test.cc ('k') | unit_test/convert_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698