From d5446e9f327ab4eaef38249b0907f11fbf52be45 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Wed, 15 Jul 2020 12:55:17 +0300 Subject: libcamera: geometry: Provide in-place versions of the Size helpers Add alignDownTo(), alignUpTo(), boundTo() and expandTo() helper functions to the Size class. These are in-place versions of the existing alignedDownTo(), alignedUpTo(), boundedTo() and expandedTo() functions. The new helpers return a reference to the size, to allow chaining the functions. One can thus write size.alignDownTo(16, 16).alignUpTo(32, 32) .boundTo({ 40, 80 }).expandTo({ 16, 80 }); instead of size.alignDownTo(16, 16); size.alignUpTo(32, 32); size.boundTo({ 40, 80 }); size.expandTo({ 16, 80 }); Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi Reviewed-by: Kieran Bingham --- test/geometry.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'test/geometry.cpp') diff --git a/test/geometry.cpp b/test/geometry.cpp index fd0132c0..1a9fc1b8 100644 --- a/test/geometry.cpp +++ b/test/geometry.cpp @@ -46,6 +46,40 @@ protected: return TestFail; } + /* Test alignDownTo(), alignUpTo(), boundTo() and expandTo() */ + Size s(50, 50); + + s.alignDownTo(16, 16); + if (s != Size(48, 48)) { + cout << "Size::alignDownTo() test failed" << endl; + return TestFail; + } + + s.alignUpTo(32, 32); + if (s != Size(64, 64)) { + cout << "Size::alignUpTo() test failed" << endl; + return TestFail; + } + + s.boundTo({ 40, 40 }); + if (s != Size(40, 40)) { + cout << "Size::boundTo() test failed" << endl; + return TestFail; + } + + s.expandTo({ 50, 50 }); + if (s != Size(50, 50)) { + cout << "Size::expandTo() test failed" << endl; + return TestFail; + } + + s.alignDownTo(16, 16).alignUpTo(32, 32) + .boundTo({ 40, 80 }).expandTo({ 16, 80 }); + if (s != Size(40, 80)) { + cout << "Size chained in-place modifiers test failed" << endl; + 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) || -- cgit v1.2.1