def test_draw(self): pen = FreeTypePen(None) box(pen) width, height = 500, 500 buf1, _ = pen.buffer(width=width, height=height) buf2 = b"\xff" * width * height self.assertEqual(buf1, buf2)
def test_cubic_vs_quadratic(self): pen1, pen2 = FreeTypePen(None), FreeTypePen(None) draw_cubic(pen1) draw_quadratic(pen2) width, height = 500, 500 buf1, _ = pen1.buffer(width=width, height=height) buf2, _ = pen2.buffer(width=width, height=height) self.assertEqual(len(buf1), len(buf2)) self.assertGreater(psnr(buf1, buf2), PSNR_THRESHOLD)
def test_skew(self): pen = FreeTypePen(None) box(pen) t = Scale(0.05, 0.05).skew(math.pi / 4.0).translate(1234, 5678) width, height = None, None buf1, size1 = pen.buffer(width=width, height=height, transform=t) buf2, size2 = load_pgm(os.path.join(DATA_DIR, "test_skew.pgm")) self.assertEqual(len(buf1), len(buf2)) self.assertEqual(size1, size2) self.assertGreater(psnr(buf1, buf2), PSNR_THRESHOLD)
def test_contain(self): pen = FreeTypePen(None) star(pen) t = Scale(0.05, 0.05) width, height = 0, 0 buf1, size1 = pen.buffer(width=width, height=height, transform=t, contain=True) buf2, size2 = load_pgm(os.path.join(DATA_DIR, "test_non_zero_fill.pgm")) self.assertEqual(len(buf1), len(buf2)) self.assertEqual(size1, size2) self.assertGreater(psnr(buf1, buf2), PSNR_THRESHOLD)
def test_even_odd_fill(self): pen = FreeTypePen(None) star(pen) t = Scale(0.05, 0.05) width, height = t.transformPoint((1000, 1000)) t = t.translate(0, 200) buf1, size1 = pen.buffer(width=width, height=height, transform=t, evenOdd=True) buf2, size2 = load_pgm(os.path.join(DATA_DIR, "test_even_odd_fill.pgm")) self.assertEqual(len(buf1), len(buf2)) self.assertEqual(size1, size2) self.assertGreater(psnr(buf1, buf2), PSNR_THRESHOLD)
def test_bbox_and_cbox(self): pen = FreeTypePen(None) draw_cubic(pen) self.assertEqual(pen.bbox, (50.0, 0.0, 450.0, 500.0)) self.assertEqual(pen.cbox, (50.0, 0.0, 450.0, 500.0))
def test_empty(self): pen = FreeTypePen(None) width, height = 500, 500 buf, size = pen.buffer(width=width, height=height) self.assertEqual(b"\0" * size[0] * size[1], buf)
def test_zero_size(self): pen = FreeTypePen(None) star(pen) width, height = 0, 0 buf1, size = pen.buffer(width=width, height=height, transform=Offset(0, 200), contain=True) buf2, _ = pen.buffer(width=1000, height=1000, transform=Offset(0, 200), contain=True) self.assertEqual(size, (1000, 1000)) self.assertEqual(buf1, buf2) pen = FreeTypePen(None) box(pen, offset=(250, 250)) width, height = 0, 0 buf1, size = pen.buffer(width=width, height=height, contain=True) buf2, _ = pen.buffer(width=500, height=500, transform=Offset(0, 0), contain=True) self.assertEqual(size, (750, 750)) self.assertEqual(buf1, buf2) pen = FreeTypePen(None) box(pen, offset=(-1234, -5678)) width, height = 0, 0 buf1, size = pen.buffer(width=width, height=height, contain=True) buf2, _ = pen.buffer(width=500, height=500, transform=Offset(1234, 5678), contain=True) self.assertEqual(size, (500, 500)) self.assertEqual(buf1, buf2)
def test_none_size(self): pen = FreeTypePen(None) star(pen) width, height = None, None buf1, size = pen.buffer(width=width, height=height, transform=Offset(0, 200)) buf2, _ = pen.buffer(width=1000, height=1000, transform=Offset(0, 200)) self.assertEqual(size, (1000, 1000)) self.assertEqual(buf1, buf2) pen = FreeTypePen(None) box(pen, offset=(250, 250)) width, height = None, None buf1, size = pen.buffer(width=width, height=height) buf2, _ = pen.buffer(width=500, height=500, transform=Offset(-250, -250)) self.assertEqual(size, (500, 500)) self.assertEqual(buf1, buf2) pen = FreeTypePen(None) box(pen, offset=(-1234, -5678)) width, height = None, None buf1, size = pen.buffer(width=width, height=height) buf2, _ = pen.buffer(width=500, height=500, transform=Offset(1234, 5678)) self.assertEqual(size, (500, 500)) self.assertEqual(buf1, buf2)