Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #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
Beispiel #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)
Beispiel #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)
Beispiel #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)
Beispiel #12
0
 def assert_asm_from(self, code):
     self.code = code
     self.game = compose(code)
     self.asm = self.game.to_asm()
     return WhatElse(self)
Beispiel #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)
Beispiel #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)