partial_idct_test: add _add_ test
authorJohann <johannkoenig@google.com>
Thu, 27 Oct 2016 04:24:46 +0000 (21:24 -0700)
committerJohann <johannkoenig@google.com>
Thu, 27 Oct 2016 04:35:49 +0000 (21:35 -0700)
The result of the transform is added to the destination buffers. In the
existing tests the destination buffer is always empty so that portion of
the code was never exercised.

Change-Id: I1858c4fed2274f1b9faf834d2ba4186a4510492a

test/partial_idct_test.cc

index c41813d..0c704c5 100644 (file)
@@ -162,6 +162,30 @@ TEST_P(PartialIDctTest, ResultsMatch) {
         << "Error: partial inverse transform produces different results";
   }
 }
+
+TEST_P(PartialIDctTest, AddOutputBlock) {
+  ACMRandom rnd(ACMRandom::DeterministicSeed());
+  const int count_test_block = 10;
+  for (int i = 0; i < count_test_block; ++i) {
+    memset(input_block_, 0, sizeof(*input_block_) * block_size_);
+    for (int j = 0; j < last_nonzero_; ++j) {
+      input_block_[vp9_default_scan_orders[tx_size_].scan[j]] = 10;
+    }
+
+    for (int j = 0; j < block_size_; ++j) {
+      output_block_[j] = output_block_ref_[j] = rnd.Rand8();
+    }
+
+    ASM_REGISTER_STATE_CHECK(
+        full_itxfm_(input_block_, output_block_ref_, size_));
+    ASM_REGISTER_STATE_CHECK(
+        partial_itxfm_(input_block_, output_block_, size_));
+
+    ASSERT_EQ(0, memcmp(output_block_ref_, output_block_,
+                        sizeof(*output_block_) * block_size_))
+        << "Error: Transform results are not correctly added to output.";
+  }
+}
 using std::tr1::make_tuple;
 
 INSTANTIATE_TEST_CASE_P(