Files
libopenshot/tests/Pixelate.cpp
T
Jonathan Thomas 14c63f3714 Fix margin-bounded effects to avoid invalid image access
- Clamp and validate Blur, Bars, and Pixelate margin-derived regions
- Add regression coverage for collapsed/out-of-range margin cases
- Verify focused Bars, Blur, and Pixelate tests pass
2026-05-12 15:15:15 -05:00

40 lines
1006 B
C++

/**
* @file
* @brief Unit tests for Pixelate effect
*
* @ref License
*/
// Copyright (c) 2008-2026 OpenShot Studios, LLC
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#include "openshot_catch.h"
#include "Frame.h"
#include "effects/Pixelate.h"
#include <QSize>
using namespace openshot;
TEST_CASE("Pixelate margins handle collapsed area", "[effect][pixelate]") {
auto frame = std::make_shared<Frame>(1, 8, 8, "#336699");
auto image = frame->GetImage();
Pixelate effect(Keyframe(0.5), Keyframe(0.75), Keyframe(0.0), Keyframe(0.75), Keyframe(0.0));
REQUIRE_NOTHROW(effect.GetFrame(frame, 1));
CHECK(image->size() == QSize(8, 8));
}
TEST_CASE("Pixelate margins clamp out-of-range values", "[effect][pixelate]") {
auto frame = std::make_shared<Frame>(1, 8, 8, "#336699");
auto image = frame->GetImage();
Pixelate effect(Keyframe(0.5), Keyframe(-1.0), Keyframe(-1.0), Keyframe(2.0), Keyframe(2.0));
REQUIRE_NOTHROW(effect.GetFrame(frame, 1));
CHECK(image->size() == QSize(8, 8));
}