px8 0.0.4

Open source fantasy console in Rust
px8 / python cartridge
version 1
__python__

import time


first_time = True


def small_rect():
    rect(64, 64, 74, 74)


def small_rectfill():
    rectfill(64, 64, 74, 74)


def large_rect():
    rect(0, 0, 127, 127)


def large_rectfill():
    rectfill(0, 0, 127, 127)


def text():
    px8_print("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, 64, 7)


def line_test():
    line(0, 0, 127, 127, 7)


def circ_test():
    circ(63, 63, 40, 7)


def circfill_test():
    circfill(63, 63, 40, 7)


def perftest(name, f, iterations):
    start = time.time()
    for i in range(iterations):
        f()
    end = time.time()
    elapsed_time = end - start
    time_per_op = elapsed_time * 1000000 / iterations
    print("%-20s%8d%20.3f%20.3f" %
          (name, iterations, elapsed_time, time_per_op))


tests = [
    #("cls", cls, 1000000),
    ("cls", cls, 1000000),
    ("small_rect", small_rect, 1000000),
    ("small_rectfill", small_rectfill, 1000000),
    ("large_rect", large_rect, 100000),
    ("large_rectfill", large_rectfill, 10000),
    ("text", text, 100000),
    ("line", line_test, 100000),
    ("circ", circ_test, 100000),
    ("circfill", circfill_test, 10000)
]


def _init():
    pass


def _update():
    pass


def _draw():
    global first_time
    if first_time:
        cls()
        print("%-20s%-20s%-20s%-20s" %
              ("test", "iterations", "total_time(secs)", "time_per_op(us)"))

        for name, func, iterations in tests:
            perftest(name, func, iterations)
            first_time = False