Example #1
0
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);
}
Example #2
0
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;
}