2 Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 BOOST_AUTO_TEST_CASE (format_test)
22 Format::setup_formats ();
24 Format const * f = Format::from_nickname ("Flat");
26 BOOST_CHECK_EQUAL (f->dcp_size().width, 1998);
27 BOOST_CHECK_EQUAL (f->dcp_size().height, 1080);
29 f = Format::from_nickname ("Scope");
31 BOOST_CHECK_EQUAL (f->dcp_size().width, 2048);
32 BOOST_CHECK_EQUAL (f->dcp_size().height, 858);
36 /* Test VariableFormat-based scaling of content */
37 BOOST_AUTO_TEST_CASE (scaling_test)
39 shared_ptr<Film> film (new Film (test_film_dir ("scaling_test").string(), false));
42 film->set_size (libdcp::Size (320, 240));
44 /* This format should preserve aspect ratio of the source */
45 Format const * format = Format::from_id ("var-185");
47 /* We should have enough padding that the result is 4:3,
48 which would be 1440 pixels.
50 BOOST_CHECK_EQUAL (format->dcp_padding (film), (1998 - 1440) / 2);
52 /* This crops it to 1.291666667 */
53 film->set_left_crop (5);
54 film->set_right_crop (5);
56 /* We should now have enough padding that the result is 1.29166667,
57 which would be 1395 pixels.
59 BOOST_CHECK_EQUAL (format->dcp_padding (film), rint ((1998 - 1395) / 2.0));