test_rgb.py 1.54 KB
Newer Older
1 2
# Testing rgbimg module

Guido van Rossum's avatar
Guido van Rossum committed
3 4
import rgbimg, os, uu

Guido van Rossum's avatar
Guido van Rossum committed
5
from test_support import verbose, unlink, findfile
6 7 8 9 10 11

error = 'test_rgbimg.error'

print 'RGBimg test suite:'

def testimg(rgb_file, raw_file):
Guido van Rossum's avatar
Guido van Rossum committed
12 13 14 15 16 17 18 19 20 21 22 23 24
        rgb_file = findfile(rgb_file)
        raw_file = findfile(raw_file)
        width, height = rgbimg.sizeofimage(rgb_file)
        rgb = rgbimg.longimagedata(rgb_file)
        if len(rgb) != width * height * 4:
                raise error, 'bad image length'
        raw = open(raw_file, 'rb').read()
        if rgb != raw:
                raise error, \
                      'images don\'t match for '+rgb_file+' and '+raw_file
        for depth in [1, 3, 4]:
                rgbimg.longstoimage(rgb, width, height, depth, '@.rgb')
        os.unlink('@.rgb')
25

Guido van Rossum's avatar
Guido van Rossum committed
26 27 28 29 30 31 32 33 34
table = [
    ('testrgb.uue', 'test.rgb'),
    ('testimg.uue', 'test.rawimg'),
    ('testimgr.uue', 'test.rawimg.rev'),
    ]
for source, target in table:
    source = findfile(source)
    target = findfile(target)
    if verbose:
Guido van Rossum's avatar
Guido van Rossum committed
35
        print "uudecoding", source, "->", target, "..."
Guido van Rossum's avatar
Guido van Rossum committed
36 37 38 39 40
    uu.decode(source, target)

if verbose:
    print "testing..."

41 42
ttob = rgbimg.ttob(0)
if ttob != 0:
Guido van Rossum's avatar
Guido van Rossum committed
43
        raise error, 'ttob should start out as zero'
44 45 46 47 48

testimg('test.rgb', 'test.rawimg')

ttob = rgbimg.ttob(1)
if ttob != 0:
Guido van Rossum's avatar
Guido van Rossum committed
49
        raise error, 'ttob should be zero'
50 51 52 53 54

testimg('test.rgb', 'test.rawimg.rev')

ttob = rgbimg.ttob(0)
if ttob != 1:
Guido van Rossum's avatar
Guido van Rossum committed
55
        raise error, 'ttob should be one'
56 57 58

ttob = rgbimg.ttob(0)
if ttob != 0:
Guido van Rossum's avatar
Guido van Rossum committed
59
        raise error, 'ttob should be zero'
Guido van Rossum's avatar
Guido van Rossum committed
60 61 62

for source, target in table:
    unlink(findfile(target))