[NUI.Samples] Upgrade PropertyTest sample
authorEunki Hong <eunkiki.hong@samsung.com>
Tue, 29 Apr 2025 13:22:17 +0000 (22:22 +0900)
committertscholb <scholb.kim@samsung.com>
Thu, 8 May 2025 07:09:13 +0000 (16:09 +0900)
Let we check common arthimetic types test, and print more detail logs if not matched.

Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/PropertyTest.cs

index d1c8921c8c184c5b40dfda16b629c7a09642d6f5..8de2eedc0cf53c7c4086a94f980566755a9642fc 100755 (executable)
@@ -21,8 +21,14 @@ namespace Tizen.NUI.Samples
             {typeof(string), new List<object>() { "test", "!@#$%", "][]=-"}},
             {typeof(Tizen.NUI.BaseComponents.ControlState), new List<object>() {ControlState.All, ControlState.Normal, ControlState.Pressed, ControlState.Disabled, ControlState.DisabledFocused}},
             {typeof(Tizen.NUI.Color), new List<object>() {Color.White, Color.AquaMarine, Color.Red, Color.Cyan, Color.Chocolate}},
-            {typeof(Tizen.NUI.Rectangle), new List<object>() {new Tizen.NUI.Rectangle(1, 2, 3, 4), new Tizen.NUI.Rectangle(100, -100, -900, 1000), new Tizen.NUI.Rectangle(1234, -94321, 9999, 54321)}}
-
+            {typeof(Tizen.NUI.Rectangle), new List<object>() {new Tizen.NUI.Rectangle(1, 2, 3, 4), new Tizen.NUI.Rectangle(100, -100, -900, 1000), new Tizen.NUI.Rectangle(1234, -94321, 9999, 54321)}},
+            {typeof(Tizen.NUI.Vector2), new List<object>() {new Tizen.NUI.Vector2(1, 2), new Tizen.NUI.Vector2(100.11f, -100.2f), new Tizen.NUI.Vector2(-123.123f, -456.456f)}},
+            {typeof(Tizen.NUI.Vector3), new List<object>() {new Tizen.NUI.Vector3(1, 2, 3), new Tizen.NUI.Vector3(100.12f, -100.34f, 103.11f), new Tizen.NUI.Vector3(-123.123f, -456.456f, -789.789f)}},
+            {typeof(Tizen.NUI.Vector4), new List<object>() {new Tizen.NUI.Vector4(1, 2, 3, 4), new Tizen.NUI.Vector4(100.12f, -100.34f, 103.11f, -333.33f), new Tizen.NUI.Vector4(-123.123f, -456.456f, -789.789f, -102.021f)}},
+            {typeof(Tizen.NUI.Size), new List<object>() {new Tizen.NUI.Size(1, 2, 3), new Tizen.NUI.Size(100.12f, -100.34f, 103.11f), new Tizen.NUI.Size(-123.123f, -456.456f, -789.789f)}},
+            {typeof(Tizen.NUI.Position), new List<object>() {new Tizen.NUI.Position(1, 2, 3), new Tizen.NUI.Position(100.12f, -100.34f, 103.11f), new Tizen.NUI.Position(-123.123f, -456.456f, -789.789f)}},
+            {typeof(Tizen.NUI.Size2D), new List<object>() {new Tizen.NUI.Size2D(1, 2), new Tizen.NUI.Size2D(100, 103)}},
+            {typeof(Tizen.NUI.Position2D), new List<object>() {new Tizen.NUI.Position2D(1, 2), new Tizen.NUI.Position2D(100, -100), new Tizen.NUI.Position2D(-123, -456)}},
         };
 
         public void Activate()
@@ -35,6 +41,11 @@ namespace Tizen.NUI.Samples
             };
 
             var proInfos = target.GetType().GetProperties();
+
+            global::System.Text.StringBuilder failedPropertyName = new global::System.Text.StringBuilder();
+
+            uint failedCount = 0u;
+
             foreach (var prop in proInfos)
             {
 
@@ -53,10 +64,27 @@ namespace Tizen.NUI.Samples
                         prop.SetValue(target, val);
                         var got = prop.GetValue(target);
                         bool resSub = IsSame(val, got, prop.PropertyType);
+                        if (!resSub)
+                        {
+                            Tizen.Log.Debug("NUI", $"{prop.Name} set=\"{val}\" but result=\"{got}\"");
+                        }
                         res &= resSub;
                     }
                     string result = res ? "OK" : "BAD";
-                    Tizen.Log.Debug("NUI", $"Testing {prop.Name} result={result}");
+                    if (!res)
+                    {
+                        ++failedCount;
+                        failedPropertyName.Append(prop.Name + ", ");
+                        if (failedCount % 10 == 0)
+                        {
+                            failedPropertyName.AppendLine("");
+                        }
+                        Tizen.Log.Error("NUI", $"Testing {prop.Name} result={result}");
+                    }
+                    else
+                    {
+                        Tizen.Log.Debug("NUI", $"Testing {prop.Name} result={result}");
+                    }
                     Tizen.Log.Debug("NUI", $"==================");
                 }
                 else
@@ -73,22 +101,34 @@ namespace Tizen.NUI.Samples
             root.Add(target);
             window.Add(root);
 
-            var tl1 = new TextLabel
+            if (failedCount == 0)
             {
-                Position = new Position(400, 400),
-                Size = new Size(600, 100),
-                Text = "property test"
-            };
+                var tl1 = new TextLabel
+                {
+                    Size = new Size(600, 100),
+                    Text = $"All test case pass!"
+                };
+                root.Add(tl1);
+            }
+            else
+            {
+                var tl1 = new TextLabel
+                {
+                    Size = new Size(600, 100),
+                    Text = $"{failedCount} failed! please check the log"
+                };
+                root.Add(tl1);
 
-            root.Add(target);
+                var tl2 = new TextLabel
+                {
+                    Position = new Position(0, 300),
+                    SizeWidth = 600,
+                    Text = "" + failedPropertyName,
+                    MultiLine = true,
+                };
 
-            var tl2 = new TextLabel
-            {
-                Position = new Position(400, 400),
-                Size = new Size(600, 100),
-                Text = "please check the log"
-            };
-            root.Add(tl2);
+                root.Add(tl2);
+            }
         }
 
         private static object CreateRandomValueForProp(Type propType)
@@ -134,17 +174,67 @@ namespace Tizen.NUI.Samples
                         // var bb = global::System.Convert.ChangeType(b, t);
                         if (Object.ReferenceEquals(a1, b1)) { return true; }
                         if (a1 == b1) { return true; }
+                        Tizen.Log.Debug("NUI", $"a1:{a1.R}, {a1.G}, {a1.B}, {a1.A} != b1:{b1.R}, {b1.G}, {b1.B}, {b1.A}");
                     }
                     else if (a is Tizen.NUI.Rectangle a2 && b is Tizen.NUI.Rectangle b2)
                     {
                         if (Object.ReferenceEquals(a2, b2)) { return true; }
                         if (a2 == b2) { return true; }
+                        Tizen.Log.Debug("NUI", $"a2:{a2.X}, {a2.Y}, {a2.Width}, {a2.Height} != b2:{b2.X}, {b2.Y}, {b2.Width}, {b2.Height}");
+                    }
+                    else if (a is Tizen.NUI.Vector2 av2 && b is Tizen.NUI.Vector2 bv2)
+                    {
+                        if (Object.ReferenceEquals(av2, bv2)) { return true; }
+                        if (av2.Equals(bv2)) { return true; }
+                        Tizen.Log.Debug("NUI", $"av2:{av2.X}, {av2.Y} != bv2:{bv2.X}, {bv2.Y}");
+                    }
+                    else if (a is Tizen.NUI.Vector3 av3 && b is Tizen.NUI.Vector3 bv3)
+                    {
+                        if (Object.ReferenceEquals(av3, bv3)) { return true; }
+                        if (av3.Equals(bv3)) { return true; }
+                        Tizen.Log.Debug("NUI", $"av3:{av3.X}, {av3.Y}, {av3.Z} != bv3:{bv3.X}, {bv3.Y}, {bv3.Z}");
+                    }
+                    else if (a is Tizen.NUI.Vector4 av4 && b is Tizen.NUI.Vector4 bv4)
+                    {
+                        if (Object.ReferenceEquals(av4, bv4)) { return true; }
+                        if (av4.Equals(bv4)) { return true; }
+                        Tizen.Log.Debug("NUI", $"av4:{av4.X}, {av4.Y}, {av4.Z}, {av4.W} != bv4:{bv4.X}, {bv4.Y}, {bv4.Z}, {bv4.W}");
+                    }
+                    else if (a is Tizen.NUI.Size asz && b is Tizen.NUI.Size bsz)
+                    {
+                        if (Object.ReferenceEquals(asz, bsz)) { return true; }
+                        if (asz.Equals(bsz)) { return true; }
+                        Tizen.Log.Debug("NUI", $"asz:{asz.Width}x{asz.Height}x{asz.Depth} != bsz:{bsz.Width}x{bsz.Height}x{bsz.Depth}");
+                    }
+                    else if (a is Tizen.NUI.Position aps && b is Tizen.NUI.Position bps)
+                    {
+                        if (Object.ReferenceEquals(aps, bps)) { return true; }
+                        if (aps.Equals(bps)) { return true; }
+                        Tizen.Log.Debug("NUI", $"aps:{aps.X}, {aps.Y}, {aps.Z} != bps:{bps.X}, {bps.Y}, {bps.Z}");
+                    }
+                    else if (a is Tizen.NUI.Size2D asz2 && b is Tizen.NUI.Size2D bsz2)
+                    {
+                        if (Object.ReferenceEquals(asz2, bsz2)) { return true; }
+                        if (asz2.Equals(bsz2)) { return true; }
+                        Tizen.Log.Debug("NUI", $"asz2:{asz2.Width}x{asz2.Height} != bsz2:{bsz2.Width}x{bsz2.Height}");
+                    }
+                    else if (a is Tizen.NUI.Position2D aps2 && b is Tizen.NUI.Position2D bps2)
+                    {
+                        if (Object.ReferenceEquals(aps2, bps2)) { return true; }
+                        if (aps2.Equals(bps2)) { return true; }
+                        Tizen.Log.Debug("NUI", $"aps2:{aps2.X}, {aps2.Y} != bps2:{bps2.X}, {bps2.Y}");
+                    }
+                    else if (a is string ast && b is string bst)
+                    {
+                        if (Object.ReferenceEquals(ast, bst)) { return true; }
+                        if (String.Compare(ast, bst) == 0) { return true; }
+                        Tizen.Log.Debug("NUI", $"as:{ast} != bs:{bst}");
                     }
                     else
                     {
-                        //Tizen.Log.Debug("NUI", $"a:{a}, b:{b}");
                         if (Object.ReferenceEquals(a, b)) { return true; }
                         if (a == b) { return true; }
+                        Tizen.Log.Debug("NUI", $"a:{a} != b:{b}");
                     }
                 }
             }