text: try:
      import framebuf
  except ImportError:
      print("SKIP")
      raise SystemExit
  
  w = 5
  h = 16
  size = w * h // 8
  buf = bytearray(size)
  maps = {framebuf.MONO_VLSB : 'MONO_VLSB',
          framebuf.MONO_HLSB : 'MONO_HLSB',
          framebuf.MONO_HMSB : 'MONO_HMSB'}
  
  for mapping in maps.keys():
      for x in range(size):
          buf[x] = 0
      fbuf = framebuf.FrameBuffer(buf, w, h, mapping)
      print(maps[mapping])
      # access as buffer
      print(memoryview(fbuf)[0])
  
      # fill
      fbuf.fill(1)
      print(buf)
      fbuf.fill(0)
      print(buf)
  
      # put pixel
      fbuf.pixel(0, 0, 1)
      fbuf.pixel(4, 0, 1)
      fbuf.pixel(0, 15, 1)
      fbuf.pixel(4, 15, 1)
      print(buf)
  
      # clear pixel
      fbuf.pixel(4, 15, 0)
      print(buf)
  
      # get pixel
      print(fbuf.pixel(0, 0), fbuf.pixel(1, 1))
  
      # hline
      fbuf.fill(0)
      fbuf.hline(0, 1, w, 1)
      print('hline', buf)
  
      # vline
      fbuf.fill(0)
      fbuf.vline(1, 0, h, 1)
      print('vline', buf)
  
      # rect
      fbuf.fill(0)
      fbuf.rect(1, 1, 3, 3, 1)
      print('rect', buf)
  
      #fill rect
      fbuf.fill(0)
      fbuf.fill_rect(0, 0, 0, 3, 1) # zero width, no-operation
      fbuf.fill_rect(1, 1, 3, 3, 1)
      print('fill_rect', buf)
  
      # line
      fbuf.fill(0)
      fbuf.line(1, 1, 3, 3, 1)
      print('line', buf)
  
      # line steep negative gradient
      fbuf.fill(0)
      fbuf.line(3, 3, 2, 1, 1)
      print('line', buf)
  
      # scroll
      fbuf.fill(0)
      fbuf.pixel(2, 7, 1)
      fbuf.scroll(0, 1)
      print(buf)
      fbuf.scroll(0, -2)
      print(buf)
      fbuf.scroll(1, 0)
      print(buf)
      fbuf.scroll(-1, 0)
      print(buf)
      fbuf.scroll(2, 2)
      print(buf)
  
      # print text
      fbuf.fill(0)
      fbuf.text("hello", 0, 0, 1)
      print(buf)
      fbuf.text("hello", 0, 0, 0) # clear
      print(buf)
  
      # char out of font range set to chr(127)
      fbuf.text(str(chr(31)), 0, 0)
      print(buf)
      print()
  
  # test invalid constructor, and stride argument
  try:
      fbuf = framebuf.FrameBuffer(buf, w, h, -1, w)
  except ValueError:
      print("ValueError")
  
  # test legacy constructor
  fbuf = framebuf.FrameBuffer1(buf, w, h)
  fbuf = framebuf.FrameBuffer1(buf, w, h, w)
  print(framebuf.MVLSB == framebuf.MONO_VLSB)
  