pylint work.

Focused on the codestream object.  More to do, but the changes were
considerable.
This commit is contained in:
John Evans 2013-07-07 13:36:32 -04:00
commit 0162117ee2
9 changed files with 2782 additions and 2756 deletions

File diff suppressed because it is too large Load diff

View file

@ -440,9 +440,9 @@ class Jp2k(Jp2kBox):
JP2HeaderBox(),
ContiguousCodestreamBox()]
c = self.get_codestream()
height = c.segment[1].Ysiz
width = c.segment[1].Xsiz
num_components = len(c.segment[1].XRsiz)
height = c.segment[1].ysiz
width = c.segment[1].xsiz
num_components = len(c.segment[1].xrsiz)
boxes[2].box = [ImageHeaderBox(height=height,
width=width,
num_components=num_components),
@ -618,8 +618,8 @@ class Jp2k(Jp2kBox):
"""
# Check for differing subsample factors.
codestream = self.get_codestream(header_only=True)
dxs = np.array(codestream.segment[1].XRsiz)
dys = np.array(codestream.segment[1].YRsiz)
dxs = np.array(codestream.segment[1].xrsiz)
dys = np.array(codestream.segment[1].yrsiz)
if np.any(dxs - dxs[0]) or np.any(dys - dys[0]):
msg = "Components must all have the same subsampling factors "
msg += "to use this method with OpenJPEG 1.5.1. Please consider "
@ -740,8 +740,8 @@ class Jp2k(Jp2kBox):
"""
# Check for differing subsample factors.
codestream = self.get_codestream(header_only=True)
dxs = np.array(codestream.segment[1].XRsiz)
dys = np.array(codestream.segment[1].YRsiz)
dxs = np.array(codestream.segment[1].xrsiz)
dys = np.array(codestream.segment[1].yrsiz)
if np.any(dxs - dxs[0]) or np.any(dys - dys[0]):
msg = "Components must all have the same subsampling factors."
raise RuntimeError(msg)
@ -798,7 +798,7 @@ class Jp2k(Jp2kBox):
if reduce == -1:
# Get the lowest resolution thumbnail.
codestream = self.get_codestream()
reduce = codestream.segment[2].SPcod[4]
reduce = codestream.segment[2].spcod[4]
dparam.cp_reduce = reduce
if area is not None:

View file

@ -5,6 +5,7 @@ from .test_jp2k import TestJp2k as jp2k
from .test_icc import TestICC as icc
from .test_printing import TestPrinting as printing
from .test_opj_suite import TestSuite as suite
from .test_opj_suite import TestSuiteDump as suitedump
from .test_opj_suite_write import TestSuiteWrite as suitew
from .test_opj_suite_neg import TestSuiteNegative as suiteneg
from .test_jp2box import TestJp2Boxes as box

View file

@ -56,7 +56,7 @@ class TestCodestream(unittest.TestCase):
self.assertEqual(c.segment[2].id, '0xff6f')
self.assertEqual(c.segment[2].length, 3)
self.assertEqual(c.segment[2].data, b'\x00')
self.assertEqual(c.segment[2]._data, b'\x00')
@unittest.skipIf(sys.hexversion < 0x03020000,
"Uses features introduced in 3.2.")
@ -86,7 +86,7 @@ class TestCodestream(unittest.TestCase):
self.assertEqual(c.segment[2].id, '0xff79')
self.assertEqual(c.segment[2].length, 3)
self.assertEqual(c.segment[2].data, b'\x00')
self.assertEqual(c.segment[2]._data, b'\x00')
if __name__ == "__main__":
unittest.main()

View file

@ -58,9 +58,9 @@ class TestChannelDefinition(unittest.TestCase):
j2k = Jp2k(self.j2kfile)
c = j2k.get_codestream()
height = c.segment[1].Ysiz
width = c.segment[1].Xsiz
num_components = len(c.segment[1].XRsiz)
height = c.segment[1].ysiz
width = c.segment[1].xsiz
num_components = len(c.segment[1].xrsiz)
self.jP = JPEG2000SignatureBox()
self.ftyp = FileTypeBox()
@ -268,9 +268,9 @@ class TestXML(unittest.TestCase):
j2k = Jp2k(self.j2kfile)
c = j2k.get_codestream()
height = c.segment[1].Ysiz
width = c.segment[1].Xsiz
num_components = len(c.segment[1].XRsiz)
height = c.segment[1].ysiz
width = c.segment[1].xsiz
num_components = len(c.segment[1].xrsiz)
self.jP = JPEG2000SignatureBox()
self.ftyp = FileTypeBox()
@ -345,9 +345,9 @@ class TestColourSpecificationBox(unittest.TestCase):
j2k = Jp2k(self.j2kfile)
c = j2k.get_codestream()
height = c.segment[1].Ysiz
width = c.segment[1].Xsiz
num_components = len(c.segment[1].XRsiz)
height = c.segment[1].ysiz
width = c.segment[1].xsiz
num_components = len(c.segment[1].xrsiz)
self.jP = JPEG2000SignatureBox()
self.ftyp = FileTypeBox()
@ -521,9 +521,9 @@ class TestJp2Boxes(unittest.TestCase):
JP2HeaderBox(),
ContiguousCodestreamBox()]
c = j2k.get_codestream()
height = c.segment[1].Ysiz
width = c.segment[1].Xsiz
num_components = len(c.segment[1].XRsiz)
height = c.segment[1].ysiz
width = c.segment[1].xsiz
num_components = len(c.segment[1].xrsiz)
boxes[2].box = [ImageHeaderBox(height=height,
width=width,
num_components=num_components),
@ -540,9 +540,9 @@ class TestJp2Boxes(unittest.TestCase):
JP2HeaderBox(),
ContiguousCodestreamBox()]
c = j2k.get_codestream()
height = c.segment[1].Ysiz
width = c.segment[1].Xsiz
num_components = len(c.segment[1].XRsiz)
height = c.segment[1].ysiz
width = c.segment[1].xsiz
num_components = len(c.segment[1].xrsiz)
boxes[2].box = [ColourSpecificationBox(colorspace=glymur.core.SRGB),
ImageHeaderBox(height=height,
width=width,
@ -554,9 +554,9 @@ class TestJp2Boxes(unittest.TestCase):
def test_first_2_boxes_not_jP_and_ftyp(self):
j2k = Jp2k(self.j2kfile)
c = j2k.get_codestream()
height = c.segment[1].Ysiz
width = c.segment[1].Xsiz
num_components = len(c.segment[1].XRsiz)
height = c.segment[1].ysiz
width = c.segment[1].xsiz
num_components = len(c.segment[1].xrsiz)
jP = JPEG2000SignatureBox()
ftyp = FileTypeBox()
@ -574,9 +574,9 @@ class TestJp2Boxes(unittest.TestCase):
def test_jp2h_not_preceeding_jp2c(self):
j2k = Jp2k(self.j2kfile)
c = j2k.get_codestream()
height = c.segment[1].Ysiz
width = c.segment[1].Xsiz
num_components = len(c.segment[1].XRsiz)
height = c.segment[1].ysiz
width = c.segment[1].xsiz
num_components = len(c.segment[1].xrsiz)
jP = JPEG2000SignatureBox()
ftyp = FileTypeBox()
@ -594,9 +594,9 @@ class TestJp2Boxes(unittest.TestCase):
def test_missing_codestream(self):
j2k = Jp2k(self.j2kfile)
c = j2k.get_codestream()
height = c.segment[1].Ysiz
width = c.segment[1].Xsiz
num_components = len(c.segment[1].XRsiz)
height = c.segment[1].ysiz
width = c.segment[1].xsiz
num_components = len(c.segment[1].xrsiz)
jP = JPEG2000SignatureBox()
ftyp = FileTypeBox()

View file

@ -153,7 +153,7 @@ class TestJp2k(unittest.TestCase):
np.testing.assert_array_equal(actdata, expdata)
c = ofile.get_codestream()
self.assertEqual(c.segment[2].SPcod[3], 0) # no mct
self.assertEqual(c.segment[2].spcod[3], 0) # no mct
def test_write_grayscale_with_mct(self):
# MCT usage makes no sense for grayscale images.
@ -175,7 +175,7 @@ class TestJp2k(unittest.TestCase):
np.testing.assert_array_equal(actdata, expdata)
c = ofile.get_codestream()
self.assertEqual(c.segment[2].SPcod[0], glymur.core.CPRL)
self.assertEqual(c.segment[2].spcod[0], glymur.core.CPRL)
def test_jp2_boxes(self):
# Verify the boxes of a JP2 file.
@ -344,7 +344,7 @@ class TestJp2k(unittest.TestCase):
c = j.get_codestream()
# Code block size is reported as XY in the codestream.
self.assertEqual(tuple(c.segment[2].SPcod[5:7]), (3, 2))
self.assertEqual(tuple(c.segment[2].spcod[5:7]), (3, 2))
def test_negative_too_many_dimensions(self):
# OpenJP2 only allows 2D or 3D images.

File diff suppressed because it is too large Load diff

View file

@ -83,50 +83,50 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(640, 480))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz), (0, 0))
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz), (0, 0))
# Tile size
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(640, 480))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (8, 8, 8))
# signed
self.assertEqual(c.segment[1]._signed, (False, False, False))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(1, 1)] * 3)
# COD: Coding style default
self.assertFalse(c.segment[2].Scod & 2) # no sop
self.assertFalse(c.segment[2].Scod & 4) # no eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.LRCP)
self.assertFalse(c.segment[2].scod & 2) # no sop
self.assertFalse(c.segment[2].scod & 4) # no eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.LRCP)
self.assertEqual(c.segment[2]._layers, 3) # layers = 3
self.assertEqual(c.segment[2].SPcod[3], 1) # mct
self.assertEqual(c.segment[2].SPcod[4], 5) # levels
self.assertEqual(c.segment[2].spcod[3], 1) # mct
self.assertEqual(c.segment[2].spcod[4], 5) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(64, 64)) # cblksz
# Selective arithmetic coding bypass
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# Reset context probabilities
self.assertFalse(c.segment[2].SPcod[7] & 0x02)
self.assertFalse(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass
self.assertFalse(c.segment[2].SPcod[7] & 0x04)
self.assertFalse(c.segment[2].spcod[7] & 0x04)
# Vertically causal context
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols
self.assertFalse(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertFalse(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(len(c.segment[2].SPcod), 9)
self.assertEqual(len(c.segment[2].spcod), 9)
def test_NR_ENC_Bretagne1_ppm_2_encode(self):
# NR-ENC-Bretagne1.ppm-2-encode
@ -141,50 +141,50 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(640, 480))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz), (0, 0))
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz), (0, 0))
# Tile size
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(640, 480))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (8, 8, 8))
# signed
self.assertEqual(c.segment[1]._signed, (False, False, False))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(1, 1)] * 3)
# COD: Coding style default
self.assertFalse(c.segment[2].Scod & 2) # no sop
self.assertFalse(c.segment[2].Scod & 4) # no eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.LRCP)
self.assertFalse(c.segment[2].scod & 2) # no sop
self.assertFalse(c.segment[2].scod & 4) # no eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.LRCP)
self.assertEqual(c.segment[2]._layers, 3) # layers = 3
self.assertEqual(c.segment[2].SPcod[3], 1) # mct
self.assertEqual(c.segment[2].SPcod[4], 1) # levels
self.assertEqual(c.segment[2].spcod[3], 1) # mct
self.assertEqual(c.segment[2].spcod[4], 1) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(64, 64)) # cblksz
# Selective arithmetic coding bypass
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# Reset context probabilities
self.assertFalse(c.segment[2].SPcod[7] & 0x02)
self.assertFalse(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass
self.assertFalse(c.segment[2].SPcod[7] & 0x04)
self.assertFalse(c.segment[2].spcod[7] & 0x04)
# Vertically causal context
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols
self.assertFalse(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertFalse(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(len(c.segment[2].SPcod), 9)
self.assertEqual(len(c.segment[2].spcod), 9)
def test_NR_ENC_Bretagne1_ppm_3_encode(self):
# NR-ENC-Bretagne1.ppm-3-encode
@ -200,48 +200,48 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(640, 480))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz), (0, 0))
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz), (0, 0))
# Tile size
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(640, 480))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (8, 8, 8))
# signed
self.assertEqual(c.segment[1]._signed, (False, False, False))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(1, 1)] * 3)
# COD: Coding style default
self.assertFalse(c.segment[2].Scod & 2) # no sop
self.assertFalse(c.segment[2].Scod & 4) # no eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.LRCP)
self.assertFalse(c.segment[2].scod & 2) # no sop
self.assertFalse(c.segment[2].scod & 4) # no eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.LRCP)
self.assertEqual(c.segment[2]._layers, 3) # layers = 3
self.assertEqual(c.segment[2].SPcod[3], 1) # mct
self.assertEqual(c.segment[2].SPcod[4], 5) # levels
self.assertEqual(c.segment[2].spcod[3], 1) # mct
self.assertEqual(c.segment[2].spcod[4], 5) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(16, 16)) # cblksz
# Selective arithmetic coding bypass
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# Reset context probabilities
self.assertFalse(c.segment[2].SPcod[7] & 0x02)
self.assertFalse(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass
self.assertFalse(c.segment[2].SPcod[7] & 0x04)
self.assertFalse(c.segment[2].spcod[7] & 0x04)
# Vertically causal context
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols
self.assertFalse(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertFalse(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(c.segment[2]._precinct_size,
[(2, 2), (4, 4), (8, 8), (16, 16), (32, 32),
@ -263,48 +263,48 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(data.shape[1], data.shape[0]))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz), (0, 0))
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz), (0, 0))
# Tile size. Reported as XY, not RC.
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(640, 480))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (8, 8, 8))
# signed
self.assertEqual(c.segment[1]._signed, (False, False, False))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(1, 1)] * 3)
# COD: Coding style default
self.assertFalse(c.segment[2].Scod & 2) # no sop
self.assertFalse(c.segment[2].Scod & 4) # no eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.LRCP)
self.assertFalse(c.segment[2].scod & 2) # no sop
self.assertFalse(c.segment[2].scod & 4) # no eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.LRCP)
self.assertEqual(c.segment[2]._layers, 3) # layers = 3
self.assertEqual(c.segment[2].SPcod[3], 1) # mct
self.assertEqual(c.segment[2].SPcod[4], 5) # levels
self.assertEqual(c.segment[2].spcod[3], 1) # mct
self.assertEqual(c.segment[2].spcod[4], 5) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(32, 32)) # cblksz
# Selective arithmetic coding bypass
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# Reset context probabilities
self.assertFalse(c.segment[2].SPcod[7] & 0x02)
self.assertFalse(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass
self.assertFalse(c.segment[2].SPcod[7] & 0x04)
self.assertFalse(c.segment[2].spcod[7] & 0x04)
# Vertically causal context
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols
self.assertFalse(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertFalse(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(c.segment[2]._precinct_size,
[(16, 16), (32, 32), (64, 64)] + [(128, 128)] * 3)
@ -321,50 +321,50 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(data.shape[1], data.shape[0]))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz), (0, 0))
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz), (0, 0))
# Tile size
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(127, 127))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (8, 8, 8))
# signed
self.assertEqual(c.segment[1]._signed, (False, False, False))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(1, 1)] * 3)
# COD: Coding style default
self.assertFalse(c.segment[2].Scod & 2) # no sop
self.assertFalse(c.segment[2].Scod & 4) # no eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.PCRL)
self.assertFalse(c.segment[2].scod & 2) # no sop
self.assertFalse(c.segment[2].scod & 4) # no eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.PCRL)
self.assertEqual(c.segment[2]._layers, 1) # layers = 1
self.assertEqual(c.segment[2].SPcod[3], 1) # mct
self.assertEqual(c.segment[2].SPcod[4], 5) # levels
self.assertEqual(c.segment[2].spcod[3], 1) # mct
self.assertEqual(c.segment[2].spcod[4], 5) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(64, 64)) # cblksz
# Selective arithmetic coding bypass
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# Reset context probabilities
self.assertFalse(c.segment[2].SPcod[7] & 0x02)
self.assertFalse(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass
self.assertFalse(c.segment[2].SPcod[7] & 0x04)
self.assertFalse(c.segment[2].spcod[7] & 0x04)
# Vertically causal context
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols
self.assertFalse(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertFalse(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(len(c.segment[2].SPcod), 9)
self.assertEqual(len(c.segment[2].spcod), 9)
def test_NR_ENC_Bretagne2_ppm_6_encode(self):
# NR-ENC-Bretagne2.ppm-6-encode
@ -378,53 +378,53 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(5183, 3887))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz), (0, 0))
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz), (0, 0))
# Tile size
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(5183, 3887))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (8, 8, 8))
# signed
self.assertEqual(c.segment[1]._signed, (False, False, False))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(2, 2)] * 3)
# COD: Coding style default
self.assertTrue(c.segment[2].Scod & 2) # sop
self.assertFalse(c.segment[2].Scod & 4) # no eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.LRCP)
self.assertTrue(c.segment[2].scod & 2) # sop
self.assertFalse(c.segment[2].scod & 4) # no eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.LRCP)
self.assertEqual(c.segment[2]._layers, 1) # layers = 1
self.assertEqual(c.segment[2].SPcod[3], 1) # mct
self.assertEqual(c.segment[2].SPcod[4], 5) # levels
self.assertEqual(c.segment[2].spcod[3], 1) # mct
self.assertEqual(c.segment[2].spcod[4], 5) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(64, 64)) # cblksz
# Selective arithmetic coding bypass
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# Reset context probabilities
self.assertFalse(c.segment[2].SPcod[7] & 0x02)
self.assertFalse(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass
self.assertFalse(c.segment[2].SPcod[7] & 0x04)
self.assertFalse(c.segment[2].spcod[7] & 0x04)
# Vertically causal context
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols
self.assertFalse(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertFalse(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(len(c.segment[2].SPcod), 9)
self.assertEqual(len(c.segment[2].spcod), 9)
# 18 SOP segments.
nsops = [x.Nsop for x in c.segment if x.id == 'SOP']
nsops = [x.nsop for x in c.segment if x.id == 'SOP']
self.assertEqual(nsops, list(range(18)))
def test_NR_ENC_Bretagne2_ppm_7_encode(self):
@ -438,50 +438,50 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(2592, 1944))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz), (0, 0))
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz), (0, 0))
# Tile size
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(2592, 1944))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (8, 8, 8))
# signed
self.assertEqual(c.segment[1]._signed, (False, False, False))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(1, 1)] * 3)
# COD: Coding style default
self.assertFalse(c.segment[2].Scod & 2) # no sop
self.assertTrue(c.segment[2].Scod & 4) # eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.LRCP)
self.assertFalse(c.segment[2].scod & 2) # no sop
self.assertTrue(c.segment[2].scod & 4) # eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.LRCP)
self.assertEqual(c.segment[2]._layers, 1) # layers = 1
self.assertEqual(c.segment[2].SPcod[3], 1) # mct
self.assertEqual(c.segment[2].SPcod[4], 5) # levels
self.assertEqual(c.segment[2].spcod[3], 1) # mct
self.assertEqual(c.segment[2].spcod[4], 5) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(64, 64)) # cblksz
# Selective arithmetic coding BYPASS
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# RESET context probabilities (RESET)
self.assertTrue(c.segment[2].SPcod[7] & 0x02)
self.assertTrue(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass, RESTART(TERMALL)
self.assertTrue(c.segment[2].SPcod[7] & 0x04)
self.assertTrue(c.segment[2].spcod[7] & 0x04)
# Vertically causal context (VSC)
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination, ERTERM(SEGTERM)
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols, SEGMARK(SEGSYSM)
self.assertTrue(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertTrue(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(len(c.segment[2].SPcod), 9)
self.assertEqual(len(c.segment[2].spcod), 9)
# 18 EPH segments.
ephs = [x for x in c.segment if x.id == 'EPH']
@ -498,51 +498,51 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(2742, 2244))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz),
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz),
(150, 300))
# Tile size
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(2742, 2244))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (8, 8, 8))
# signed
self.assertEqual(c.segment[1]._signed, (False, False, False))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(1, 1)] * 3)
# COD: Coding style default
self.assertFalse(c.segment[2].Scod & 2) # no sop
self.assertFalse(c.segment[2].Scod & 4) # no eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.LRCP)
self.assertFalse(c.segment[2].scod & 2) # no sop
self.assertFalse(c.segment[2].scod & 4) # no eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.LRCP)
self.assertEqual(c.segment[2]._layers, 1) # layers = 1
self.assertEqual(c.segment[2].SPcod[3], 1) # mct
self.assertEqual(c.segment[2].SPcod[4], 5) # levels
self.assertEqual(c.segment[2].spcod[3], 1) # mct
self.assertEqual(c.segment[2].spcod[4], 5) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(64, 64)) # cblksz
# Selective arithmetic coding BYPASS
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# RESET context probabilities (RESET)
self.assertFalse(c.segment[2].SPcod[7] & 0x02)
self.assertFalse(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass, RESTART(TERMALL)
self.assertFalse(c.segment[2].SPcod[7] & 0x04)
self.assertFalse(c.segment[2].spcod[7] & 0x04)
# Vertically causal context (VSC)
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination, ERTERM(SEGTERM)
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols, SEGMARK(SEGSYSM)
self.assertFalse(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertFalse(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(len(c.segment[2].SPcod), 9)
self.assertEqual(len(c.segment[2].spcod), 9)
def test_NR_ENC_Cevennes1_bmp_9_encode(self):
infile = os.path.join(data_root, 'input/nonregression/Cevennes1.bmp')
@ -555,50 +555,50 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(2592, 1944))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz), (0, 0))
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz), (0, 0))
# Tile size
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(2592, 1944))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (8, 8, 8))
# signed
self.assertEqual(c.segment[1]._signed, (False, False, False))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(1, 1)] * 3)
# COD: Coding style default
self.assertFalse(c.segment[2].Scod & 2) # no sop
self.assertFalse(c.segment[2].Scod & 4) # no eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.LRCP)
self.assertFalse(c.segment[2].scod & 2) # no sop
self.assertFalse(c.segment[2].scod & 4) # no eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.LRCP)
self.assertEqual(c.segment[2]._layers, 1) # layers = 1
self.assertEqual(c.segment[2].SPcod[3], 1) # mct
self.assertEqual(c.segment[2].SPcod[4], 5) # levels
self.assertEqual(c.segment[2].spcod[3], 1) # mct
self.assertEqual(c.segment[2].spcod[4], 5) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(64, 64)) # cblksz
# Selective arithmetic coding BYPASS
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# RESET context probabilities (RESET)
self.assertFalse(c.segment[2].SPcod[7] & 0x02)
self.assertFalse(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass, RESTART(TERMALL)
self.assertFalse(c.segment[2].SPcod[7] & 0x04)
self.assertFalse(c.segment[2].spcod[7] & 0x04)
# Vertically causal context (VSC)
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination, ERTERM(SEGTERM)
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols, SEGMARK(SEGSYSM)
self.assertFalse(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertFalse(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(len(c.segment[2].SPcod), 9)
self.assertEqual(len(c.segment[2].spcod), 9)
def test_NR_ENC_Cevennes2_ppm_10_encode(self):
infile = os.path.join(data_root, 'input/nonregression/Cevennes2.ppm')
@ -611,50 +611,50 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(640, 480))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz), (0, 0))
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz), (0, 0))
# Tile size
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(640, 480))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (8, 8, 8))
# signed
self.assertEqual(c.segment[1]._signed, (False, False, False))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(1, 1)] * 3)
# COD: Coding style default
self.assertFalse(c.segment[2].Scod & 2) # no sop
self.assertFalse(c.segment[2].Scod & 4) # no eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.LRCP)
self.assertFalse(c.segment[2].scod & 2) # no sop
self.assertFalse(c.segment[2].scod & 4) # no eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.LRCP)
self.assertEqual(c.segment[2]._layers, 1) # layers = 1
self.assertEqual(c.segment[2].SPcod[3], 1) # mct
self.assertEqual(c.segment[2].SPcod[4], 5) # levels
self.assertEqual(c.segment[2].spcod[3], 1) # mct
self.assertEqual(c.segment[2].spcod[4], 5) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(64, 64)) # cblksz
# Selective arithmetic coding BYPASS
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# RESET context probabilities (RESET)
self.assertFalse(c.segment[2].SPcod[7] & 0x02)
self.assertFalse(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass, RESTART(TERMALL)
self.assertFalse(c.segment[2].SPcod[7] & 0x04)
self.assertFalse(c.segment[2].spcod[7] & 0x04)
# Vertically causal context (VSC)
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination, ERTERM(SEGTERM)
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols, SEGMARK(SEGSYSM)
self.assertFalse(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertFalse(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(len(c.segment[2].SPcod), 9)
self.assertEqual(len(c.segment[2].spcod), 9)
def test_NR_ENC_Rome_bmp_11_encode(self):
infile = os.path.join(data_root, 'input/nonregression/Rome.bmp')
@ -701,51 +701,51 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(640, 480))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz),
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz),
(0, 0))
# Tile size
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(640, 480))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (8, 8, 8))
# signed
self.assertEqual(c.segment[1]._signed, (False, False, False))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(1, 1)] * 3)
# COD: Coding style default
self.assertFalse(c.segment[2].Scod & 2) # no sop
self.assertFalse(c.segment[2].Scod & 4) # no eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.LRCP)
self.assertFalse(c.segment[2].scod & 2) # no sop
self.assertFalse(c.segment[2].scod & 4) # no eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.LRCP)
self.assertEqual(c.segment[2]._layers, 3) # layers = 3
self.assertEqual(c.segment[2].SPcod[3], 1) # mct
self.assertEqual(c.segment[2].SPcod[4], 2) # levels
self.assertEqual(c.segment[2].spcod[3], 1) # mct
self.assertEqual(c.segment[2].spcod[4], 2) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(64, 64)) # cblksz
# Selective arithmetic coding BYPASS
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# RESET context probabilities (RESET)
self.assertFalse(c.segment[2].SPcod[7] & 0x02)
self.assertFalse(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass, RESTART(TERMALL)
self.assertFalse(c.segment[2].SPcod[7] & 0x04)
self.assertFalse(c.segment[2].spcod[7] & 0x04)
# Vertically causal context (VSC)
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination, ERTERM(SEGTERM)
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols, SEGMARK(SEGSYSM)
self.assertFalse(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertFalse(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(len(c.segment[2].SPcod), 9)
self.assertEqual(len(c.segment[2].spcod), 9)
@unittest.skip("Known failure in openjpeg test suite.")
def test_NR_ENC_random_issue_0005_tif_12_encode(self):
@ -762,50 +762,50 @@ class TestSuiteWrite(unittest.TestCase):
# SIZ: Image and tile size
# Profile: "0" means profile 2
self.assertEqual(c.segment[1].Rsiz, 0)
self.assertEqual(c.segment[1].rsiz, 0)
# Reference grid size
self.assertEqual((c.segment[1].Xsiz, c.segment[1].Ysiz),
self.assertEqual((c.segment[1].xsiz, c.segment[1].ysiz),
(1024, 1024))
# Reference grid offset
self.assertEqual((c.segment[1].XOsiz, c.segment[1].YOsiz), (0, 0))
self.assertEqual((c.segment[1].xosiz, c.segment[1].yosiz), (0, 0))
# Tile size
self.assertEqual((c.segment[1].XTsiz, c.segment[1].YTsiz),
self.assertEqual((c.segment[1].xtsiz, c.segment[1].ytsiz),
(1024, 1024))
# Tile offset
self.assertEqual((c.segment[1].XTOsiz, c.segment[1].YTOsiz),
self.assertEqual((c.segment[1].xtosiz, c.segment[1].ytosiz),
(0, 0))
# bitdepth
self.assertEqual(c.segment[1]._bitdepth, (16,))
# signed
self.assertEqual(c.segment[1]._signed, (False,))
# subsampling
self.assertEqual(list(zip(c.segment[1].XRsiz, c.segment[1].YRsiz)),
self.assertEqual(list(zip(c.segment[1].xrsiz, c.segment[1].yrsiz)),
[(1, 1)])
# COD: Coding style default
self.assertFalse(c.segment[2].Scod & 2) # no sop
self.assertFalse(c.segment[2].Scod & 4) # no eph
self.assertEqual(c.segment[2].SPcod[0], glymur.core.LRCP)
self.assertFalse(c.segment[2].scod & 2) # no sop
self.assertFalse(c.segment[2].scod & 4) # no eph
self.assertEqual(c.segment[2].spcod[0], glymur.core.LRCP)
self.assertEqual(c.segment[2]._layers, 1) # layers = 1
self.assertEqual(c.segment[2].SPcod[3], 0) # mct
self.assertEqual(c.segment[2].SPcod[4], 5) # levels
self.assertEqual(c.segment[2].spcod[3], 0) # mct
self.assertEqual(c.segment[2].spcod[4], 5) # levels
self.assertEqual(tuple(c.segment[2]._code_block_size),
(64, 64)) # cblksz
# Selective arithmetic coding BYPASS
self.assertFalse(c.segment[2].SPcod[7] & 0x01)
self.assertFalse(c.segment[2].spcod[7] & 0x01)
# RESET context probabilities (RESET)
self.assertFalse(c.segment[2].SPcod[7] & 0x02)
self.assertFalse(c.segment[2].spcod[7] & 0x02)
# Termination on each coding pass, RESTART(TERMALL)
self.assertFalse(c.segment[2].SPcod[7] & 0x04)
self.assertFalse(c.segment[2].spcod[7] & 0x04)
# Vertically causal context (VSC)
self.assertFalse(c.segment[2].SPcod[7] & 0x08)
self.assertFalse(c.segment[2].spcod[7] & 0x08)
# Predictable termination, ERTERM(SEGTERM)
self.assertFalse(c.segment[2].SPcod[7] & 0x0010)
self.assertFalse(c.segment[2].spcod[7] & 0x0010)
# Segmentation symbols, SEGMARK(SEGSYSM)
self.assertFalse(c.segment[2].SPcod[7] & 0x0020)
self.assertEqual(c.segment[2].SPcod[8],
self.assertFalse(c.segment[2].spcod[7] & 0x0020)
self.assertEqual(c.segment[2].spcod[8],
glymur.core.WAVELET_TRANSFORM_5x3_REVERSIBLE)
self.assertEqual(len(c.segment[2].SPcod), 9)
self.assertEqual(len(c.segment[2].spcod), 9)
if __name__ == "__main__":
unittest.main()

View file

@ -640,6 +640,7 @@ class TestPrinting(unittest.TestCase):
' CME marker segment @ (3209, 37)',
' "Created by OpenJPEG version 2.0.0"']
expected = '\n'.join(lst)
self.maxDiff = None
self.assertEqual(actual, expected)
@unittest.skipIf(data_root is None,