[NUI] Update NUI.Devel to fix block and crash issues.
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Tests / Tizen.NUI.Devel.Tests / testcase / public / Images / TSPixelBuffer.cs
1 using global::System;
2 using NUnit.Framework;
3 using NUnit.Framework.TUnit;
4 using Tizen.NUI.Components;
5 using Tizen.NUI.BaseComponents;
6 using System.Collections.Generic;
7 using System.Threading.Tasks;
8
9 namespace Tizen.NUI.Devel.Tests
10 {
11     using tlog = Tizen.Log;
12
13     [TestFixture]
14     [Description("public/Images/PixelBuffer")]
15     public class PublicPixelBufferTest
16     {
17         private const string tag = "NUITEST";
18
19         [SetUp]
20         public void Init()
21         {
22             tlog.Info(tag, "Init() is called!");
23         }
24
25         [TearDown]
26         public void Destroy()
27         {
28             tlog.Info(tag, "Destroy() is called!");
29         }
30
31         [Test]
32         [Category("P1")]
33         [Description("PixelBuffer constructor.")]
34         [Property("SPEC", "Tizen.NUI.PixelBuffer.PixelBuffer C")]
35         [Property("SPEC_URL", "-")]
36         [Property("CRITERIA", "CONSTR")]
37         [Property("AUTHOR", "guowei.wang@samsung.com")]
38         public void PixelBufferConstructor()
39         {
40             tlog.Debug(tag, $"PixelBufferConstructor START");
41
42             var testingTarget = new PixelBuffer(10, 5, PixelFormat.L8);
43             Assert.IsNotNull(testingTarget, "Can't create success object PixelBuffer");
44             Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelBuffer type.");
45
46             testingTarget.Dispose();
47             tlog.Debug(tag, $"PixelBufferConstructor END (OK)");
48         }
49
50         [Test]
51         [Category("P1")]
52         [Description("PixelBuffer constructor. By PixelBuffer.")]
53         [Property("SPEC", "Tizen.NUI.PixelBuffer.PixelBuffer C")]
54         [Property("SPEC_URL", "-")]
55         [Property("CRITERIA", "CONSTR")]
56         [Property("AUTHOR", "guowei.wang@samsung.com")]
57         public void PixelBufferConstructorByPixelBuffer()
58         {
59             tlog.Debug(tag, $"PixelBufferConstructorByPixelBuffer START");
60
61             using (PixelBuffer pixelBuffer = new PixelBuffer(10, 5, PixelFormat.L8))
62             {
63                 var testingTarget = new PixelBuffer(pixelBuffer);
64                 Assert.IsNotNull(testingTarget, "Can't create success object PixelBuffer");
65                 Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelBuffer type.");
66
67                 testingTarget.Dispose();
68             }
69             
70             tlog.Debug(tag, $"PixelBufferConstructorByPixelBuffer END (OK)");
71         }
72
73         [Test]
74         [Category("P1")]
75         [Description("PixelBuffer constructor. By IntPtr.")]
76         [Property("SPEC", "Tizen.NUI.PixelBuffer.PixelBuffer C")]
77         [Property("SPEC_URL", "-")]
78         [Property("CRITERIA", "CONSTR")]
79         [Property("AUTHOR", "guowei.wang@samsung.com")]
80         public void PixelBufferConstructorByIntPtr()
81         {
82             tlog.Debug(tag, $"PixelBufferConstructorByIntPtr START");
83
84             using (PixelBuffer pixelBuffer = new PixelBuffer(10, 5, PixelFormat.BGR8888))
85             {
86                 var testingTarget = new PixelBuffer(PixelBuffer.getCPtr(pixelBuffer).Handle, false);
87                 Assert.IsNotNull(testingTarget, "Can't create success object PixelBuffer");
88                 Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelBuffer type.");
89
90                 testingTarget.Dispose();
91             }
92
93             tlog.Debug(tag, $"PixelBufferConstructorByIntPtr END (OK)");
94         }
95
96         [Test]
97         [Category("P1")]
98         [Description("PixelBuffer Convert.")]
99         [Property("SPEC", "Tizen.NUI.PixelBuffer.Convert M")]
100         [Property("SPEC_URL", "-")]
101         [Property("CRITERIA", "MR")]
102         [Property("AUTHOR", "guowei.wang@samsung.com")]
103         public void PixelBufferConvert()
104         {
105             tlog.Debug(tag, $"PixelBufferConvert START");
106
107             using (PixelBuffer pixelBuffer = new PixelBuffer(1, 2, PixelFormat.BGR8888))
108             {
109                 var testingTarget = PixelBuffer.Convert(pixelBuffer);
110                 Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
111                 Assert.IsInstanceOf<PixelData>(testingTarget, "Should be an instance of PixelData type.");
112
113                 testingTarget.Dispose();
114             }
115
116             tlog.Debug(tag, $"PixelBufferConvert END (OK)");
117         }
118
119         [Test]
120         [Category("P1")]
121         [Description("PixelBuffer CreatePixelData.")]
122         [Property("SPEC", "Tizen.NUI.PixelBuffer.CreatePixelData M")]
123         [Property("SPEC_URL", "-")]
124         [Property("CRITERIA", "MR")]
125         [Property("AUTHOR", "guowei.wang@samsung.com")]
126         public void PixelBufferCreatePixelData()
127         {
128             tlog.Debug(tag, $"PixelBufferCreatePixelData START");
129
130             using (PixelBuffer pixelBuffer = new PixelBuffer(10, 5, PixelFormat.BGR8888))
131             {
132                 var testingTarget = pixelBuffer.CreatePixelData();
133                 Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
134                 Assert.IsInstanceOf<PixelData>(testingTarget, "Should be an instance of PixelData type.");
135
136                 testingTarget.Dispose();
137             }
138
139             tlog.Debug(tag, $"PixelBufferCreatePixelData END (OK)");
140         }
141
142         [Test]
143         [Category("P1")]
144         [Description("PixelBuffer GetWidth.")]
145         [Property("SPEC", "Tizen.NUI.PixelBuffer.GetWidth M")]
146         [Property("SPEC_URL", "-")]
147         [Property("CRITERIA", "MR")]
148         [Property("AUTHOR", "guowei.wang@samsung.com")]
149         public void PixelBufferGetWidth()
150         {
151             tlog.Debug(tag, $"PixelBufferGetWidth START");
152
153             var testingTarget = new PixelBuffer(10, 5, PixelFormat.BGR8888);
154             Assert.IsNotNull(testingTarget, "Can't create success object PixelBuffer");
155             Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelBuffer type.");
156
157             var result = testingTarget.GetWidth();
158             Assert.AreEqual(10, result, "Should be equal!");
159
160             testingTarget.Dispose();
161             tlog.Debug(tag, $"PixelBufferGetWidth END (OK)");
162         }
163
164         [Test]
165         [Category("P1")]
166         [Description("PixelBuffer GetHeight.")]
167         [Property("SPEC", "Tizen.NUI.PixelBuffer.GetHeight M")]
168         [Property("SPEC_URL", "-")]
169         [Property("CRITERIA", "MR")]
170         [Property("AUTHOR", "guowei.wang@samsung.com")]
171         public void PixelBufferGetHeight()
172         {
173             tlog.Debug(tag, $"PixelBufferGetHeight START");
174
175             var testingTarget = new PixelBuffer(10, 5, PixelFormat.BGR8888);
176             Assert.IsNotNull(testingTarget, "Can't create success object PixelBuffer");
177             Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelBuffer type.");
178
179             var result = testingTarget.GetHeight();
180             Assert.AreEqual(5, result, "Should be equal!");
181
182             testingTarget.Dispose();
183             tlog.Debug(tag, $"PixelBufferGetHeight END (OK)");
184         }
185
186         [Test]
187         [Category("P1")]
188         [Description("PixelBuffer GetPixelFormat.")]
189         [Property("SPEC", "Tizen.NUI.PixelBuffer.GetPixelFormat M")]
190         [Property("SPEC_URL", "-")]
191         [Property("CRITERIA", "MR")]
192         [Property("AUTHOR", "guowei.wang@samsung.com")]
193         public void PixelBufferGetPixelFormat()
194         {
195             tlog.Debug(tag, $"PixelBufferGetPixelFormat START");
196
197             var testingTarget = new PixelBuffer(10, 5, PixelFormat.BGR8888);
198             Assert.IsNotNull(testingTarget, "Can't create success object PixelBuffer");
199             Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelBuffer type.");
200
201             var result = testingTarget.GetPixelFormat();
202             Assert.AreEqual(PixelFormat.BGR8888, result, "Should be equal!");
203
204             testingTarget.Dispose();
205             tlog.Debug(tag, $"PixelBufferGetPixelFormat END (OK)");
206         }
207
208         [Test]
209         [Category("P1")]
210         [Description("PixelBuffer Assign.")]
211         [Property("SPEC", "Tizen.NUI.PixelBuffer.Assign M")]
212         [Property("SPEC_URL", "-")]
213         [Property("CRITERIA", "MR")]
214         [Property("AUTHOR", "guowei.wang@samsung.com")]
215         public void PixelBufferAssign()
216         {
217             tlog.Debug(tag, $"PixelBufferAssign START");
218
219             using (PixelBuffer pixelBuffer = new PixelBuffer(10, 5, PixelFormat.BGR8888))
220             {
221                 var testingTarget = pixelBuffer.Assign(pixelBuffer);
222                 Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
223                 Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelData type.");
224
225                 var result = testingTarget.GetPixelFormat();
226                 Assert.AreEqual(PixelFormat.BGR8888, result, "Should be equal!");
227
228                 testingTarget.Dispose();
229             }
230
231             tlog.Debug(tag, $"PixelBufferAssign END (OK)");
232         }
233
234         [Test]
235         [Category("P1")]
236         [Description("PixelBuffer GetBuffer.")]
237         [Property("SPEC", "Tizen.NUI.PixelBuffer.GetBuffer M")]
238         [Property("SPEC_URL", "-")]
239         [Property("CRITERIA", "MR")]
240         [Property("AUTHOR", "guowei.wang@samsung.com")]
241         public void PixelBufferGetBuffer()
242         {
243             tlog.Debug(tag, $"PixelBufferGetBuffer START");
244
245             var testingTarget = new PixelBuffer(10, 5, PixelFormat.BGR8888);
246             Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
247             Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelData type.");
248
249             var result = testingTarget.GetBuffer();
250             Assert.IsNotNull(result);
251
252             testingTarget.Dispose();
253             tlog.Debug(tag, $"PixelBufferGetBuffer END (OK)");
254         }
255
256         [Test]
257         [Category("P1")]
258         [Description("PixelBuffer Rotate.")]
259         [Property("SPEC", "Tizen.NUI.PixelBuffer.Rotate M")]
260         [Property("SPEC_URL", "-")]
261         [Property("CRITERIA", "MR")]
262         [Property("AUTHOR", "guowei.wang@samsung.com")]
263         public void PixelBufferRotate()
264         {
265             tlog.Debug(tag, $"PixelBufferRotate START");
266
267             using (Degree degree = new Degree(30))
268             {
269                 var testingTarget = new PixelBuffer(10, 5, PixelFormat.BGR8888);
270                 Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
271                 Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelData type.");
272
273                 var result = testingTarget.Rotate(degree);
274                 Assert.IsTrue(result);
275
276                 testingTarget.Dispose();
277             }
278
279             tlog.Debug(tag, $"PixelBufferRotate END (OK)");
280         }
281
282         [Test]
283         [Category("P1")]
284         [Description("PixelBuffer Resize.")]
285         [Property("SPEC", "Tizen.NUI.PixelBuffer.Resize M")]
286         [Property("SPEC_URL", "-")]
287         [Property("CRITERIA", "MR")]
288         [Property("AUTHOR", "guowei.wang@samsung.com")]
289         public void PixelBufferResize()
290         {
291             tlog.Debug(tag, $"PixelBufferResize START");
292
293             var testingTarget = new PixelBuffer(10, 5, PixelFormat.BGR8888);
294             Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
295             Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelData type.");
296
297             Assert.AreEqual(10, testingTarget.GetWidth(), "Shoule be equal!");
298             Assert.AreEqual(5, testingTarget.GetHeight(), "Shoule be equal!");
299
300             testingTarget.Resize(5, 10);
301             Assert.AreEqual(5, testingTarget.GetWidth(), "Shoule be equal!");
302             Assert.AreEqual(10, testingTarget.GetHeight(), "Shoule be equal!");
303
304             testingTarget.Dispose();
305             tlog.Debug(tag, $"PixelBufferResize END (OK)");
306         }
307
308         [Test]
309         [Category("P1")]
310         [Description("PixelBuffer Crop.")]
311         [Property("SPEC", "Tizen.NUI.PixelBuffer.Crop M")]
312         [Property("SPEC_URL", "-")]
313         [Property("CRITERIA", "MR")]
314         [Property("AUTHOR", "guowei.wang@samsung.com")]
315         public void PixelBufferCrop()
316         {
317             tlog.Debug(tag, $"PixelBufferCrop START");
318
319             var testingTarget = new PixelBuffer(10, 5, PixelFormat.BGR8888);
320             Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
321             Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelData type.");
322
323             Assert.AreEqual(10, testingTarget.GetWidth(), "Shoule be equal!");
324             Assert.AreEqual(5, testingTarget.GetHeight(), "Shoule be equal!");
325
326             testingTarget.Crop(15, 10, 5, 10);
327             Assert.AreEqual(5, testingTarget.GetWidth(), "Shoule be equal!");
328             Assert.AreEqual(10, testingTarget.GetHeight(), "Shoule be equal!");
329
330             testingTarget.Dispose();
331             tlog.Debug(tag, $"PixelBufferCrop END (OK)");
332         }
333
334         [Test]
335         [Category("P1")]
336         [Description("PixelBuffer ApplyGaussianBlur.")]
337         [Property("SPEC", "Tizen.NUI.PixelBuffer.ApplyGaussianBlur M")]
338         [Property("SPEC_URL", "-")]
339         [Property("CRITERIA", "MR")]
340         [Property("AUTHOR", "guowei.wang@samsung.com")]
341         public void PixelBufferApplyGaussianBlur()
342         {
343             tlog.Debug(tag, $"PixelBufferApplyGaussianBlur START");
344
345             var testingTarget = new PixelBuffer(10, 5, PixelFormat.BGR8888);
346             Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
347             Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelData type.");
348
349             try
350             {
351                 testingTarget.ApplyGaussianBlur(1.0f);
352             }
353             catch (Exception e)
354             {
355                 Assert.Fail("Fail!");
356             }
357
358             testingTarget.Dispose();
359             tlog.Debug(tag, $"PixelBufferApplyGaussianBlur END (OK)");
360         }
361
362         [Test]
363         [Category("P1")]
364         [Description("PixelBuffer ApplyMask.")]
365         [Property("SPEC", "Tizen.NUI.PixelBuffer.ApplyMask M")]
366         [Property("SPEC_URL", "-")]
367         [Property("CRITERIA", "MR")]
368         [Property("AUTHOR", "guowei.wang@samsung.com")]
369         public void PixelBufferApplyMask()
370         {
371             tlog.Debug(tag, $"PixelBufferApplyMask START");
372
373             var testingTarget = new PixelBuffer(10, 5, PixelFormat.BGR8888);
374             Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
375             Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelData type.");
376
377             try
378             {
379                 using (PixelBuffer pixelBuffer = new PixelBuffer(50, 100, PixelFormat.A8))
380                 {
381                     testingTarget.ApplyMask(pixelBuffer);
382                 }
383             }
384             catch (Exception e)
385             {
386                 Assert.Fail("Fail!");
387             }
388
389             testingTarget.Dispose();
390             tlog.Debug(tag, $"PixelBufferApplyMask END (OK)");
391         }
392
393         [Test]
394         [Category("P1")]
395         [Description("PixelBuffer ApplyMask. With scaling.")]
396         [Property("SPEC", "Tizen.NUI.PixelBuffer.ApplyMask M")]
397         [Property("SPEC_URL", "-")]
398         [Property("CRITERIA", "MR")]
399         [Property("AUTHOR", "guowei.wang@samsung.com")]
400         public void PixelBufferApplyMaskWithScaling()
401         {
402             tlog.Debug(tag, $"PixelBufferApplyMaskWithScaling START");
403
404             var testingTarget = new PixelBuffer(10, 5, PixelFormat.BGR8888);
405             Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
406             Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelData type.");
407
408             try
409             {
410                 using (PixelBuffer pixelBuffer = new PixelBuffer(50, 100, PixelFormat.A8))
411                 {
412                     testingTarget.ApplyMask(pixelBuffer, 0.5f);
413                 }
414             }
415             catch (Exception e)
416             {
417                 Assert.Fail("Fail!");
418             }
419
420             testingTarget.Dispose();
421             tlog.Debug(tag, $"PixelBufferApplyMaskWithScaling END (OK)");
422         }
423
424         [Test]
425         [Category("P1")]
426         [Description("PixelBuffer ApplyMask. With Whether to crop.")]
427         [Property("SPEC", "Tizen.NUI.PixelBuffer.ApplyMask M")]
428         [Property("SPEC_URL", "-")]
429         [Property("CRITERIA", "MR")]
430         [Property("AUTHOR", "guowei.wang@samsung.com")]
431         public void PixelBufferApplyMaskWithCropOrNot()
432         {
433             tlog.Debug(tag, $"PixelBufferApplyMaskWithCropOrNot START");
434
435             var testingTarget = new PixelBuffer(10, 5, PixelFormat.BGR8888);
436             Assert.IsNotNull(testingTarget, "Can't create success object PixelData");
437             Assert.IsInstanceOf<PixelBuffer>(testingTarget, "Should be an instance of PixelData type.");
438
439             try
440             {
441                 using (PixelBuffer pixelBuffer = new PixelBuffer(2, 3, PixelFormat.A8))
442                 {
443                     testingTarget.ApplyMask(pixelBuffer, 0.5f, false);
444                 }
445             }
446             catch (Exception e)
447             {
448                 Assert.Fail("Fail!");
449             }
450
451             testingTarget.Dispose();
452             tlog.Debug(tag, $"PixelBufferApplyMaskWithCropOrNot END (OK)");
453         }
454     }
455 }