From 95ee7f1131cf4a12f6dfbb8e3576e7637fe29fcf Mon Sep 17 00:00:00 2001
From: Yaowu Xu <yaowu@google.com>
Date: Fri, 24 Aug 2012 09:59:49 -0700
Subject: [PATCH] change to properly account for coef scaling in unit tests

The transform functions in experimental branch absorbed a scaling
factor of 4 to allow quantization steps closer to unit quantizer.
This commit added scaling code in between forward and inverse
transform to properly account for the scaling factor.

Change-Id: I9a573ddc1ffa74973b34800a5da1a56dbabe0949
---
 test/fdct4x4_test.cc | 14 +++++++++++++-
 test/fdct8x8_test.cc | 11 +++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/test/fdct4x4_test.cc b/test/fdct4x4_test.cc
index d88ed8df67..3bce41a418 100644
--- a/test/fdct4x4_test.cc
+++ b/test/fdct4x4_test.cc
@@ -107,6 +107,19 @@ TEST(Vp8FdctTest, RoundTripErrorCheck) {
     // to test optimized versions of this function.
     const int pitch = 8;
     vp8_short_fdct4x4_c(test_input_block, test_temp_block, pitch);
+
+    for (int j = 0; j < 16; ++j) {
+        if(test_temp_block[j] > 0) {
+          test_temp_block[j] += 2;
+          test_temp_block[j] /= 4;
+          test_temp_block[j] *= 4;
+        } else {
+          test_temp_block[j] -= 2;
+          test_temp_block[j] /= 4;
+          test_temp_block[j] *= 4;
+        }
+    }
+
     // Because the bitstream is not frozen yet, use the idct in the codebase.
     vp8_short_idct4x4llm_c(test_temp_block, test_output_block, pitch);
 
@@ -118,7 +131,6 @@ TEST(Vp8FdctTest, RoundTripErrorCheck) {
       total_error += error;
     }
   }
-
   EXPECT_GE(1, max_error)
       << "Error: FDCT/IDCT has an individual roundtrip error > 1";
 
diff --git a/test/fdct8x8_test.cc b/test/fdct8x8_test.cc
index 28b6afb0cd..068d98e10a 100644
--- a/test/fdct8x8_test.cc
+++ b/test/fdct8x8_test.cc
@@ -101,6 +101,17 @@ TEST(VP8Fdct8x8Test, RoundTripErrorCheck) {
 
     const int pitch = 16;
     vp8_short_fdct8x8_c(test_input_block, test_temp_block, pitch);
+    for (int j = 0; j < 64; ++j){
+        if(test_temp_block[j] > 0) {
+          test_temp_block[j] += 2;
+          test_temp_block[j] /= 4;
+          test_temp_block[j] *= 4;
+        } else {
+          test_temp_block[j] -= 2;
+          test_temp_block[j] /= 4;
+          test_temp_block[j] *= 4;
+        }
+    }
     vp8_short_idct8x8_c(test_temp_block, test_output_block, pitch);
 
     for (int j = 0; j < 64; ++j) {
-- 
GitLab