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)