#include <gtest/gtest.h>
extern "C" int testBmp(int yuv, int noyuvpad, int autoalloc);
extern "C" int testThreeByte444(int yuv, int noyuvpad, int autoalloc);
extern "C" int testFourByte444(int yuv, int noyuvpad, int autoalloc);
extern "C" int testThreeByte422(int yuv, int noyuvpad, int autoalloc);
extern "C" int testFourByte422(int yuv, int noyuvpad, int autoalloc);
extern "C" int testThreeByte420(int yuv, int noyuvpad, int autoalloc);
extern "C" int testFourByte420(int yuv, int noyuvpad, int autoalloc);
extern "C" int testThreeByte440(int yuv, int noyuvpad, int autoalloc);
extern "C" int testFourByte440(int yuv, int noyuvpad, int autoalloc);
extern "C" int testThreeByte411(int yuv, int noyuvpad, int autoalloc);
extern "C" int testFourByte411(int yuv, int noyuvpad, int autoalloc);
extern "C" int testOnlyGray(int yuv, int noyuvpad, int autoalloc);
extern "C" int testThreeByteGray(int yuv, int noyuvpad, int autoalloc);
extern "C" int testFourByteGray(int yuv, int noyuvpad, int autoalloc);
extern "C" int testBufSize(int yuv, int noyuvpad, int autoalloc);
extern "C" int testYUVOnlyRGB444(int noyuvpad, int autoalloc);
extern "C" int testYUVOnlyRGB422(int noyuvpad, int autoalloc);
extern "C" int testYUVOnlyRGB420(int noyuvpad, int autoalloc);
extern "C" int testYUVOnlyRGB440(int noyuvpad, int autoalloc);
extern "C" int testYUVOnlyRGB411(int noyuvpad, int autoalloc);
extern "C" int testYUVOnlyRGBGray(int noyuvpad, int autoalloc);
extern "C" int testYUVOnlyGrayGray(int noyuvpad, int autoalloc);
const int YUV = …;
const int NO_YUV = …;
const int NO_YUV_PAD = …;
const int YUV_PAD = …;
const int AUTO_ALLOC = …;
const int NO_AUTO_ALLOC = …;
class TJUnitTest : public
::testing::TestWithParam<std::tuple<int, int, int>> { … };
TEST_P(TJUnitTest, BMP) { … }
TEST_P(TJUnitTest, ThreeByte444) { … }
TEST_P(TJUnitTest, FourByte444) { … }
TEST_P(TJUnitTest, ThreeByte422) { … }
TEST_P(TJUnitTest, FourByte422) { … }
TEST_P(TJUnitTest, ThreeByte420) { … }
TEST_P(TJUnitTest, FourByte420) { … }
TEST_P(TJUnitTest, ThreeByte440) { … }
TEST_P(TJUnitTest, FourByte440) { … }
TEST_P(TJUnitTest, ThreeByte411) { … }
TEST_P(TJUnitTest, FourByte411) { … }
TEST_P(TJUnitTest, OnlyGray) { … }
TEST_P(TJUnitTest, ThreeByteGray) { … }
TEST_P(TJUnitTest, FourByteGray) { … }
TEST_P(TJUnitTest, BufSize) { … }
INSTANTIATE_TEST_SUITE_P(…);
class TJUnitTestYUV : public ::testing::TestWithParam<std::tuple<int, int>> { … };
TEST_P(TJUnitTestYUV, YUVOnlyRGB444) { … }
TEST_P(TJUnitTestYUV, YUVOnlyRGB422) { … }
TEST_P(TJUnitTestYUV, YUVOnlyRGB420) { … }
TEST_P(TJUnitTestYUV, YUVOnlyRGB440) { … }
TEST_P(TJUnitTestYUV, YUVOnlyRGB411) { … }
TEST_P(TJUnitTestYUV, YUVOnlyRGBGray) { … }
TEST_P(TJUnitTestYUV, YUVOnlyGrayGray) { … }
INSTANTIATE_TEST_SUITE_P(…);