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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
BOOST_AUTO_TEST_CASE (aligned_image_test)
{
SimpleImage* s = new SimpleImage (PIX_FMT_RGB24, libdcp::Size (50, 50), true);
BOOST_CHECK_EQUAL (s->components(), 1);
/* 160 is 150 aligned to the nearest 32 bytes */
BOOST_CHECK_EQUAL (s->stride()[0], 160);
BOOST_CHECK_EQUAL (s->line_size()[0], 150);
BOOST_CHECK (s->data()[0]);
BOOST_CHECK (!s->data()[1]);
BOOST_CHECK (!s->data()[2]);
BOOST_CHECK (!s->data()[3]);
/* copy constructor */
SimpleImage* t = new SimpleImage (*s);
BOOST_CHECK_EQUAL (t->components(), 1);
BOOST_CHECK_EQUAL (t->stride()[0], 160);
BOOST_CHECK_EQUAL (t->line_size()[0], 150);
BOOST_CHECK (t->data()[0]);
BOOST_CHECK (!t->data()[1]);
BOOST_CHECK (!t->data()[2]);
BOOST_CHECK (!t->data()[3]);
BOOST_CHECK (t->data() != s->data());
BOOST_CHECK (t->data()[0] != s->data()[0]);
BOOST_CHECK (t->line_size() != s->line_size());
BOOST_CHECK (t->line_size()[0] == s->line_size()[0]);
BOOST_CHECK (t->stride() != s->stride());
BOOST_CHECK (t->stride()[0] == s->stride()[0]);
/* assignment operator */
SimpleImage* u = new SimpleImage (PIX_FMT_YUV422P, libdcp::Size (150, 150), false);
*u = *s;
BOOST_CHECK_EQUAL (u->components(), 1);
BOOST_CHECK_EQUAL (u->stride()[0], 160);
BOOST_CHECK_EQUAL (u->line_size()[0], 150);
BOOST_CHECK (u->data()[0]);
BOOST_CHECK (!u->data()[1]);
BOOST_CHECK (!u->data()[2]);
BOOST_CHECK (!u->data()[3]);
BOOST_CHECK (u->data() != s->data());
BOOST_CHECK (u->data()[0] != s->data()[0]);
BOOST_CHECK (u->line_size() != s->line_size());
BOOST_CHECK (u->line_size()[0] == s->line_size()[0]);
BOOST_CHECK (u->stride() != s->stride());
BOOST_CHECK (u->stride()[0] == s->stride()[0]);
delete s;
delete t;
delete u;
}
BOOST_AUTO_TEST_CASE (compact_image_test)
{
SimpleImage* s = new SimpleImage (PIX_FMT_RGB24, libdcp::Size (50, 50), false);
BOOST_CHECK_EQUAL (s->components(), 1);
BOOST_CHECK_EQUAL (s->stride()[0], 50 * 3);
BOOST_CHECK_EQUAL (s->line_size()[0], 50 * 3);
BOOST_CHECK (s->data()[0]);
BOOST_CHECK (!s->data()[1]);
BOOST_CHECK (!s->data()[2]);
BOOST_CHECK (!s->data()[3]);
/* copy constructor */
SimpleImage* t = new SimpleImage (*s);
BOOST_CHECK_EQUAL (t->components(), 1);
BOOST_CHECK_EQUAL (t->stride()[0], 50 * 3);
BOOST_CHECK_EQUAL (t->line_size()[0], 50 * 3);
BOOST_CHECK (t->data()[0]);
BOOST_CHECK (!t->data()[1]);
BOOST_CHECK (!t->data()[2]);
BOOST_CHECK (!t->data()[3]);
BOOST_CHECK (t->data() != s->data());
BOOST_CHECK (t->data()[0] != s->data()[0]);
BOOST_CHECK (t->line_size() != s->line_size());
BOOST_CHECK (t->line_size()[0] == s->line_size()[0]);
BOOST_CHECK (t->stride() != s->stride());
BOOST_CHECK (t->stride()[0] == s->stride()[0]);
/* assignment operator */
SimpleImage* u = new SimpleImage (PIX_FMT_YUV422P, libdcp::Size (150, 150), true);
*u = *s;
BOOST_CHECK_EQUAL (u->components(), 1);
BOOST_CHECK_EQUAL (u->stride()[0], 50 * 3);
BOOST_CHECK_EQUAL (u->line_size()[0], 50 * 3);
BOOST_CHECK (u->data()[0]);
BOOST_CHECK (!u->data()[1]);
BOOST_CHECK (!u->data()[2]);
BOOST_CHECK (!u->data()[3]);
BOOST_CHECK (u->data() != s->data());
BOOST_CHECK (u->data()[0] != s->data()[0]);
BOOST_CHECK (u->line_size() != s->line_size());
BOOST_CHECK (u->line_size()[0] == s->line_size()[0]);
BOOST_CHECK (u->stride() != s->stride());
BOOST_CHECK (u->stride()[0] == s->stride()[0]);
delete s;
delete t;
delete u;
}
|