system: Linux mars.sprixweb.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
// Copyright 2022 Google LLC
// SPDX-License-Identifier: BSD-2-Clause
#include "avif/avif.h"
#include "aviftest_helpers.h"
#include "gtest/gtest.h"
namespace libavif {
namespace {
TEST(OpaqueTest, AlphaAndNoAlpha) {
for (bool alpha_is_opaque : {false, true}) {
for (int depth : {8, 10, 12}) {
testutil::AvifImagePtr alpha = testutil::CreateImage(
1, 1, depth, AVIF_PIXEL_FORMAT_YUV444, AVIF_PLANES_ALL);
testutil::AvifImagePtr no_alpha = testutil::CreateImage(
1, 1, depth, AVIF_PIXEL_FORMAT_YUV444, AVIF_PLANES_YUV);
const uint32_t max_value = (1u << depth) - 1;
const uint32_t yuva[] = {max_value, max_value, max_value,
alpha_is_opaque ? max_value : (max_value - 1)};
testutil::FillImagePlain(alpha.get(), yuva);
testutil::FillImagePlain(no_alpha.get(), yuva);
EXPECT_EQ(testutil::AreImagesEqual(*alpha, *no_alpha), alpha_is_opaque);
}
}
}
} // namespace
} // namespace libavif