Пример #1
0
    def test_undefined_def_raises_nameerror(self):
        code = (
            'from pynes.bitbag import *\n'
            
            'undefined_def()\n'
            )

        with self.assertRaises(NameError) as nm:
            compose(code)

        self.assertEquals("name 'undefined_def' is not defined",
            nm.exception.message)
Пример #2
0
    def test_load_palette_raises_typeerror_when_called_without_args(self):
        code = (
            'from pynes.bitbag import *\n'

            'load_palette()'
        )

        with self.assertRaises(TypeError) as te:
            compose(code)

        self.assertEquals(
            'load_palette() takes exactly 2 arguments (1 given)',
            te.exception.message)
Пример #3
0
    def test_wait_vblank_raises_typeerror_when_called_with_args(self):
        code = (
            'from pynes.bitbag import *\n'

            'wait_vblank(1)'
        )

        with self.assertRaises(TypeError) as te:
            compose(code)

        self.assertEquals(
            'wait_vblank() takes exactly 1 argument (2 given)',
            te.exception.message)
Пример #4
0
 def test_rs_with_scroll(self):
     code = ('from pynes.bitbag import *\n'
             'scroll = rs(1)\n'
             'nametable = rs(1)\n'
             'columnLow = rs(1)\n'
             'columnHigh = rs(1)\n'
             'sourceLow = rs(1)\n'
             'sourceHigh = rs(1)\n'
             'columnNumber = rs(1)\n')
     game = compose(code)
     asm = game.to_asm()
     self.assertEquals(7, len(game._vars))
     self.assertEquals(1, game._vars['scroll'].size)
     self.assertEquals(1, game._vars['nametable'].size)
     self.assertEquals(1, game._vars['columnLow'].size)
     self.assertEquals(1, game._vars['columnHigh'].size)
     self.assertEquals(1, game._vars['sourceLow'].size)
     self.assertEquals(1, game._vars['sourceHigh'].size)
     self.assertEquals(1, game._vars['columnNumber'].size)
     self.assertTrue('.bank 0' not in asm)
     self.assertTrue('.org $C000' not in asm)
     # self.assertTrue('.bank 1' not in asm)
     self.assertTrue('.org $E000' not in asm)
     self.assertTrue('.rsset $0000' in asm)
     self.assertTrue('scroll .rs 1' in asm)
     self.assertTrue('nametable .rs 1' in asm)
     self.assertTrue('columnLow .rs 1' in asm)
     self.assertTrue('columnHigh .rs 1' in asm)
     self.assertTrue('sourceLow .rs 1' in asm)
     self.assertTrue('sourceHigh .rs 1' in asm)
     self.assertTrue('columnNumber .rs 1' in asm)
Пример #5
0
 def test_rs_with_scroll(self):
     code = (
         'from pynes.bitbag import *\n'
         'scroll = rs(1)\n'
         'nametable = rs(1)\n'
         'columnLow = rs(1)\n'
         'columnHigh = rs(1)\n'
         'sourceLow = rs(1)\n'
         'sourceHigh = rs(1)\n'
         'columnNumber = rs(1)\n')
     game = compose(code)
     asm = game.to_asm()
     self.assertEquals(7, len(game._vars))
     self.assertEquals(1, game._vars['scroll'].size)
     self.assertEquals(1, game._vars['nametable'].size)
     self.assertEquals(1, game._vars['columnLow'].size)
     self.assertEquals(1, game._vars['columnHigh'].size)
     self.assertEquals(1, game._vars['sourceLow'].size)
     self.assertEquals(1, game._vars['sourceHigh'].size)
     self.assertEquals(1, game._vars['columnNumber'].size)
     self.assertTrue('.bank 0' not in asm)
     self.assertTrue('.org $C000' not in asm)
     #self.assertTrue('.bank 1' not in asm)
     self.assertTrue('.org $E000' not in asm)
     self.assertTrue('.rsset $0000' in asm)
     self.assertTrue('scroll .rs 1' in asm)
     self.assertTrue('nametable .rs 1' in asm)
     self.assertTrue('columnLow .rs 1' in asm)
     self.assertTrue('columnHigh .rs 1' in asm)
     self.assertTrue('sourceLow .rs 1' in asm)
     self.assertTrue('sourceHigh .rs 1' in asm)
     self.assertTrue('columnNumber .rs 1' in asm)
Пример #6
0
    def test_movingsprite(self):
        code = (
            'from pynes.bitbag import *\n'

            #'import_chr("player.chr")\n'
            'palette = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\n'
            '    0x0F, 48, 49, 50, 51, 53, 54, 55, 56, 57, 58, 59,\n'
            '    60, 61, 62, 63 ]\n'
            #'sprite = define_sprite()\n'
            'px = rs(1)\n'
            'py = rs(1)\n'

            'def reset():\n'
            '    wait_vblank()\n'
            #'    clearmen()\n'
            '    wait_vblank()\n'
            #'    load_palette(palette)\n'
            #'    load_sprite(sprite)\n'

            'def joypad1_up():\n'
            '    global y\n'
            '    py += 1\n'

            'def joypad1_down():\n'
            '    global y\n'
            '    py -= 1\n'

            'def joypad1_left():\n'
            '     get_sprite(0).x += 1'
            #'    global x\n'
            #'    px -= 1\n'

            #'def joypad1_right():\n'
            #'    global x\n'
            #'    px += 1\n'
            )

        game = compose(code)
        asm = game.to_asm()
        #self.assertEquals(1, len(game.bitpaks))
        self.assertTrue('.bank 0' in asm)
        self.assertTrue('.org $C000' in asm)
        self.assertTrue('.bank 1' in asm)
        self.assertTrue('.org $E000' in asm)
        self.assertTrue('NMI:' in asm)
        self.assertTrue('JoyPad1Select:' in asm)
        self.assertTrue('JoyPad1Start:' in asm)
        self.assertTrue('JoyPad1A:' in asm)
        self.assertTrue('JoyPad1B:' in asm)
        self.assertTrue('JoyPad1Up:' in asm)
        self.assertTrue('JoyPad1Down:' in asm)
        self.assertTrue('JoyPad1Left:' in asm)
        self.assertTrue('JoyPad1Right:' in asm)
Пример #7
0
def press_start(asm=False):
    filename = sys.argv[0]
    pyfile = open(filename)
    code = pyfile.read()
    pyfile.close()
    game = compose(code)
    asmcode = game.to_asm()

    if (asm):
        asm_filename = filename + '.asm'
        asm_file = open(asm_filename, 'w')
        asm_file.write(asmcode)
        asm_file.close()
        print(asm_filename)
Пример #8
0
def press_start(asm = False):
    filename = sys.argv[0]
    pyfile = open(filename)
    code = pyfile.read()
    pyfile.close()
    game = compose(code)
    asmcode = game.to_asm()

    if (asm):
        asm_filename = filename + '.asm'
        asm_file = open(asm_filename, 'w')
        asm_file.write(asmcode)
        asm_file.close()
        print asm_filename
Пример #9
0
def press_start(asm=False):
    filename = sys.argv[0]
    pyfile = open(filename)
    code = pyfile.read()
    pyfile.close()
    game = compose(code)
    asmcode = game.to_asm()

    if asm:
        asm_filename = filename + ".asm"
        asm_file = open(asm_filename, "w")
        asm_file.write(asmcode)
        asm_file.close()
        print(asm_filename)
Пример #10
0
    def test_rs_with_x_and_y_with_size_1(self):
        code = ('from pynes.bitbag import *\n' 'x = rs(1)\n' 'y = rs(1)')
        game = compose(code)
        asm = game.to_asm()
        self.assertEquals(2, len(game._vars))
        self.assertEquals(1, game._vars['x'].size)
        self.assertEquals(1, game._vars['y'].size)
        self.assertTrue('.bank 0' not in asm)
        self.assertTrue('.org $C000' not in asm)
        # self.assertTrue('.bank 1' not in asm)
        self.assertTrue('.org $E000' not in asm)

        self.assertTrue('.rsset $0000' in asm)
        self.assertTrue('x .rs 1' in asm)
        self.assertTrue('y .rs 1' in asm)
Пример #11
0
    def test_rs_with_x_and_y_with_size_1(self):
        code = (
            'from pynes.bitbag import *\n'
            'x = rs(1)\n'
            'y = rs(1)')
        game = compose(code)
        asm = game.to_asm()
        self.assertEquals(2, len(game._vars))
        self.assertEquals(1, game._vars['x'].size)
        self.assertEquals(1, game._vars['y'].size)
        self.assertTrue('.bank 0' not in asm)
        self.assertTrue('.org $C000' not in asm)
        #self.assertTrue('.bank 1' not in asm)
        self.assertTrue('.org $E000' not in asm)

        self.assertTrue('.rsset $0000' in asm)
        self.assertTrue('x .rs 1' in asm)
        self.assertTrue('y .rs 1' in asm)
Пример #12
0
 def assert_asm_from(self, code):
     self.code = code
     self.game = compose(code)
     self.asm = self.game.to_asm()
     return WhatElse(self)
Пример #13
0
 def assert_asm_without_ines_from(self, code):
     self.code = code
     self.game = compose(code)
     self.asm = self.game.to_asm()
     compile(self.asm, self.path)
     return WhatElse(self)
Пример #14
0
 def assert_asm_without_ines_from(self, code):
     self.code = code
     self.game = compose(code)
     self.asm = self.game.to_asm()
     compile(self.asm, self.path)
     return WhatElse(self)