72 lines
2.3 KiB
Python
72 lines
2.3 KiB
Python
import gameduino
|
|
import unittest
|
|
import Image
|
|
import StringIO
|
|
|
|
import gameduino.prep as gdprep
|
|
import gameduino.sim as gdsim
|
|
import gameduino.compress as compress
|
|
import gameduino
|
|
|
|
class TestGameduino(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.bg = Image.open("platformer.png")
|
|
pass
|
|
|
|
def test_encode(self):
|
|
im = self.bg.convert("RGB")
|
|
w,h = im.size
|
|
(pic,chr,pal) = gdprep.encode(im)
|
|
self.assertEqual(len(chr.tostring()) / 16, len(pal.tostring()) / 8)
|
|
self.assertEqual(len(pic), (w / 8) * (h / 8))
|
|
|
|
def test_imageRAM(self):
|
|
hh = StringIO.StringIO()
|
|
singles = [Image.open("rock0r-pal16.png"),
|
|
gdprep.palettize(Image.open("rock0r.png"), 16),
|
|
gdprep.palettize(Image.open("rock0r-pal16.png"), 16)]
|
|
for r in singles:
|
|
print r.mode
|
|
ir = gdprep.ImageRAM(hh)
|
|
ir.addsprites("rock0", (16, 16), r, gdprep.PALETTE16A, center = (8,8))
|
|
self.assert_(len(hh.getvalue()) > 0)
|
|
self.assertEqual(len(gdprep.getpal(r)), 16)
|
|
ir = gdprep.ImageRAM(hh)
|
|
(walk,) = gdprep.palettize([Image.open("walk.png")], 16)
|
|
ir.addsprites("walk", (32, 32), walk, gdprep.PALETTE16A, center = (8,32))
|
|
print len(ir.used())
|
|
print hh.getvalue()
|
|
|
|
def test_compress(self):
|
|
cc = compress.Codec(b_off = 9, b_len = 3)
|
|
for plain in [ "00000111100000", "This is this" * 4]:
|
|
compressed = cc.compress(plain)
|
|
print "compressed to", len(compressed), "tokens"
|
|
print compressed
|
|
self.assertEqual(plain, cc.decompress(compressed))
|
|
print len(cc.sched2bs(compressed))
|
|
|
|
def test_sim(self):
|
|
gd = gdsim.Gameduino()
|
|
self.assertEqual(gd.rd(gameduino.IDENT), 0x6d)
|
|
i = gd.im()
|
|
self.assertEqual(i.size, (400,300))
|
|
|
|
def test_prep_sim(self):
|
|
im = self.bg.convert("RGB")
|
|
(pic,chr,pal) = gdprep.encode(im)
|
|
gd = gdsim.Gameduino()
|
|
gd.wrstr(gameduino.RAM_PIC, pic)
|
|
gd.wrstr(gameduino.RAM_CHR, chr)
|
|
gd.wrstr(gameduino.RAM_PAL, pal)
|
|
gd.im().save("preview.png")
|
|
|
|
def test_471fcf9e(self):
|
|
im = Image.open("471fcf9e.png")
|
|
imp = gdprep.palettize(im, 16)
|
|
print gdprep.getpal(imp)
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|