17db96d56Sopenharmony_ciimport unittest
27db96d56Sopenharmony_ciimport tkinter
37db96d56Sopenharmony_cifrom test import support
47db96d56Sopenharmony_cifrom test.support import os_helper
57db96d56Sopenharmony_cifrom tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest, requires_tcl
67db96d56Sopenharmony_ci
77db96d56Sopenharmony_cisupport.requires('gui')
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ci
107db96d56Sopenharmony_ciclass MiscTest(AbstractTkTest, unittest.TestCase):
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci    def test_image_types(self):
137db96d56Sopenharmony_ci        image_types = self.root.image_types()
147db96d56Sopenharmony_ci        self.assertIsInstance(image_types, tuple)
157db96d56Sopenharmony_ci        self.assertIn('photo', image_types)
167db96d56Sopenharmony_ci        self.assertIn('bitmap', image_types)
177db96d56Sopenharmony_ci
187db96d56Sopenharmony_ci    def test_image_names(self):
197db96d56Sopenharmony_ci        image_names = self.root.image_names()
207db96d56Sopenharmony_ci        self.assertIsInstance(image_names, tuple)
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ci
237db96d56Sopenharmony_ciclass DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci    def test_image_types(self):
267db96d56Sopenharmony_ci        self.assertRaises(RuntimeError, tkinter.image_types)
277db96d56Sopenharmony_ci        root = tkinter.Tk()
287db96d56Sopenharmony_ci        image_types = tkinter.image_types()
297db96d56Sopenharmony_ci        self.assertIsInstance(image_types, tuple)
307db96d56Sopenharmony_ci        self.assertIn('photo', image_types)
317db96d56Sopenharmony_ci        self.assertIn('bitmap', image_types)
327db96d56Sopenharmony_ci        root.destroy()
337db96d56Sopenharmony_ci        tkinter.NoDefaultRoot()
347db96d56Sopenharmony_ci        self.assertRaises(RuntimeError, tkinter.image_types)
357db96d56Sopenharmony_ci
367db96d56Sopenharmony_ci    def test_image_names(self):
377db96d56Sopenharmony_ci        self.assertRaises(RuntimeError, tkinter.image_names)
387db96d56Sopenharmony_ci        root = tkinter.Tk()
397db96d56Sopenharmony_ci        image_names = tkinter.image_names()
407db96d56Sopenharmony_ci        self.assertIsInstance(image_names, tuple)
417db96d56Sopenharmony_ci        root.destroy()
427db96d56Sopenharmony_ci        tkinter.NoDefaultRoot()
437db96d56Sopenharmony_ci        self.assertRaises(RuntimeError, tkinter.image_names)
447db96d56Sopenharmony_ci
457db96d56Sopenharmony_ci    def test_image_create_bitmap(self):
467db96d56Sopenharmony_ci        self.assertRaises(RuntimeError, tkinter.BitmapImage)
477db96d56Sopenharmony_ci        root = tkinter.Tk()
487db96d56Sopenharmony_ci        image = tkinter.BitmapImage()
497db96d56Sopenharmony_ci        self.assertIn(image.name, tkinter.image_names())
507db96d56Sopenharmony_ci        root.destroy()
517db96d56Sopenharmony_ci        tkinter.NoDefaultRoot()
527db96d56Sopenharmony_ci        self.assertRaises(RuntimeError, tkinter.BitmapImage)
537db96d56Sopenharmony_ci
547db96d56Sopenharmony_ci    def test_image_create_photo(self):
557db96d56Sopenharmony_ci        self.assertRaises(RuntimeError, tkinter.PhotoImage)
567db96d56Sopenharmony_ci        root = tkinter.Tk()
577db96d56Sopenharmony_ci        image = tkinter.PhotoImage()
587db96d56Sopenharmony_ci        self.assertIn(image.name, tkinter.image_names())
597db96d56Sopenharmony_ci        root.destroy()
607db96d56Sopenharmony_ci        tkinter.NoDefaultRoot()
617db96d56Sopenharmony_ci        self.assertRaises(RuntimeError, tkinter.PhotoImage)
627db96d56Sopenharmony_ci
637db96d56Sopenharmony_ci
647db96d56Sopenharmony_ciclass BitmapImageTest(AbstractTkTest, unittest.TestCase):
657db96d56Sopenharmony_ci
667db96d56Sopenharmony_ci    @classmethod
677db96d56Sopenharmony_ci    def setUpClass(cls):
687db96d56Sopenharmony_ci        AbstractTkTest.setUpClass.__func__(cls)
697db96d56Sopenharmony_ci        cls.testfile = support.findfile('python.xbm', subdir='imghdrdata')
707db96d56Sopenharmony_ci
717db96d56Sopenharmony_ci    def test_create_from_file(self):
727db96d56Sopenharmony_ci        image = tkinter.BitmapImage('::img::test', master=self.root,
737db96d56Sopenharmony_ci                                    foreground='yellow', background='blue',
747db96d56Sopenharmony_ci                                    file=self.testfile)
757db96d56Sopenharmony_ci        self.assertEqual(str(image), '::img::test')
767db96d56Sopenharmony_ci        self.assertEqual(image.type(), 'bitmap')
777db96d56Sopenharmony_ci        self.assertEqual(image.width(), 16)
787db96d56Sopenharmony_ci        self.assertEqual(image.height(), 16)
797db96d56Sopenharmony_ci        self.assertIn('::img::test', self.root.image_names())
807db96d56Sopenharmony_ci        del image
817db96d56Sopenharmony_ci        support.gc_collect()  # For PyPy or other GCs.
827db96d56Sopenharmony_ci        self.assertNotIn('::img::test', self.root.image_names())
837db96d56Sopenharmony_ci
847db96d56Sopenharmony_ci    def test_create_from_data(self):
857db96d56Sopenharmony_ci        with open(self.testfile, 'rb') as f:
867db96d56Sopenharmony_ci            data = f.read()
877db96d56Sopenharmony_ci        image = tkinter.BitmapImage('::img::test', master=self.root,
887db96d56Sopenharmony_ci                                    foreground='yellow', background='blue',
897db96d56Sopenharmony_ci                                    data=data)
907db96d56Sopenharmony_ci        self.assertEqual(str(image), '::img::test')
917db96d56Sopenharmony_ci        self.assertEqual(image.type(), 'bitmap')
927db96d56Sopenharmony_ci        self.assertEqual(image.width(), 16)
937db96d56Sopenharmony_ci        self.assertEqual(image.height(), 16)
947db96d56Sopenharmony_ci        self.assertIn('::img::test', self.root.image_names())
957db96d56Sopenharmony_ci        del image
967db96d56Sopenharmony_ci        support.gc_collect()  # For PyPy or other GCs.
977db96d56Sopenharmony_ci        self.assertNotIn('::img::test', self.root.image_names())
987db96d56Sopenharmony_ci
997db96d56Sopenharmony_ci    def assertEqualStrList(self, actual, expected):
1007db96d56Sopenharmony_ci        self.assertIsInstance(actual, str)
1017db96d56Sopenharmony_ci        self.assertEqual(self.root.splitlist(actual), expected)
1027db96d56Sopenharmony_ci
1037db96d56Sopenharmony_ci    def test_configure_data(self):
1047db96d56Sopenharmony_ci        image = tkinter.BitmapImage('::img::test', master=self.root)
1057db96d56Sopenharmony_ci        self.assertEqual(image['data'], '-data {} {} {} {}')
1067db96d56Sopenharmony_ci        with open(self.testfile, 'rb') as f:
1077db96d56Sopenharmony_ci            data = f.read()
1087db96d56Sopenharmony_ci        image.configure(data=data)
1097db96d56Sopenharmony_ci        self.assertEqualStrList(image['data'],
1107db96d56Sopenharmony_ci                                ('-data', '', '', '', data.decode('ascii')))
1117db96d56Sopenharmony_ci        self.assertEqual(image.width(), 16)
1127db96d56Sopenharmony_ci        self.assertEqual(image.height(), 16)
1137db96d56Sopenharmony_ci
1147db96d56Sopenharmony_ci        self.assertEqual(image['maskdata'], '-maskdata {} {} {} {}')
1157db96d56Sopenharmony_ci        image.configure(maskdata=data)
1167db96d56Sopenharmony_ci        self.assertEqualStrList(image['maskdata'],
1177db96d56Sopenharmony_ci                                ('-maskdata', '', '', '', data.decode('ascii')))
1187db96d56Sopenharmony_ci
1197db96d56Sopenharmony_ci    def test_configure_file(self):
1207db96d56Sopenharmony_ci        image = tkinter.BitmapImage('::img::test', master=self.root)
1217db96d56Sopenharmony_ci        self.assertEqual(image['file'], '-file {} {} {} {}')
1227db96d56Sopenharmony_ci        image.configure(file=self.testfile)
1237db96d56Sopenharmony_ci        self.assertEqualStrList(image['file'],
1247db96d56Sopenharmony_ci                                ('-file', '', '', '',self.testfile))
1257db96d56Sopenharmony_ci        self.assertEqual(image.width(), 16)
1267db96d56Sopenharmony_ci        self.assertEqual(image.height(), 16)
1277db96d56Sopenharmony_ci
1287db96d56Sopenharmony_ci        self.assertEqual(image['maskfile'], '-maskfile {} {} {} {}')
1297db96d56Sopenharmony_ci        image.configure(maskfile=self.testfile)
1307db96d56Sopenharmony_ci        self.assertEqualStrList(image['maskfile'],
1317db96d56Sopenharmony_ci                                ('-maskfile', '', '', '', self.testfile))
1327db96d56Sopenharmony_ci
1337db96d56Sopenharmony_ci    def test_configure_background(self):
1347db96d56Sopenharmony_ci        image = tkinter.BitmapImage('::img::test', master=self.root)
1357db96d56Sopenharmony_ci        self.assertEqual(image['background'], '-background {} {} {} {}')
1367db96d56Sopenharmony_ci        image.configure(background='blue')
1377db96d56Sopenharmony_ci        self.assertEqual(image['background'], '-background {} {} {} blue')
1387db96d56Sopenharmony_ci
1397db96d56Sopenharmony_ci    def test_configure_foreground(self):
1407db96d56Sopenharmony_ci        image = tkinter.BitmapImage('::img::test', master=self.root)
1417db96d56Sopenharmony_ci        self.assertEqual(image['foreground'],
1427db96d56Sopenharmony_ci                         '-foreground {} {} #000000 #000000')
1437db96d56Sopenharmony_ci        image.configure(foreground='yellow')
1447db96d56Sopenharmony_ci        self.assertEqual(image['foreground'],
1457db96d56Sopenharmony_ci                         '-foreground {} {} #000000 yellow')
1467db96d56Sopenharmony_ci
1477db96d56Sopenharmony_ci
1487db96d56Sopenharmony_ciclass PhotoImageTest(AbstractTkTest, unittest.TestCase):
1497db96d56Sopenharmony_ci
1507db96d56Sopenharmony_ci    @classmethod
1517db96d56Sopenharmony_ci    def setUpClass(cls):
1527db96d56Sopenharmony_ci        AbstractTkTest.setUpClass.__func__(cls)
1537db96d56Sopenharmony_ci        cls.testfile = support.findfile('python.gif', subdir='imghdrdata')
1547db96d56Sopenharmony_ci
1557db96d56Sopenharmony_ci    def create(self):
1567db96d56Sopenharmony_ci        return tkinter.PhotoImage('::img::test', master=self.root,
1577db96d56Sopenharmony_ci                                  file=self.testfile)
1587db96d56Sopenharmony_ci
1597db96d56Sopenharmony_ci    def colorlist(self, *args):
1607db96d56Sopenharmony_ci        if tkinter.TkVersion >= 8.6 and self.wantobjects:
1617db96d56Sopenharmony_ci            return args
1627db96d56Sopenharmony_ci        else:
1637db96d56Sopenharmony_ci            return tkinter._join(args)
1647db96d56Sopenharmony_ci
1657db96d56Sopenharmony_ci    def check_create_from_file(self, ext):
1667db96d56Sopenharmony_ci        testfile = support.findfile('python.' + ext, subdir='imghdrdata')
1677db96d56Sopenharmony_ci        image = tkinter.PhotoImage('::img::test', master=self.root,
1687db96d56Sopenharmony_ci                                   file=testfile)
1697db96d56Sopenharmony_ci        self.assertEqual(str(image), '::img::test')
1707db96d56Sopenharmony_ci        self.assertEqual(image.type(), 'photo')
1717db96d56Sopenharmony_ci        self.assertEqual(image.width(), 16)
1727db96d56Sopenharmony_ci        self.assertEqual(image.height(), 16)
1737db96d56Sopenharmony_ci        self.assertEqual(image['data'], '')
1747db96d56Sopenharmony_ci        self.assertEqual(image['file'], testfile)
1757db96d56Sopenharmony_ci        self.assertIn('::img::test', self.root.image_names())
1767db96d56Sopenharmony_ci        del image
1777db96d56Sopenharmony_ci        support.gc_collect()  # For PyPy or other GCs.
1787db96d56Sopenharmony_ci        self.assertNotIn('::img::test', self.root.image_names())
1797db96d56Sopenharmony_ci
1807db96d56Sopenharmony_ci    def check_create_from_data(self, ext):
1817db96d56Sopenharmony_ci        testfile = support.findfile('python.' + ext, subdir='imghdrdata')
1827db96d56Sopenharmony_ci        with open(testfile, 'rb') as f:
1837db96d56Sopenharmony_ci            data = f.read()
1847db96d56Sopenharmony_ci        image = tkinter.PhotoImage('::img::test', master=self.root,
1857db96d56Sopenharmony_ci                                   data=data)
1867db96d56Sopenharmony_ci        self.assertEqual(str(image), '::img::test')
1877db96d56Sopenharmony_ci        self.assertEqual(image.type(), 'photo')
1887db96d56Sopenharmony_ci        self.assertEqual(image.width(), 16)
1897db96d56Sopenharmony_ci        self.assertEqual(image.height(), 16)
1907db96d56Sopenharmony_ci        self.assertEqual(image['data'], data if self.wantobjects
1917db96d56Sopenharmony_ci                                        else data.decode('latin1'))
1927db96d56Sopenharmony_ci        self.assertEqual(image['file'], '')
1937db96d56Sopenharmony_ci        self.assertIn('::img::test', self.root.image_names())
1947db96d56Sopenharmony_ci        del image
1957db96d56Sopenharmony_ci        support.gc_collect()  # For PyPy or other GCs.
1967db96d56Sopenharmony_ci        self.assertNotIn('::img::test', self.root.image_names())
1977db96d56Sopenharmony_ci
1987db96d56Sopenharmony_ci    def test_create_from_ppm_file(self):
1997db96d56Sopenharmony_ci        self.check_create_from_file('ppm')
2007db96d56Sopenharmony_ci
2017db96d56Sopenharmony_ci    def test_create_from_ppm_data(self):
2027db96d56Sopenharmony_ci        self.check_create_from_data('ppm')
2037db96d56Sopenharmony_ci
2047db96d56Sopenharmony_ci    def test_create_from_pgm_file(self):
2057db96d56Sopenharmony_ci        self.check_create_from_file('pgm')
2067db96d56Sopenharmony_ci
2077db96d56Sopenharmony_ci    def test_create_from_pgm_data(self):
2087db96d56Sopenharmony_ci        self.check_create_from_data('pgm')
2097db96d56Sopenharmony_ci
2107db96d56Sopenharmony_ci    def test_create_from_gif_file(self):
2117db96d56Sopenharmony_ci        self.check_create_from_file('gif')
2127db96d56Sopenharmony_ci
2137db96d56Sopenharmony_ci    def test_create_from_gif_data(self):
2147db96d56Sopenharmony_ci        self.check_create_from_data('gif')
2157db96d56Sopenharmony_ci
2167db96d56Sopenharmony_ci    @requires_tcl(8, 6)
2177db96d56Sopenharmony_ci    def test_create_from_png_file(self):
2187db96d56Sopenharmony_ci        self.check_create_from_file('png')
2197db96d56Sopenharmony_ci
2207db96d56Sopenharmony_ci    @requires_tcl(8, 6)
2217db96d56Sopenharmony_ci    def test_create_from_png_data(self):
2227db96d56Sopenharmony_ci        self.check_create_from_data('png')
2237db96d56Sopenharmony_ci
2247db96d56Sopenharmony_ci    def test_configure_data(self):
2257db96d56Sopenharmony_ci        image = tkinter.PhotoImage('::img::test', master=self.root)
2267db96d56Sopenharmony_ci        self.assertEqual(image['data'], '')
2277db96d56Sopenharmony_ci        with open(self.testfile, 'rb') as f:
2287db96d56Sopenharmony_ci            data = f.read()
2297db96d56Sopenharmony_ci        image.configure(data=data)
2307db96d56Sopenharmony_ci        self.assertEqual(image['data'], data if self.wantobjects
2317db96d56Sopenharmony_ci                                        else data.decode('latin1'))
2327db96d56Sopenharmony_ci        self.assertEqual(image.width(), 16)
2337db96d56Sopenharmony_ci        self.assertEqual(image.height(), 16)
2347db96d56Sopenharmony_ci
2357db96d56Sopenharmony_ci    def test_configure_format(self):
2367db96d56Sopenharmony_ci        image = tkinter.PhotoImage('::img::test', master=self.root)
2377db96d56Sopenharmony_ci        self.assertEqual(image['format'], '')
2387db96d56Sopenharmony_ci        image.configure(file=self.testfile, format='gif')
2397db96d56Sopenharmony_ci        self.assertEqual(image['format'], ('gif',) if self.wantobjects
2407db96d56Sopenharmony_ci                                          else 'gif')
2417db96d56Sopenharmony_ci        self.assertEqual(image.width(), 16)
2427db96d56Sopenharmony_ci        self.assertEqual(image.height(), 16)
2437db96d56Sopenharmony_ci
2447db96d56Sopenharmony_ci    def test_configure_file(self):
2457db96d56Sopenharmony_ci        image = tkinter.PhotoImage('::img::test', master=self.root)
2467db96d56Sopenharmony_ci        self.assertEqual(image['file'], '')
2477db96d56Sopenharmony_ci        image.configure(file=self.testfile)
2487db96d56Sopenharmony_ci        self.assertEqual(image['file'], self.testfile)
2497db96d56Sopenharmony_ci        self.assertEqual(image.width(), 16)
2507db96d56Sopenharmony_ci        self.assertEqual(image.height(), 16)
2517db96d56Sopenharmony_ci
2527db96d56Sopenharmony_ci    def test_configure_gamma(self):
2537db96d56Sopenharmony_ci        image = tkinter.PhotoImage('::img::test', master=self.root)
2547db96d56Sopenharmony_ci        self.assertEqual(image['gamma'], '1.0')
2557db96d56Sopenharmony_ci        image.configure(gamma=2.0)
2567db96d56Sopenharmony_ci        self.assertEqual(image['gamma'], '2.0')
2577db96d56Sopenharmony_ci
2587db96d56Sopenharmony_ci    def test_configure_width_height(self):
2597db96d56Sopenharmony_ci        image = tkinter.PhotoImage('::img::test', master=self.root)
2607db96d56Sopenharmony_ci        self.assertEqual(image['width'], '0')
2617db96d56Sopenharmony_ci        self.assertEqual(image['height'], '0')
2627db96d56Sopenharmony_ci        image.configure(width=20)
2637db96d56Sopenharmony_ci        image.configure(height=10)
2647db96d56Sopenharmony_ci        self.assertEqual(image['width'], '20')
2657db96d56Sopenharmony_ci        self.assertEqual(image['height'], '10')
2667db96d56Sopenharmony_ci        self.assertEqual(image.width(), 20)
2677db96d56Sopenharmony_ci        self.assertEqual(image.height(), 10)
2687db96d56Sopenharmony_ci
2697db96d56Sopenharmony_ci    def test_configure_palette(self):
2707db96d56Sopenharmony_ci        image = tkinter.PhotoImage('::img::test', master=self.root)
2717db96d56Sopenharmony_ci        self.assertEqual(image['palette'], '')
2727db96d56Sopenharmony_ci        image.configure(palette=256)
2737db96d56Sopenharmony_ci        self.assertEqual(image['palette'], '256')
2747db96d56Sopenharmony_ci        image.configure(palette='3/4/2')
2757db96d56Sopenharmony_ci        self.assertEqual(image['palette'], '3/4/2')
2767db96d56Sopenharmony_ci
2777db96d56Sopenharmony_ci    def test_blank(self):
2787db96d56Sopenharmony_ci        image = self.create()
2797db96d56Sopenharmony_ci        image.blank()
2807db96d56Sopenharmony_ci        self.assertEqual(image.width(), 16)
2817db96d56Sopenharmony_ci        self.assertEqual(image.height(), 16)
2827db96d56Sopenharmony_ci        self.assertEqual(image.get(4, 6), self.colorlist(0, 0, 0))
2837db96d56Sopenharmony_ci
2847db96d56Sopenharmony_ci    def test_copy(self):
2857db96d56Sopenharmony_ci        image = self.create()
2867db96d56Sopenharmony_ci        image2 = image.copy()
2877db96d56Sopenharmony_ci        self.assertEqual(image2.width(), 16)
2887db96d56Sopenharmony_ci        self.assertEqual(image2.height(), 16)
2897db96d56Sopenharmony_ci        self.assertEqual(image.get(4, 6), image.get(4, 6))
2907db96d56Sopenharmony_ci
2917db96d56Sopenharmony_ci    def test_subsample(self):
2927db96d56Sopenharmony_ci        image = self.create()
2937db96d56Sopenharmony_ci        image2 = image.subsample(2, 3)
2947db96d56Sopenharmony_ci        self.assertEqual(image2.width(), 8)
2957db96d56Sopenharmony_ci        self.assertEqual(image2.height(), 6)
2967db96d56Sopenharmony_ci        self.assertEqual(image2.get(2, 2), image.get(4, 6))
2977db96d56Sopenharmony_ci
2987db96d56Sopenharmony_ci        image2 = image.subsample(2)
2997db96d56Sopenharmony_ci        self.assertEqual(image2.width(), 8)
3007db96d56Sopenharmony_ci        self.assertEqual(image2.height(), 8)
3017db96d56Sopenharmony_ci        self.assertEqual(image2.get(2, 3), image.get(4, 6))
3027db96d56Sopenharmony_ci
3037db96d56Sopenharmony_ci    def test_zoom(self):
3047db96d56Sopenharmony_ci        image = self.create()
3057db96d56Sopenharmony_ci        image2 = image.zoom(2, 3)
3067db96d56Sopenharmony_ci        self.assertEqual(image2.width(), 32)
3077db96d56Sopenharmony_ci        self.assertEqual(image2.height(), 48)
3087db96d56Sopenharmony_ci        self.assertEqual(image2.get(8, 18), image.get(4, 6))
3097db96d56Sopenharmony_ci        self.assertEqual(image2.get(9, 20), image.get(4, 6))
3107db96d56Sopenharmony_ci
3117db96d56Sopenharmony_ci        image2 = image.zoom(2)
3127db96d56Sopenharmony_ci        self.assertEqual(image2.width(), 32)
3137db96d56Sopenharmony_ci        self.assertEqual(image2.height(), 32)
3147db96d56Sopenharmony_ci        self.assertEqual(image2.get(8, 12), image.get(4, 6))
3157db96d56Sopenharmony_ci        self.assertEqual(image2.get(9, 13), image.get(4, 6))
3167db96d56Sopenharmony_ci
3177db96d56Sopenharmony_ci    def test_put(self):
3187db96d56Sopenharmony_ci        image = self.create()
3197db96d56Sopenharmony_ci        image.put('{red green} {blue yellow}', to=(4, 6))
3207db96d56Sopenharmony_ci        self.assertEqual(image.get(4, 6), self.colorlist(255, 0, 0))
3217db96d56Sopenharmony_ci        self.assertEqual(image.get(5, 6),
3227db96d56Sopenharmony_ci                         self.colorlist(0, 128 if tkinter.TkVersion >= 8.6
3237db96d56Sopenharmony_ci                                           else 255, 0))
3247db96d56Sopenharmony_ci        self.assertEqual(image.get(4, 7), self.colorlist(0, 0, 255))
3257db96d56Sopenharmony_ci        self.assertEqual(image.get(5, 7), self.colorlist(255, 255, 0))
3267db96d56Sopenharmony_ci
3277db96d56Sopenharmony_ci        image.put((('#f00', '#00ff00'), ('#000000fff', '#ffffffff0000')))
3287db96d56Sopenharmony_ci        self.assertEqual(image.get(0, 0), self.colorlist(255, 0, 0))
3297db96d56Sopenharmony_ci        self.assertEqual(image.get(1, 0), self.colorlist(0, 255, 0))
3307db96d56Sopenharmony_ci        self.assertEqual(image.get(0, 1), self.colorlist(0, 0, 255))
3317db96d56Sopenharmony_ci        self.assertEqual(image.get(1, 1), self.colorlist(255, 255, 0))
3327db96d56Sopenharmony_ci
3337db96d56Sopenharmony_ci    def test_get(self):
3347db96d56Sopenharmony_ci        image = self.create()
3357db96d56Sopenharmony_ci        self.assertEqual(image.get(4, 6), self.colorlist(62, 116, 162))
3367db96d56Sopenharmony_ci        self.assertEqual(image.get(0, 0), self.colorlist(0, 0, 0))
3377db96d56Sopenharmony_ci        self.assertEqual(image.get(15, 15), self.colorlist(0, 0, 0))
3387db96d56Sopenharmony_ci        self.assertRaises(tkinter.TclError, image.get, -1, 0)
3397db96d56Sopenharmony_ci        self.assertRaises(tkinter.TclError, image.get, 0, -1)
3407db96d56Sopenharmony_ci        self.assertRaises(tkinter.TclError, image.get, 16, 15)
3417db96d56Sopenharmony_ci        self.assertRaises(tkinter.TclError, image.get, 15, 16)
3427db96d56Sopenharmony_ci
3437db96d56Sopenharmony_ci    def test_write(self):
3447db96d56Sopenharmony_ci        image = self.create()
3457db96d56Sopenharmony_ci        self.addCleanup(os_helper.unlink, os_helper.TESTFN)
3467db96d56Sopenharmony_ci
3477db96d56Sopenharmony_ci        image.write(os_helper.TESTFN)
3487db96d56Sopenharmony_ci        image2 = tkinter.PhotoImage('::img::test2', master=self.root,
3497db96d56Sopenharmony_ci                                    format='ppm',
3507db96d56Sopenharmony_ci                                    file=os_helper.TESTFN)
3517db96d56Sopenharmony_ci        self.assertEqual(str(image2), '::img::test2')
3527db96d56Sopenharmony_ci        self.assertEqual(image2.type(), 'photo')
3537db96d56Sopenharmony_ci        self.assertEqual(image2.width(), 16)
3547db96d56Sopenharmony_ci        self.assertEqual(image2.height(), 16)
3557db96d56Sopenharmony_ci        self.assertEqual(image2.get(0, 0), image.get(0, 0))
3567db96d56Sopenharmony_ci        self.assertEqual(image2.get(15, 8), image.get(15, 8))
3577db96d56Sopenharmony_ci
3587db96d56Sopenharmony_ci        image.write(os_helper.TESTFN, format='gif', from_coords=(4, 6, 6, 9))
3597db96d56Sopenharmony_ci        image3 = tkinter.PhotoImage('::img::test3', master=self.root,
3607db96d56Sopenharmony_ci                                    format='gif',
3617db96d56Sopenharmony_ci                                    file=os_helper.TESTFN)
3627db96d56Sopenharmony_ci        self.assertEqual(str(image3), '::img::test3')
3637db96d56Sopenharmony_ci        self.assertEqual(image3.type(), 'photo')
3647db96d56Sopenharmony_ci        self.assertEqual(image3.width(), 2)
3657db96d56Sopenharmony_ci        self.assertEqual(image3.height(), 3)
3667db96d56Sopenharmony_ci        self.assertEqual(image3.get(0, 0), image.get(4, 6))
3677db96d56Sopenharmony_ci        self.assertEqual(image3.get(1, 2), image.get(5, 8))
3687db96d56Sopenharmony_ci
3697db96d56Sopenharmony_ci    def test_transparency(self):
3707db96d56Sopenharmony_ci        image = self.create()
3717db96d56Sopenharmony_ci        self.assertEqual(image.transparency_get(0, 0), True)
3727db96d56Sopenharmony_ci        self.assertEqual(image.transparency_get(4, 6), False)
3737db96d56Sopenharmony_ci        image.transparency_set(4, 6, True)
3747db96d56Sopenharmony_ci        self.assertEqual(image.transparency_get(4, 6), True)
3757db96d56Sopenharmony_ci        image.transparency_set(4, 6, False)
3767db96d56Sopenharmony_ci        self.assertEqual(image.transparency_get(4, 6), False)
3777db96d56Sopenharmony_ci
3787db96d56Sopenharmony_ci
3797db96d56Sopenharmony_ciif __name__ == "__main__":
3807db96d56Sopenharmony_ci    unittest.main()
381