def test_settext_nocolor(): neoseg = neosegment(width=6, device=dummy(width=6, height=7)) neoseg.text = "888888" ref = dummy(width=6, height=7) with canvas(ref) as draw: draw.rectangle(ref.bounding_box, fill="white") assert_identical_image(ref.image, neoseg.device.image)
def test_segment_mapper(): img_path = get_reference_image('neosegment.png') with open(img_path, 'rb') as img: reference = Image.open(img) neoseg = neosegment(width=6, device=dummy(width=6, height=7)) neoseg.color = ["red", "green", "blue", "yellow", "cyan", "magenta"] neoseg.text = "012345" assert_identical_image(reference, neoseg.device.image)
def test_settext_replacechars(): neoseg = neosegment(width=6, device=dummy(width=6, height=7)) neoseg.text = "888888" neoseg.text[2:4] = " " ref = dummy(width=6, height=7) with canvas(ref) as draw: draw.rectangle(ref.bounding_box, fill="white") draw.rectangle([2, 0, 3, 6], fill="black") assert_identical_image(ref.image, neoseg.device.image)
def test_unknown_char(): neoseg = neosegment(width=6, device=dummy(width=6, height=7)) neoseg.text = "888888" neoseg.text[2:4] = "&\x7f" neoseg.color[2:4] = ["orange", "orange"] ref = dummy(width=6, height=7) with canvas(ref) as draw: draw.rectangle(ref.bounding_box, fill="white") draw.rectangle([2, 0, 3, 6], fill="black") draw.rectangle([2, 1, 3, 1], fill="orange") assert_identical_image(ref.image, neoseg.device.image)
def test_overflow(): with pytest.raises(OverflowError) as ex: neoseg = neosegment(width=6, device=dummy(width=6, height=7)) neoseg.text = "TooBig!" assert "Device's capabilities insufficient for value 'TooBig!'" in str(ex.value)
def test_invalid_dimensions(): with pytest.raises(luma.core.error.DeviceDisplayModeError) as ex: neosegment(width=3, device=dummy(width=6, height=7)) assert "Unsupported display mode: width=3" in str(ex.value)
def test_overflow(): with pytest.raises(OverflowError) as ex: neoseg = neosegment(width=6, device=dummy(width=6, height=7)) neoseg.text = "TooBig!" assert "Device's capabilities insufficient for value 'TooBig!'" in str( ex.value)
def main(): neoseg = neosegment(width=6) neoseg.text = "NEOSEG" time.sleep(1) neoseg.color[0] = "yellow" time.sleep(1) neoseg.color[3:5] = ["blue", "orange"] time.sleep(1) neoseg.color = "white" time.sleep(1) for _ in range(10): neoseg.device.hide() time.sleep(0.1) neoseg.device.show() time.sleep(0.1) time.sleep(1) for color in rainbow(200): neoseg.color = color time.sleep(0.01) colors = list(rainbow(neoseg.device.width)) for _ in range(50): random.shuffle(colors) neoseg.color = colors time.sleep(0.1) neoseg.color = "white" time.sleep(3) for _ in range(3): for intensity in range(16): neoseg.device.contrast((15 - intensity) * 16) time.sleep(0.1) for intensity in range(16): neoseg.device.contrast(intensity * 16) time.sleep(0.1) neoseg.text = "" neoseg.device.contrast(0x80) time.sleep(1) neoseg.text = "rgb" time.sleep(1) neoseg.color[0] = "red" time.sleep(1) neoseg.color[1] = "green" time.sleep(1) neoseg.color[2] = "blue" time.sleep(5) for _ in range(3): for intensity in range(16): neoseg.device.contrast(intensity * 16) time.sleep(0.1) neoseg.text = "" neoseg.device.contrast(0x80) time.sleep(1) gfx(neoseg.device)