コード例 #1
0
ファイル: test_image.py プロジェクト: georghe-crihan/skoolkit
 def test_alternative_transparent_colour_overridden_by_mask(self):
     # White (PAPER) as transparent colour, overridden by mask
     iw_args = {'options': self.alpha_option}
     udg = Udg(56, (15,) * 8, (207,) * 8)
     udg_array = [[udg]]
     self._test_image(udg_array, mask=1, tindex=8, iw_args=iw_args)
コード例 #2
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_option_p(self, mock_open):
     scr = [0] * 6912
     exp_udgs = [[Udg(0, [0] * 8)] * 32 for i in range(24)]
     exp_udgs[0][0] = Udg(0, [255, 0, 0, 0, 0, 0, 0, 0])
     self._test_sna2img(mock_open, '-p 16384,255', scr, exp_udgs)
コード例 #3
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_option_p_address_range_with_step(self, mock_open):
     scr = [0] * 6912
     exp_udgs = [[Udg(0, [0] * 8)] * 32 for i in range(24)]
     exp_udgs[0][0] = Udg(0, [15] * 8)
     self._test_sna2img(mock_open, '-p 16384-18176-256,15', scr, exp_udgs)
コード例 #4
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_option_f_3(self, mock_open):
     scr = ([170] * 256 + [0] * 256) * 12 + [2] * 768
     exp_udgs = [[Udg(2, [0, 85] * 4)] * 32] * 24
     self._test_sna2img(mock_open, '--flip 3', scr, exp_udgs)
コード例 #5
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_option_m_multiple(self, mock_open):
     scr = [1, 1, 2, 2] + [0] * 6908
     exp_udgs = [[Udg(56, [1, 1, 0, 0, 0, 0, 2, 2])]]
     options = '-e UDG16392 -m 16384,2,16392 --move 16386,2,16398'
     self._test_sna2img(mock_open, options, scr, exp_udgs, scale=4)
コード例 #6
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_szx_input(self, mock_open):
     scr = ([170] * 256 + [0] * 256) * 12 + [7] * 768
     exp_udgs = [[Udg(7, [170, 0] * 4)] * 32] * 24
     self._test_sna2img(mock_open, '', scr, exp_udgs, ftype='szx')
コード例 #7
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_option_f_1(self, mock_open):
     scr = [170] * 6144 + [56] * 768
     exp_udgs = [[Udg(56, [85] * 8)] * 32] * 24
     self._test_sna2img(mock_open, '-f 1', scr, exp_udgs)
コード例 #8
0
ファイル: test_sna2img.py プロジェクト: dpt/skoolkit
 def test_option_p_0x_hexadecimal_values(self, mock_open):
     scr = [0] * 6912
     exp_udgs = [[Udg(0, [0] * 8)] * 32 for i in range(24)]
     exp_udgs[0][0] = Udg(0, [31] * 8)
     self._test_sna2img(mock_open, '-p 0x4000-0x4700-0x100,0x1f', scr,
                        exp_udgs)
コード例 #9
0
ファイル: test_sna2img.py プロジェクト: dpt/skoolkit
 def test_option_p_with_add_operation(self, mock_open):
     scr = [0] * 6912
     exp_udgs = [[Udg(0, [0] * 8)] * 32 for i in range(24)]
     exp_udgs[0][0].data[0] = 5
     self._test_sna2img(mock_open, '-p 16384-16415,+5', scr, exp_udgs)
コード例 #10
0
ファイル: test_image.py プロジェクト: georghe-crihan/skoolkit
 def test_animation_with_alternative_alpha(self):
     # White (PAPER) as transparent colour on first frame
     frame1 = Frame([[Udg(56, (15,) * 8)]], tindex=8, alpha=128)
     frame2 = Frame([[Udg(1, (15,) * 8)]])
     frames = [frame1, frame2]
     self._test_animated_image(frames)
コード例 #11
0
ファイル: test_image.py プロジェクト: georghe-crihan/skoolkit
 def test_animation_with_alternative_transparent_colour_and_alpha_on_second_frame_only(self):
     # Yellow (PAPER) as transparent colour on second frame
     frame1 = Frame([[Udg(56, (15,) * 8)]], tindex=7, alpha=20)
     frame2 = Frame([[Udg(48, (15,) * 8)]])
     frames = [frame1, frame2]
     self._test_animated_image(frames)
コード例 #12
0
ファイル: test_image.py プロジェクト: georghe-crihan/skoolkit
 def test_animation_cropped(self):
     # 2 frames, 4 colours, 4x4
     frame1 = Frame([[Udg(56, (128,) * 8)]], x=1, y=1, width=4, height=4)
     frame2 = Frame([[Udg(49, (64,) * 8)]], x=2, y=3, width=4, height=4)
     frames = [frame1, frame2]
     self._test_animated_image(frames)
コード例 #13
0
ファイル: test_image.py プロジェクト: georghe-crihan/skoolkit
 def test_alternative_alpha_255_with_alternative_transparent_colour(self):
     # White (PAPER) as transparent colour
     udg = Udg(56, (15,) * 8)
     udg_array = [[udg]]
     self._test_image(udg_array, tindex=8, alpha=255)
コード例 #14
0
ファイル: test_image.py プロジェクト: georghe-crihan/skoolkit
 def test_alternative_alpha_with_no_transparent_colour(self):
     # Black INK, white PAPER, cyan as transparent colour
     udg = Udg(56, (15,) * 8)
     udg_array = [[udg]]
     self._test_image(udg_array, tindex=6, alpha=200)
コード例 #15
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_gif_output(self, mock_open):
     scr = ([85] * 256 + [0] * 256) * 12 + [5] * 768
     exp_udgs = [[Udg(5, [85, 0] * 4)] * 32] * 24
     self._test_sna2img(mock_open, '', scr, exp_udgs, outfile='scr.gif')
コード例 #16
0
ファイル: test_sna2img.py プロジェクト: dpt/skoolkit
 def test_option_p_with_xor_operation(self, mock_open):
     scr = [255] * 6912
     exp_udgs = [[Udg(255, [255] * 8)] * 32 for i in range(24)]
     exp_udgs[0][0].data[0] = 240
     self._test_sna2img(mock_open, '-p 16384-16415,^15', scr, exp_udgs)
コード例 #17
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_sna_input(self, mock_open):
     scr = ([84] * 256 + [0] * 256) * 12 + [6] * 768
     exp_udgs = [[Udg(6, [84, 0] * 4)] * 32] * 24
     self._test_sna2img(mock_open, '', scr, exp_udgs, ftype='sna')
コード例 #18
0
ファイル: test_sna2img.py プロジェクト: dpt/skoolkit
 def test_option_r_1(self, mock_open):
     scr = ([170] * 256 + [0] * 256) * 12 + [56] * 768
     exp_udgs = [[Udg(56, [85, 0] * 4)] * 24] * 32
     self._test_sna2img(mock_open, '-r 1', scr, exp_udgs)
コード例 #19
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_z80_input(self, mock_open):
     scr = ([42] * 256 + [0] * 256) * 12 + [8] * 768
     exp_udgs = [[Udg(8, [42, 0] * 4)] * 32] * 24
     self._test_sna2img(mock_open, '', scr, exp_udgs, ftype='z80')
コード例 #20
0
ファイル: test_sna2img.py プロジェクト: dpt/skoolkit
 def test_option_r_3(self, mock_open):
     scr = ([170] * 256 + [0] * 256) * 12 + [2] * 768
     exp_udgs = [[Udg(2, [0, 170] * 4)] * 24] * 32
     self._test_sna2img(mock_open, '--rotate 3', scr, exp_udgs)
コード例 #21
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_option_f_2(self, mock_open):
     scr = ([255] * 256 + [0] * 256) * 12 + [1] * 768
     exp_udgs = [[Udg(1, [0, 255] * 4)] * 32] * 24
     self._test_sna2img(mock_open, '-f 2', scr, exp_udgs)
コード例 #22
0
ファイル: test_sna2img.py プロジェクト: dpt/skoolkit
 def test_option_s(self, mock_open):
     scr = [0] * 6144 + [1] * 768
     exp_udgs = [[Udg(1, [0] * 8)] * 32] * 24
     self._test_sna2img(mock_open, '-s 2', scr, exp_udgs, 2)
コード例 #23
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_option_i(self, mock_open):
     scr = [85] * 6144 + [135, 7] * 384
     udg1 = Udg(7, [170] * 8)  # Inverted
     udg2 = Udg(7, [85] * 8)  # Unchanged
     exp_udgs = [[udg1, udg2] * 16] * 24
     self._test_sna2img(mock_open, '-i', scr, exp_udgs)
コード例 #24
0
ファイル: test_sna2img.py プロジェクト: dpt/skoolkit
 def test_option_S(self, mock_open):
     scr = [15] * 6144 + [4] * 32 + [7] * 736
     exp_udgs = [[Udg(4, [15] * 8)] * 5] + [[Udg(7, [15] * 8)] * 5] * 5
     self._test_sna2img(mock_open, '-S 5x6', scr, exp_udgs)
コード例 #25
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_option_o(self, mock_open):
     scr = [240] * 6144 + [7] * 736 + [4] * 32
     exp_udgs = [[Udg(7, [240] * 8)] * 5] * 5 + [[Udg(4, [240] * 8)] * 5]
     self._test_sna2img(mock_open, '-o 27,18', scr, exp_udgs)
コード例 #26
0
# SkoolKit. If not, see <http://www.gnu.org/licenses/>.

from collections import defaultdict
import inspect
import re

from skoolkit import VERSION, SkoolKitError, SkoolParsingError
from skoolkit.graphics import Udg

_map_cache = {}

_writer = None

_cwd = ()

FILL_UDG = Udg(66, [129, 66, 36, 24, 24, 36, 66, 128])

MACRO_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

DELIMITERS = {
    '(': ')',
    '[': ']',
    '{': '}'
}

AE_CHARS = frozenset(' !=+-*/<>&|^%$ABCDEFabcdef0123456789()')

INTEGER = '(\d+|\$[0-9a-fA-F]+)'

PARAM_NAME = '[a-z]+'
コード例 #27
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_option_p_address_range(self, mock_open):
     scr = [0] * 6912
     exp_udgs = [[Udg(0, [0] * 8)] * 32 for i in range(24)]
     exp_udgs[0][0].data[0] = 255
     self._test_sna2img(mock_open, '-p 16384-16415,255', scr, exp_udgs)
コード例 #28
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_no_options(self, mock_open):
     scr = ([170] * 256 + [0] * 256) * 12 + [4] * 768
     exp_udgs = [[Udg(4, [170, 0] * 4)] * 32] * 24
     self._test_sna2img(mock_open, '', scr, exp_udgs)
コード例 #29
0
ファイル: test_sna2img.py プロジェクト: sbaldovi/skoolkit
 def test_option_p_hexadecimal_values(self, mock_open):
     scr = [0] * 6912
     exp_udgs = [[Udg(0, [0] * 8)] * 32 for i in range(24)]
     exp_udgs[0][0] = Udg(0, [15] * 8)
     self._test_sna2img(mock_open, '-p $4000-$4700-$100,$0f', scr, exp_udgs)
コード例 #30
0
ファイル: test_image.py プロジェクト: georghe-crihan/skoolkit
 def test_alternative_transparent_colour_ink(self):
     # Black (INK) as transparent colour
     iw_args = {'options': self.alpha_option}
     udg = Udg(56, (15,) * 8)
     udg_array = [[udg]]
     self._test_image(udg_array, tindex=1, iw_args=iw_args)