from helper import unittest, PillowTestCase, fromstring, tostring

from PIL import Image

CODECS = dir(Image.core)
FILENAME = "Tests/images/hopper.jpg"
DATA = tostring(Image.open(FILENAME).resize((512, 512)), "JPEG")


def draft(mode, size):
    im = fromstring(DATA)
    im.draft(mode, size)
    return im


class TestImageDraft(PillowTestCase):

    def setUp(self):
        if "jpeg_encoder" not in CODECS or "jpeg_decoder" not in CODECS:
            self.skipTest("jpeg support not available")

    def test_size(self):
        self.assertEqual(draft("RGB", (512, 512)).size, (512, 512))
        self.assertEqual(draft("RGB", (256, 256)).size, (256, 256))
        self.assertEqual(draft("RGB", (128, 128)).size, (128, 128))
        self.assertEqual(draft("RGB", (64, 64)).size, (64, 64))
        self.assertEqual(draft("RGB", (32, 32)).size, (64, 64))

    def test_mode(self):
        self.assertEqual(draft("1", (512, 512)).mode, "RGB")
        self.assertEqual(draft("L", (512, 512)).mode, "L")
        self.assertEqual(draft("RGB", (512, 512)).mode, "RGB")
        self.assertEqual(draft("YCbCr", (512, 512)).mode, "YCbCr")


if __name__ == '__main__':
    unittest.main()
