void tst_QVideoSurfaceFormat::compare() { QVideoSurfaceFormat format1( QSize(16, 16), QVideoFrame::Format_RGB32, QAbstractVideoBuffer::GLTextureHandle); QVideoSurfaceFormat format2( QSize(16, 16), QVideoFrame::Format_RGB32, QAbstractVideoBuffer::GLTextureHandle); QVideoSurfaceFormat format3( QSize(32, 32), QVideoFrame::Format_YUV444, QAbstractVideoBuffer::GLTextureHandle); QVideoSurfaceFormat format4( QSize(16, 16), QVideoFrame::Format_RGB32, QAbstractVideoBuffer::UserHandle); QCOMPARE(format1 == format2, true); QCOMPARE(format1 != format2, false); QCOMPARE(format1 == format3, false); QCOMPARE(format1 != format3, true); QCOMPARE(format1 == format4, false); QCOMPARE(format1 != format4, true); format2.setFrameSize(1024, 768); // Not equal, frame size differs. QCOMPARE(format1 == format2, false); QCOMPARE(format1 != format2, true); format1.setFrameSize(1024, 768); // Equal. QCOMPARE(format1 == format2, true); QCOMPARE(format1 != format2, false); format1.setViewport(QRect(0, 0, 800, 600)); format2.setViewport(QRect(112, 84, 800, 600)); // Not equal, viewports differ. QCOMPARE(format1 == format2, false); QCOMPARE(format1 != format2, true); format1.setViewport(QRect(112, 84, 800, 600)); // Equal. QCOMPARE(format1 == format2, true); QCOMPARE(format1 != format2, false); format2.setScanLineDirection(QVideoSurfaceFormat::BottomToTop); // Not equal scan line direction differs. QCOMPARE(format1 == format2, false); QCOMPARE(format1 != format2, true); format1.setScanLineDirection(QVideoSurfaceFormat::BottomToTop); // Equal. QCOMPARE(format1 == format2, true); QCOMPARE(format1 != format2, false); format1.setFrameRate(7.5); // Not equal frame rate differs. QCOMPARE(format1 == format2, false); QCOMPARE(format1 != format2, true); format2.setFrameRate(qreal(7.50001)); // Equal. QCOMPARE(format1 == format2, true); QCOMPARE(format1 != format2, false); format2.setPixelAspectRatio(4, 3); // Not equal pixel aspect ratio differs. QCOMPARE(format1 == format2, false); QCOMPARE(format1 != format2, true); format1.setPixelAspectRatio(QSize(4, 3)); // Equal. QCOMPARE(format1 == format2, true); QCOMPARE(format1 != format2, false); format2.setYCbCrColorSpace(QVideoSurfaceFormat::YCbCr_xvYCC601); // Not equal yuv color space differs. QCOMPARE(format1 == format2, false); QCOMPARE(format1 != format2, true); format1.setYCbCrColorSpace(QVideoSurfaceFormat::YCbCr_xvYCC601); // Equal. QCOMPARE(format1 == format2, true); QCOMPARE(format1 != format2, false); format1.setProperty("integer", 12); // Not equal, property mismatch. QCOMPARE(format1 == format2, false); QCOMPARE(format1 != format2, true); format2.setProperty("integer", 45); // Not equal, integer differs. QCOMPARE(format1 == format2, false); QCOMPARE(format1 != format2, true); format2.setProperty("integer", 12); // Equal. QCOMPARE(format1 == format2, true); QCOMPARE(format1 != format2, false); format1.setProperty("string", QString::fromLatin1("Hello")); format2.setProperty("size", QSize(12, 54)); // Not equal, property mismatch. QCOMPARE(format1 == format2, false); QCOMPARE(format1 != format2, true); format2.setProperty("string", QString::fromLatin1("Hello")); format1.setProperty("size", QSize(12, 54)); // Equal. QCOMPARE(format1 == format2, true); QCOMPARE(format1 != format2, false); format1.setProperty("string", QVariant()); // Not equal, property mismatch. QCOMPARE(format1 == format2, false); QCOMPARE(format1 != format2, true); }
bool ValueFormatTest::InitFromString() { WgValueFormat format1("1000"); TEST_ASSERT( format1.decimals == 0 ); TEST_ASSERT( format1.grouping == 0 ); TEST_ASSERT( format1.prefix[0] == 0 ); TEST_ASSERT( format1.suffix[0] == 0 ); WgValueFormat format2("1;000"); TEST_ASSERT( format2.decimals == 0 ); TEST_ASSERT( format2.grouping == 3 ); TEST_ASSERT( format2.separator == ';' ); TEST_ASSERT( format2.prefix[0] == 0 ); TEST_ASSERT( format2.suffix[0] == 0 ); WgValueFormat format3("1;000:0"); TEST_ASSERT( format3.decimals == 1 ); TEST_ASSERT( format3.grouping == 3 ); TEST_ASSERT( format3.separator == ';' ); TEST_ASSERT( format3.period == ':' ); TEST_ASSERT( format3.prefix[0] == 0 ); TEST_ASSERT( format3.suffix[0] == 0 ); TEST_ASSERT( format3.bForceDecimals == true ); WgValueFormat format4("1;00:000"); TEST_ASSERT( format4.decimals == 3 ); TEST_ASSERT( format4.grouping == 2 ); TEST_ASSERT( format4.separator == ';' ); TEST_ASSERT( format4.period == ':' ); TEST_ASSERT( format4.prefix[0] == 0 ); TEST_ASSERT( format4.suffix[0] == 0 ); TEST_ASSERT( format4.bForceDecimals == true ); WgValueFormat format5("100:000"); TEST_ASSERT( format5.decimals == 3 ); TEST_ASSERT( format5.grouping == 0 ); TEST_ASSERT( format5.period == ':' ); TEST_ASSERT( format5.prefix[0] == 0 ); TEST_ASSERT( format5.suffix[0] == 0 ); TEST_ASSERT( format5.bForceDecimals == true ); std::string a = std::string("$\xc2\xa3\xe2\x82\xac") + std::string("1;000000:0000 USD"); // string is '$£€1;000000:0000 USD' WgValueFormat format6( a ); TEST_ASSERT( format6.decimals == 4 ); TEST_ASSERT( format6.grouping == 6 ); TEST_ASSERT( format6.separator == ';' ); TEST_ASSERT( format6.prefix[0] == '$' ); TEST_ASSERT( format6.prefix[1] == 0xa3 ); // pound sign TEST_ASSERT( format6.prefix[2] == 0x20ac ); // euro sign TEST_ASSERT( format6.prefix[3] == 0 ); TEST_ASSERT( format6.suffix[0] == ' ' ); TEST_ASSERT( format6.suffix[1] == 'U' ); TEST_ASSERT( format6.suffix[2] == 'S' ); TEST_ASSERT( format6.suffix[3] == 'D' ); TEST_ASSERT( format6.bForceDecimals == true ); return true; }