File: testrenderonepage.cc

package info (click to toggle)
dspdfviewer 1.15.1%2Bgit20230427.d432d8d-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 924 kB
  • sloc: cpp: 2,303; makefile: 22; sh: 7
file content (54 lines) | stat: -rw-r--r-- 2,260 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "testhelpers.hh"

using namespace std;
using namespace TestHelpers;

BOOST_AUTO_TEST_CASE(render_one_page) {
	PDFDocumentReference pdr( TestHelpers::pdfFilename("colored-rectangles.pdf"), PDFCacheOption::keepPDFinMemory );

	const auto pageref = pdr.page(0);

	const auto left = RenderUtils::renderPagePart(pageref.page, QSize(1920,1080), PagePart::LeftHalf);
	const auto right = RenderUtils::renderPagePart(pageref.page, QSize(1920,1200), PagePart::RightHalf);
	const auto both = RenderUtils::renderPagePart(pageref.page, QSize(3840,1080), PagePart::FullPage);

	const auto leftScreenColor = QColor( 0x88, 0xff, 0x88);
	auto rightScreenColor = QColor( 0xff, 0x88, 0xff);

	/** Older texlive installation: Note page gets rendered white
	 */
	const auto fallbackRightScreenColor = QColor( 0xff, 0xff, 0xff);

	BOOST_CHECK_NE(rightScreenColor, fallbackRightScreenColor);

	/** Check sizes of rendered images **/
	BOOST_CHECK_EQUAL( QSize(1920,1080), left.size());
	BOOST_CHECK_EQUAL( QSize(1920,1080), right.size());
	BOOST_CHECK_EQUAL( QSize(3840,1080), both.size());

	/** Check middle pixel of left screen **/
	BOOST_CHECK_EQUAL( leftScreenColor, QColor(left.pixel(960,540)));
	BOOST_CHECK_EQUAL( leftScreenColor, QColor(both.pixel(960,540)));

	const auto rightScreenMiddle = QColor(right.pixel(960,540));

	BOOST_WARN_EQUAL( rightScreenColor, rightScreenMiddle );
	/** Check middle pixel of right screen **/
	if ( rightScreenMiddle == fallbackRightScreenColor) {
		BOOST_TEST_MESSAGE( "Middle of note screen was peak white, "
			", using workaround for older latex-beamer versions.");
		rightScreenColor = fallbackRightScreenColor;
	}
	BOOST_CHECK_EQUAL( rightScreenColor, QColor(right.pixel(960,540)));
	BOOST_CHECK_EQUAL( rightScreenColor, QColor(both.pixel(2880,540)));

	/** Check all-the-way-left and all-the-way-right pixel colors */
	BOOST_CHECK_EQUAL( leftScreenColor, QColor(left.pixel(0,540)));
	BOOST_CHECK_EQUAL( leftScreenColor, QColor(left.pixel(1919,540)));

	BOOST_CHECK_EQUAL( rightScreenColor, QColor(right.pixel(0,540)));
	BOOST_CHECK_EQUAL( rightScreenColor, QColor(right.pixel(1919,540)));

	BOOST_CHECK_EQUAL( leftScreenColor, QColor(both.pixel(0,540)));
	BOOST_CHECK_EQUAL( rightScreenColor, QColor(both.pixel(3839,540)));
}