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>
This commit is contained in:
parent
74c8b50833
commit
6c0afb8b33
3 changed files with 98 additions and 0 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue