Ajout du GUI
This commit is contained in:
74
kivy/tests/test_fbo_py2py3.py
Normal file
74
kivy/tests/test_fbo_py2py3.py
Normal file
@@ -0,0 +1,74 @@
|
||||
import unittest
|
||||
|
||||
from kivy.tests.common import GraphicUnitTest
|
||||
from kivy.uix.widget import Widget
|
||||
from kivy.graphics import Fbo, Color, Rectangle
|
||||
|
||||
|
||||
class FboTest(Widget):
|
||||
def __init__(self, **kwargs):
|
||||
super(FboTest, self).__init__(**kwargs)
|
||||
self.positions = [
|
||||
(260.0, 260.0),
|
||||
(192.0, 192.0),
|
||||
(96.0, 192.0),
|
||||
(192.0, 96.0),
|
||||
(96.0, 96.0),
|
||||
(32.0, 192.0),
|
||||
(192.0, 32.0),
|
||||
(32.0, 32.0)
|
||||
]
|
||||
|
||||
self.fbo = Fbo(size=(256, 256))
|
||||
with self.fbo:
|
||||
Color(0.56789, 0, 0, 1)
|
||||
Rectangle(size=(256, 64))
|
||||
Color(0, 0.56789, 0, 1)
|
||||
Rectangle(size=(64, 256))
|
||||
Color(0.56789, 0, 0, .5)
|
||||
Rectangle(pos=(64, 64), size=(192, 64))
|
||||
Color(0, 0.56789, 0, .5)
|
||||
Rectangle(pos=(64, 64), size=(64, 192))
|
||||
self.fbo.draw()
|
||||
|
||||
|
||||
class FBOPy2Py3TestCase(GraphicUnitTest):
|
||||
def test_fbo_get_pixel_color(self):
|
||||
fbow = FboTest()
|
||||
render_error = 2
|
||||
values = [
|
||||
# out of bounds of FBO
|
||||
(tuple, int, (0, 0, 0, 0)),
|
||||
# in FBO, black
|
||||
(list, int, [0, 0, 0, 0]),
|
||||
# Color(0, 0.56789, 0, .5)
|
||||
(list, int, [0, 72, 0, 128]),
|
||||
# Color(0.56789, 0, 0, .5)
|
||||
(list, int, [72, 0, 0, 128]),
|
||||
# overlap above 2 w/ alpha
|
||||
(list, int, [36, 72, 0, 255]),
|
||||
# Color(0, 0.56789, 0, 1)
|
||||
(list, int, [0, 145, 0, 255]),
|
||||
# Color(0.56789, 0, 0, 1)
|
||||
(list, int, [145, 0, 0, 255]),
|
||||
# overlap above 2 w/o alpha
|
||||
(list, int, [0, 145, 0, 255]),
|
||||
]
|
||||
|
||||
for i, pos in enumerate(fbow.positions):
|
||||
c = fbow.fbo.get_pixel_color(pos[0], pos[1])
|
||||
# returned class
|
||||
self.assertTrue(isinstance(c, values[i][0]))
|
||||
# returned types in container
|
||||
for v in c:
|
||||
self.assertTrue(isinstance(v, values[i][1]))
|
||||
# returned values
|
||||
for j, val in enumerate(c):
|
||||
self.assertAlmostEqual(
|
||||
val, values[i][2][j],
|
||||
delta=render_error
|
||||
)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user