blob: 5a48526f934b6e4eb6a310627e1e8e61ccebab76 [file] [log] [blame]
// 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