printing of default decompression parameters

This commit is contained in:
jevans 2014-10-19 13:00:45 -04:00
commit dc0c1950a2
3 changed files with 50 additions and 5 deletions

View file

@ -201,6 +201,13 @@ class DecompressionParametersType(ctypes.Structure):
# maximum number of tiles
("flags", ctypes.c_uint32)]
def __str__(self):
msg = "{0}:\n".format(self.__class__)
for field_name, _ in self._fields_:
msg += " {0}: {1}\n".format(
field_name, getattr(self, field_name))
return msg
class CompressionParametersType(ctypes.Structure):
"""Compression parameters.

View file

@ -900,3 +900,22 @@ goodstuff_with_full_header = r"""Codestream:
Step size: [(0, 8), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10), (0, 9), (0, 9), (0, 10)]
SOD marker segment @ (164, 0)
EOC marker segment @ (115218, 0)"""
decompression_parameters_type = """<class 'glymur.lib.openjp2.DecompressionParametersType'>:
cp_reduce: 0
cp_layer: 0
infile: b''
outfile: b''
decod_format: -1
cod_format: -1
DA_x0: 0
DA_x1: 0
DA_y0: 0
DA_y1: 0
m_verbose: 0
tile_index: 0
nb_tile_to_decode: 0
jpwl_correct: 0
jpwl_exp_comps: 0
jpwl_max_tiles: 0
flags: 0"""

View file

@ -32,12 +32,13 @@ import lxml.etree as ET
import glymur
from glymur import Jp2k, command_line
from . import fixtures
from .fixtures import OPJ_DATA_ROOT, opj_data_file
from .fixtures import WARNING_INFRASTRUCTURE_ISSUE, WARNING_INFRASTRUCTURE_MSG
from .fixtures import text_gbr_27, text_gbr_33, text_gbr_34
from .fixtures import (
OPJ_DATA_ROOT, opj_data_file,
WARNING_INFRASTRUCTURE_ISSUE, WARNING_INFRASTRUCTURE_MSG,
WINDOWS_TMP_FILE_MSG, text_gbr_27, text_gbr_33, text_gbr_34
)
@unittest.skipIf(os.name == "nt", "Temporary file issue on window.")
@unittest.skipIf(os.name == "nt", WINDOWS_TMP_FILE_MSG)
class TestPrinting(unittest.TestCase):
"""Tests for verifying how printing works."""
def setUp(self):
@ -617,6 +618,24 @@ class TestPrinting(unittest.TestCase):
self.assertEqual(actual, expected)
@unittest.skipIf(re.match('1|2.0', glymur.version.openjpeg_version),
"Requires openjpeg 2.1.0 or higher")
class TestPrintingOpenjp2(unittest.TestCase):
"""Tests for verifying how printing works on openjp2 library structures."""
def setUp(self):
self.jp2file = glymur.data.nemo()
def tearDown(self):
pass
def test_decompression_parameters(self):
"""printing DecompressionParametersType"""
dparams = glymur.lib.openjp2.set_default_decoder_parameters()
with patch('sys.stdout', new=StringIO()) as fake_out:
print(dparams)
actual = fake_out.getvalue().strip()
expected = fixtures.decompression_parameters_type
self.assertEqual(actual, expected)
@unittest.skipIf(OPJ_DATA_ROOT is None,
"OPJ_DATA_ROOT environment variable not set")