def rect3():
    fb = FrameBuffer(matrix_layout=[(0,0,0)])
    fb.rect((2,1),(3,5), fill=True)
    expected_fb = '''
        00000000
        00000000
        00FFF000
        00FFF000
        00FFF000
        00FFF000
        00FFF000
        00000000
        '''
    return arrays_equal(expected_fb, fb)
def rect2():
    fb = FrameBuffer(matrix_layout=[(0,0,0)])
    fb.rect((0,0),(8,8), fill=True)
    expected_fb = '''
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        '''
    return arrays_equal(expected_fb, fb)
def rect3():
    fb = FrameBuffer(matrix_layout=[(0, 0, 0)])
    fb.rect((2, 1), (3, 5), fill=True)
    expected_fb = '''
        00000000
        00000000
        00FFF000
        00FFF000
        00FFF000
        00FFF000
        00FFF000
        00000000
        '''
    return arrays_equal(expected_fb, fb)
def rect2():
    fb = FrameBuffer(matrix_layout=[(0, 0, 0)])
    fb.rect((0, 0), (8, 8), fill=True)
    expected_fb = '''
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        FFFFFFFF
        '''
    return arrays_equal(expected_fb, fb)
def rect4():
    fb = FrameBuffer(matrix_layout=[(0,0,0)])
    fb.rect((0,0),(4,5), color=1)
    fb.rect((2,2),(6,6), color=2)
    fb.rect((5,1),(3,3), color=3)
    fb.rect((1,5),(4,2), color=4)
    expected_fb = '''
        00222222
        04444002
        04444002
        11210002
        10210333
        10222323
        10010333
        11110000
        '''
    return arrays_equal(expected_fb, fb)
def rect4():
    fb = FrameBuffer(matrix_layout=[(0, 0, 0)])
    fb.rect((0, 0), (4, 5), color=1)
    fb.rect((2, 2), (6, 6), color=2)
    fb.rect((5, 1), (3, 3), color=3)
    fb.rect((1, 5), (4, 2), color=4)
    expected_fb = '''
        00222222
        04444002
        04444002
        11210002
        10210333
        10222323
        10010333
        11110000
        '''
    return arrays_equal(expected_fb, fb)
        fb.line((0,0), (7,7))
        fb.line((0,7), (7,0))
        fb.line((fb.width-8,0), (fb.width-1,7))
        fb.line((fb.width-8,7), (fb.width-1,0))

    # Number UUTs
    endcaps()
    for uut in range(1,num_uuts-1):
        fb.draw(digits[uut], (8*uut+1, 0))
    fb.show()
    time.sleep(3)

    # Brightness sequence
    for color in range(16):
        endcaps()
        fb.rect((8,0), (fb.width-16,8), fill=True, color=color)
        fb.show()
        time.sleep(4/16)

    # Horizontal line moving down
    for y in reversed(range(8)):
        endcaps()
        fb.line((8,y),(fb.width-9,y))
        fb.show()
        time.sleep(4/8)

    def hash(color=0xF):
        for x in range(8, fb.width-8, 2):
            for y in range(0,8,2):
                fb.point(x, y, color=color)
                fb.point(x + 1, y + 1, color=color)