diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-07-10 11:23:25 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-07-15 00:27:26 +0300 |
commit | 6c0afb8b33a1586b2e5bb5543edca5103769af0e (patch) | |
tree | 8da986dd0f86674627de431c0abd0636dcc1dade /test/geometry.cpp | |
parent | 74c8b508338ccdd0780aa1e067a1e8fcb9ee326b (diff) |
libcamera: geometry: Add helper functions to the Size class
Pipeline handlers commonly have to calculate the minimum or maximum of
multiple sizes, or align a size's width and height. Add helper functions
to the Size class to perform those tasks.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'test/geometry.cpp')
-rw-r--r-- | test/geometry.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/geometry.cpp b/test/geometry.cpp index 904ad92c..fd0132c0 100644 --- a/test/geometry.cpp +++ b/test/geometry.cpp @@ -46,6 +46,35 @@ protected: return TestFail; } + /* Test alignedDownTo(), alignedUpTo(), boundedTo() and expandedTo() */ + if (Size(0, 0).alignedDownTo(16, 8) != Size(0, 0) || + Size(1, 1).alignedDownTo(16, 8) != Size(0, 0) || + Size(16, 8).alignedDownTo(16, 8) != Size(16, 8)) { + cout << "Size::alignedDownTo() test failed" << endl; + return TestFail; + } + + if (Size(0, 0).alignedUpTo(16, 8) != Size(0, 0) || + Size(1, 1).alignedUpTo(16, 8) != Size(16, 8) || + Size(16, 8).alignedUpTo(16, 8) != Size(16, 8)) { + cout << "Size::alignedUpTo() test failed" << endl; + return TestFail; + } + + if (Size(0, 0).boundedTo({ 100, 100 }) != Size(0, 0) || + Size(200, 50).boundedTo({ 100, 100 }) != Size(100, 50) || + Size(50, 200).boundedTo({ 100, 100 }) != Size(50, 100)) { + cout << "Size::boundedTo() test failed" << endl; + return TestFail; + } + + if (Size(0, 0).expandedTo({ 100, 100 }) != Size(100, 100) || + Size(200, 50).expandedTo({ 100, 100 }) != Size(200, 100) || + Size(50, 200).expandedTo({ 100, 100 }) != Size(100, 200)) { + cout << "Size::expandedTo() test failed" << endl; + return TestFail; + } + /* Test Size equality and inequality. */ if (!compare(Size(100, 100), Size(100, 100), &operator==, "==", true)) return TestFail; |